随着html内容的高度增加,UIWebViewPrintFormatter会在标题底部留下越来越多的空白空间

时间:2014-01-15 13:14:46

标签: ios pdf uiprintpagerenderer

我有一个自定义UIPrintPageRender,它使用html生成pdf报告。

我发现最终渲染的html不会消耗我传递的计算高度,因为pageRender的contentHeight在标题和正文内容之间留下了空白。

在我的测试中,我发现随着html内容的增长,这个空白区域会增加。

传递给drawHeaderForPageAtIndex:inRect:的rect的高度是正确的。我甚至用它来绘制标题的底部(即使我有一个拼写错误,它在屏幕截图中显示了页脚)。

我还使用javascript来计算html内容高度,它还显示了预期的高度,也可以与左侧的页面标尺进行比较。

你可以看到,在下面的图像中,渲染的html不会消耗标题的完整高度,留下额外的间距。

enter image description here

我附上了original image here! (不是缩略图)更好地说明问题。

有没有人在遇到此问题之前或者在绘制标题时知道我做错了什么?

更新
我现在已经简化了我的测试以排除页眉/页脚仅绘制正文,我看到的结果相同。

UIWebViewPrintFormatterUIMarkupTextPrintFormatter似乎会将内容垂直缩小20%。在下面的输出中,您可以看到doc高度为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}}

0 个答案:

没有答案