【问题标题】:Extra blank page when converting HTML to PDF将 HTML 转换为 PDF 时出现额外的空白页
【发布时间】:2013-08-25 07:48:13
【问题描述】:

我从UIWebView 创建了PDF,如下所示:

UIPrintPageRenderer *render = [[UIPrintPageRenderer alloc] init];

[render addPrintFormatter:_webView.viewPrintFormatter startingAtPageAtIndex:0];

CGRect printableRect;
CGRect paperRect;
printableRect = CGRectMake(10, 5, kPaperSizeA4.width-20, kPaperSizeA4.height-10);
paperRect = CGRectMake(0, 0, kPaperSizeA4.width, kPaperSizeA4.height);
[render setValue:[NSValue valueWithCGRect:paperRect] forKey:@"paperRect"];
[render setValue:[NSValue valueWithCGRect:printableRect] forKey:@"printableRect"];

NSData *pdfData = [render printToPDF];
if (pdfData) {
     BOOL isSuccess = [pdfData writeToFile:aStrDocDirPath atomically:YES];
     if (isSuccess)
     {
         NSLog(@"Created and Saved");
     }
}

现在问题是在created PDF 中添加blank page

我推荐了Extra blank page when converting HTML to PDF using abcPDF。但是在iOS我们怎么才能摆脱它???

【问题讨论】:

    标签: iphone ios objective-c


    【解决方案1】:

    相应变化:

    首先A4 size是这样的:

    #define kPaperSizeA4 CGSizeMake(595,842)
    

    改成:

    #define kPaperSizeA4 CGSizeMake(595.2,841.8)
    

    现在increased page margincontentPDF 中:

    printableRect = CGRectMake(10, 18, kPaperSizeA4.width-20, kPaperSizeA4.height-36);
    

    更多请参考Avoid extra blank page (with A4, in some unexpected cases

    【讨论】:

    • 这次代码更改不走运,对我没有用...有什么想法吗?
    【解决方案2】:

    在将 HTML 转换为 PDF 时,我也遇到了额外的空白首页问题。我使用 FlyingSaucer 进行 HTML 到 PDF 的转换。

    我的 HTML 中有这个 CSS 定义:

    @page Section1{
      size: 612.45pt 841.7pt;
    }
    
    div.Section1 {
      page: Section1;
    }
    

    当我将 CSS 定义修改为:

    @page {
          size: 612.45pt 841.7pt;
    }
    

    【讨论】: