問題タブ [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.

0 投票する
0 に答える
78 参照

ios - 前面と背面の余白が異なる両面印刷 (前面と背面) プリンターで WebView コンテンツを印刷する

WebView があり、その HTML コンテンツを AirPrint 経由で印刷したいと考えています。このコンテンツにカスタム ページ マージンを追加したいと考えています。私は自分のサブクラスを使ってそれを達成することができましたUIPrintPageRenderer

ここで、アプリ ユーザーが両面プリンター (ページの前面と背面を印刷) を使用するときはいつでも、前面ページと背面ページに異なるページ マージンを設定したいと考えています。

UIPrintPageRenderer は、単一のプロパティとして を要求しheaderHeight、次のようなものがないため、このタスクを達成できませんでした。footerHeightheaderHeight(forPage:)

PDFファイルを作成するオプションも調べましたが、どうやらPDFファイルはUIPrintPageRendererのみを使用して生成されます。

UIViewPrintFormatterまた、このオブジェクトは WebView の関数によって返されるため、WKWebView からカスタムをオーバーライドまたは取得する方法がわかりません。func viewPrintFormatter() -> UIViewPrintFormatter

0 投票する
1 に答える
295 参照

ios - swift UIPrintPageRenderer printableRect.size.width は常にゼロ (0) です

UIActivityViewController を使用して印刷しています(他のアクティビティの中でも)。そのため、UIPrintPageRenderer のカスタム サブクラスのインスタンスを渡します。関連するコードは以下のとおりです。

本質的に、2 つの複数行の属性付き文字列を 2 つの列のように並べて出力したい (最終的には、一方を他方に埋め込んでラップしたいのですが、ここで先を越さないでください) . 右側のテキスト ビューは、そのコンテンツに応じて固定サイズにする必要があります (そのサブクラスは sizeToFit() をオーバーライドしてこれを実現します)。左側のテキスト ビューは、残りの幅を埋める必要があります。

そのため、属性付きの文字列が取り込まれた UITextView インスタンスを使用し、それぞれの .viewPrintFormatter()` 出力を UIPrintFormatters として UIPrintPageRenderer に割り当てています。

これは部分的に機能します。両方の属性文字列がページに印刷されます。

ただし、両方ともページの左端に重ねて印刷されます。

UIEdgeInsets を使用して印刷を制限しようとすると、値をハードコードしない限り失敗します。これは0printableRect.size.width.

UIPrintPageRendere の printableRect の幅が常にゼロなのはなぜですか?

2 つの複数行属性文字列を並べて印刷する正しい方法は何ですか?

0 投票する
1 に答える
157 参照

ios - UIPrintPageRenderer は iPad ではサイズが異なります

viewPrintFormatter()from aを使用しWKWebViewて HTML を印刷しています。

私はCustomPrintPageRendererサブクラスであり、そのサブクラスをxおよび50にUIPrintPageRenderer設定しています。paperRectprintableRect595.2841.8footer

このコードを呼び出して、次から PDF を生成しますWKWebView

これはすべてシミュレーターでは完全に正常に機能しますが、iPhoneシミュレーターで使用するとiPad(具体的には、iPad Pro 11 インチの第 2 世代をテストしています)、生成された PDF が 2 ページ目に忍び寄ります。

ページの下部から 1 行のテキストが 2 ページに移動されます。

画面に表示されないため、WKWebView が実際にフレームを使用しない場合、iPad と iPhone でこれが異なるのはなぜですか。iPad が計算内でフッターを無視しているようです。

この動作を修正するにはどうすればよいですか?

それはAppleのバグでしょうか?

0 投票する
1 に答える
109 参照

ios - UIPrintPageRenderer を使用して作成された PDF のリーガル ページ サイズを設定するにはどうすればよいですか?

私はこれを設定しています:

「paperRect」としてUIPrintPageRendererでPDFを作成するための正当なページサイズ(つまり、8.5 x 14インチ)ですが、PDFを印刷するとき、そのサイズは常にA4(つまり、612 x 792 = 8.5 x 11インチ)です。

Legal Page size PDF を取得する正しい方法は何ですか?

0 投票する
0 に答える
51 参照

html - A4 サイズに合わせて HTML コンテンツに基づいて PDF ページを作成する

長方形からA4フォーマットを作成できるという情報を見つけました:

UIPrintPageRendererオブジェクトのページ サイズを指定するには、この rect が必要です。

また、私の特定のケースでは、Web ビューを使用して、HTML コードに基づいて PDF ページを作成します。

HTMLページをA4サイズに合わせて採用する方法の答えを見つけました:

その例から興味深いのは、高さと幅の Swift コードと比較して不正確な値を提供することです。

どの値が正しいかを確認する必要があります。あるいは、代わりにインチやミリメートルを使用する必要があるかもしれません。

PDF ページは A4 形式で、HTML は同じサイズである必要があります。上記の値から、それらが異なることがわかります。