問題タブ [uiprintpagerenderer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 前面と背面の余白が異なる両面印刷 (前面と背面) プリンターで WebView コンテンツを印刷する
WebView があり、その HTML コンテンツを AirPrint 経由で印刷したいと考えています。このコンテンツにカスタム ページ マージンを追加したいと考えています。私は自分のサブクラスを使ってそれを達成することができましたUIPrintPageRenderer
ここで、アプリ ユーザーが両面プリンター (ページの前面と背面を印刷) を使用するときはいつでも、前面ページと背面ページに異なるページ マージンを設定したいと考えています。
UIPrintPageRenderer は、単一のプロパティとして を要求しheaderHeight
、次のようなものがないため、このタスクを達成できませんでした。footerHeight
headerHeight(forPage:)
PDFファイルを作成するオプションも調べましたが、どうやらPDFファイルはUIPrintPageRendererのみを使用して生成されます。
UIViewPrintFormatter
また、このオブジェクトは WebView の関数によって返されるため、WKWebView からカスタムをオーバーライドまたは取得する方法がわかりません。func viewPrintFormatter() -> UIViewPrintFormatter
ios - swift UIPrintPageRenderer printableRect.size.width は常にゼロ (0) です
UIActivityViewController を使用して印刷しています(他のアクティビティの中でも)。そのため、UIPrintPageRenderer のカスタム サブクラスのインスタンスを渡します。関連するコードは以下のとおりです。
本質的に、2 つの複数行の属性付き文字列を 2 つの列のように並べて出力したい (最終的には、一方を他方に埋め込んでラップしたいのですが、ここで先を越さないでください) . 右側のテキスト ビューは、そのコンテンツに応じて固定サイズにする必要があります (そのサブクラスは sizeToFit() をオーバーライドしてこれを実現します)。左側のテキスト ビューは、残りの幅を埋める必要があります。
そのため、属性付きの文字列が取り込まれた UITextView インスタンスを使用し、それぞれの .viewPrintFormatter()` 出力を UIPrintFormatters として UIPrintPageRenderer に割り当てています。
これは部分的に機能します。両方の属性文字列がページに印刷されます。
ただし、両方ともページの左端に重ねて印刷されます。
UIEdgeInsets を使用して印刷を制限しようとすると、値をハードコードしない限り失敗します。これは0
、printableRect.size.width
.
UIPrintPageRendere の printableRect の幅が常にゼロなのはなぜですか?
2 つの複数行属性文字列を並べて印刷する正しい方法は何ですか?
ios - UIPrintPageRenderer は iPad ではサイズが異なります
viewPrintFormatter()
from aを使用しWKWebView
て HTML を印刷しています。
私はCustomPrintPageRenderer
サブクラスであり、そのサブクラスをxおよび50にUIPrintPageRenderer
設定しています。paperRect
printableRect
595.2
841.8
footer
このコードを呼び出して、次から PDF を生成しますWKWebView
。
これはすべてシミュレーターでは完全に正常に機能しますが、iPhone
シミュレーターで使用するとiPad
(具体的には、iPad Pro 11 インチの第 2 世代をテストしています)、生成された PDF が 2 ページ目に忍び寄ります。
ページの下部から 1 行のテキストが 2 ページに移動されます。
画面に表示されないため、WKWebView が実際にフレームを使用しない場合、iPad と iPhone でこれが異なるのはなぜですか。iPad が計算内でフッターを無視しているようです。
この動作を修正するにはどうすればよいですか?
それはAppleのバグでしょうか?
ios - UIPrintPageRenderer を使用して作成された PDF のリーガル ページ サイズを設定するにはどうすればよいですか?
私はこれを設定しています:
「paperRect」としてUIPrintPageRendererでPDFを作成するための正当なページサイズ(つまり、8.5 x 14インチ)ですが、PDFを印刷するとき、そのサイズは常にA4(つまり、612 x 792 = 8.5 x 11インチ)です。
Legal Page size PDF を取得する正しい方法は何ですか?
html - A4 サイズに合わせて HTML コンテンツに基づいて PDF ページを作成する
長方形からA4フォーマットを作成できるという情報を見つけました:
UIPrintPageRenderer
オブジェクトのページ サイズを指定するには、この rect が必要です。
また、私の特定のケースでは、Web ビューを使用して、HTML コードに基づいて PDF ページを作成します。
HTMLページをA4サイズに合わせて採用する方法の答えを見つけました:
その例から興味深いのは、高さと幅の Swift コードと比較して不正確な値を提供することです。
どの値が正しいかを確認する必要があります。あるいは、代わりにインチやミリメートルを使用する必要があるかもしれません。
PDF ページは A4 形式で、HTML は同じサイズである必要があります。上記の値から、それらが異なることがわかります。