我们使用 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 中打印之前看到。这还不是解决方案。
更新2:
我还需要设置文档的 Rect :
//set the printed area to A4
doc.Rect.String ="A4";
doc.MediaBox.String = "A4";
结果:线条现在绘制在侧面,并且只能在打印时看到。这仍然不是完整的解决方案。