打印pdf时的薄边框

时间:2013-06-05 07:27:48

标签: printing abcpdf

我们使用ABCPDF的8.1版从html生成一些不错的PDF文档。

现在我们发现从Adobe Reader中打印时,会在页面的顶部和底部添加一些薄的边框,这些边框在显示文档时不可见。此外,当打印到XPS时,这些行不可见。

我想我们一定错过了一些避免这种情况的设置?

目前我们打印的页面如下:

        using (var doc = new WebSupergoo.ABCpdf8.Doc())
        {
            doc.HtmlOptions.DoMarkup = false;
            doc.HtmlOptions.AddLinks = false;
            doc.HtmlOptions.FontEmbed = true;
            doc.HtmlOptions.Engine = EngineType.Gecko;

            //in case that we need to create more than 1 page, we need go get the PageId and use it
            int pdfPageId = doc.AddImageHtml(html);
            while (true)
            {
                doc.FrameRect();
                if (!doc.Chainable(pdfPageId))
                    break;
                doc.Page = doc.AddPage();
                pdfPageId = doc.AddImageToChain(pdfPageId);
            }

            for (int i = 1; i <= doc.PageCount; i++)
            {
                doc.PageNumber = i;
                doc.Flatten();
            }

            doc.Save(pathToSave);
        }

我知道websupergoo家伙非常友好并快速回复。 但我认为这也可以帮助其他人,所以我在这里写它而不是给他们发电子邮件。

更新

我试图通过改变打印文档的大小来摆脱linex。我实际上尝试打印A4 Papersize。我添加了一行代码来更改MediaBox的设置(文档建议这应该是可能的“doc.MediaBox =”A4“”,但它不能直接分配):

            //set the printed area to A4
            doc.MediaBox.String = "A4";

结果:线条变粗,现在甚至可以在AdobeReader和Foxit Reader中打印之前看到。这还不是解决方案。

UPDATE2:

我还需要设置文档的Rect:

            //set the printed area to A4
            doc.Rect.String ="A4";
            doc.MediaBox.String = "A4";

结果:现在在两侧绘制线条,只能在打印时看到。那仍然不是完整的解决方案。

1 个答案:

答案 0 :(得分:4)

好吧,从网上复制粘贴代码有危险!

此行在内容周围添加了框架:

    doc.FrameRect();

我所要做的就是删除它......并且不再显示任何行。

到目前为止,我完全忽视了这一点。

在我尝试以下操作之前,它没有按预期工作:

    //set the width to 0, so Rectancles have no width
    doc.Width = 0;
    // set the color to white, so borders of Rectangles should not be black
    doc.Color.String = "255 255 255"; //Edited based on the comments.