2

UIPrintPageRenderHTMLを使用してPDFレポートを生成するカスタムがあります。

私が見つけたのは、最終的にレンダリングされた html が、pageRender の contentHeight として渡した計算された高さを消費せず、ヘッダーと本文のコンテンツの間に空白が残っていることです。

私のテスト中に私が見つけたのは、html コンテンツが大きくなるにつれて、この空白スペースが増えるということです。

渡された四角形の高さdrawHeaderForPageAtIndex:inRect:は正しいです。これを使用して、ヘッダーの下部を描画することもできます (タイプミスがあり、スクリーンショットにフッターと表示されています)。

また、javascript を使用して HTML コンテンツの高さを計算すると、左側のページ ルーラーと比較できる予想される高さも表示されます。

下の画像では、レンダリングされた html がヘッダーの高さ全体を消費せず、余分なスペースが残っていることがわかります。

ここに画像の説明を入力

ここに元の画像を添付しました!(サムネイルではありません)問題をよりよく説明するために。

以前にこの問題に遭遇した人はいますか、ヘッダーを描画するときに何が間違っているのか知っていますか?

更新:
本文のみを描画するヘッダー/フッターを除外するようにテストを単純化したところ、同じ結果が表示されました。

UIWebViewPrintFormatterとの両方が表示UIMarkupTextPrintFormatterされ、コンテンツが垂直方向に 20% 縮小されます。以下の出力では、ドキュメントの高さが 220px ですが、フォーマッタの出力は ~176px です。

を使用して本文に画像を描画するとUIViewPrintFormatter、高さが正しいため、ページレンダラー自体に奇妙なことは何もありません。

webViewDidFinishLoad: ドキュメントの高さ: 220.00
pdf ページ サイズ: {595.44006, 841.67999}
SATestPageRendererInit pageRect: {{0, 0}, {595.44006, 841.67999}}, pageMargin: {0, 0, 0, 0}
printableRect: {{0, 0 }, {595.44006, 841.67999}}
pdfContextAddPage: 0 - pageRect: {{0, 0}, {595.44006, 841.67999}}
drawPageAtIndex: 0 inRect: {{0, 0}, {595.44006, 841.67999}}
drawPrintFormatter: forPageIndex: 0 printFormatterRect: {{0, 0}, {595.44006, 176.07098}}

4

0 に答える 0