我们使用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";
结果:现在在两侧绘制线条,只能在打印时看到。那仍然不是完整的解决方案。
答案 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.