尝试使用UIMarkupTextPrintFormatter
打印包含表格的html页面。出于某些奇怪的原因,当第一页上有足够的空间(2-3英寸)时,最后一行被推到第二页。更糟糕的是,当我从html表中删除最后一行时,现在的最后一行(比删除的一行长几英寸)在第1页和第2页之间分开,当它在删除行之前明显适合第1页时。页眉和页脚高度都设置为零。插图也为零。
使用UIWebView并使用打印时,相同的html完全适合1页
UIViewPrintFormatter *formatter = [webview viewPrintFormatter];
但这需要显示UIWebView(因此它被渲染),我不想这样做。
非常感谢对此的任何见解。
答案 0 :(得分:0)
在类似的情况下,但是我的html表的固定大小这对我有用:
formatter.maximumContentWidth = 10. * 72.;
可能不是最优雅的解决方案,您必须调整参数(即使它们动态化)并检查纸张尺寸依赖性:
UIPrintFormatter *formatter = [[UIMarkupTextPrintFormatter alloc] initWithMarkupText:html];
formatter.startPage = 0;
formatter.contentInsets = UIEdgeInsetsMake(36., 14., 0., 0.);
// prevent to generate an extra blank page
formatter.maximumContentWidth = 10. * 72.;
...
[formatter release];
// please note
printInfo.orientation = UIPrintInfoOrientationLandscape;