首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用abcPDF将HTML转换为PDF时的额外空白页

使用abcPDF将HTML转换为PDF时的额外空白页
EN

Stack Overflow用户
提问于 2010-03-04 21:23:05
回答 9查看 19K关注 0票数 10

我有一个超文本标记语言报告,每个打印页都包含一个<div class="page">。页面类定义为

代码语言:javascript
运行
复制
width: 180mm;
height: 250mm;
page-break-after: always;
background-position: centre top;
background-image: url(Images/MainBanner.png);
background-repeat: no-repeat;
padding-top: 30mm;

在对报表内容做了一些更改之后,当我调用abcPDF将报表转换为PDF时,突然在每个真正的报表页面之后都插入了一个空白页面。我不想回滚我刚才为解决这个问题所做的更改,所以我希望有人能知道为什么要插入额外的页面。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-03-16 07:24:12

我也遇到过同样的问题。空页面是由于CSS中的-break-after: always;造成的。不仅仅是ABCpdf,打印出来的也会多出一页。因此,我使用以下代码消除了最后一个页面:MyDoc.Delete(MyDoc.Page);

然而,这导致了不同类型的问题。在安装了IE8的开发服务器上,我得到了一个额外的空白页面,而在安装了IE6的生产服务器上,我没有得到额外的空白页面。因此,我给websupergoo的支持团队发了一封电子邮件,告诉我如何查找空白页面。这个想法是迭代通过pdf,识别所有空白页面,并使用上面的逻辑删除它们。

我赞同Jakkwylde的观点。Websupergoo的人非常乐于助人,而且反应迅速。我还遇到了另一个让ABCpdf在64位下工作的问题,我花了将近一天的时间试图解决这个问题。他们为我提供了多个可以尝试的场景。他们的支持很划算,我在几分钟内就让我的应用程序启动并运行起来。

票数 7
EN

Stack Overflow用户

发布于 2012-09-08 02:46:26

代码语言:javascript
运行
复制
protected void RemoveBlankPages(Doc pdf)
{
    for (int i = pdf.PageCount; i > 0; i--)
    {
        pdf.PageNumber = i;

        //get the pdf content
        string textContent = pdf.GetText("Text");

        //delete the page if it is blank
        if (string.IsNullOrEmpty(textContent))
            pdf.Delete(pdf.Page);
    }
}
票数 4
EN

Stack Overflow用户

发布于 2010-03-04 22:20:10

我发现abcPDF很奇怪,而且不可预测。话虽如此,可能发生的情况是,页面大小和页面分页后的组合可能是罪魁祸首。减小页面高度和/或删除分页符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2379521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档