UIMarkupTextPrintFormatter在页面底部留下2-3英寸的空白区域

ED.*_*ED. 5 html printing iphone ios airprint

尝试使用打印包含表格的html页面UIMarkupTextPrintFormatter.出于某些奇怪的原因,当第一页上有足够的空间(2-3英寸)时,最后一行被推到第二页.更糟糕的是,当我从html表中删除最后一行时,现在的最后一行(比删除的一行长几英寸)在第1页和第2页之间分开,当它在删除行之前明显适合第1页时.页眉和页脚高度都设置为零.插图也为零.当使用UIWebView并使用打印时,相同的html完全适合1页. UIViewPrintFormatter *formatter = [webview viewPrintFormatter]; 但这需要显示UIWebView(因此它被渲染),我不想这样做.

非常感谢对此的任何见解.

小智 0

在类似的情况下,但我的 html 表的大小固定,这对我有用:

    formatter.maximumContentWidth = 10. * 72.;
Run Code Online (Sandbox Code Playgroud)

可能不是最优雅的解决方案,您必须调整参数(即使它们动态)并检查纸张尺寸依赖性:

    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;
Run Code Online (Sandbox Code Playgroud)