我想编写一个应用程序来验证 PDF 文件。所需的验证是验证 PDF 中的所有文本和图像应在左侧 0.5" 边距和右侧 0.5" 边距之后开始。如果任何文本超出此范围,则应用程序应该能够捕捉到这一点。
我试图在 iText 中搜索它,但找不到任何可以解决我的目的的有用信息。
有人可以帮我在.net csharp中编写这段代码吗?
谢谢, 普拉文
我想编写一个应用程序来验证 PDF 文件。所需的验证是验证 PDF 中的所有文本和图像应在左侧 0.5" 边距和右侧 0.5" 边距之后开始。如果任何文本超出此范围,则应用程序应该能够捕捉到这一点。
我试图在 iText 中搜索它,但找不到任何可以解决我的目的的有用信息。
有人可以帮我在.net csharp中编写这段代码吗?
谢谢, 普拉文
除了 R Ubben 的回答:reader.getPageSize(pageNumber)
与reader.getBoxSize(pageNumber,"media")
.
这就是它在 iTextSharp 中的实现方式。您可以在源代码中看到它。
提炼:
public Rectangle GetPageSize(PdfDictionary page) {
PdfArray mediaBox = page.GetAsArray(PdfName.MEDIABOX);
return GetNormalizedRectangle(mediaBox);
}
PDF 标准实际上并没有边距的概念,因为 PDF 应该是独立于设备的。它可以有五个用于限制输出的框:媒体框、裁剪框、出血框、艺术框和裁切框。通常其他四个框的大小与媒体框相同或更小。
如果您的 pdf 中存在媒体框,您可以检索它并检查它是否比页面每边小 0.5"。尝试比较 reader.getPageSize(pageNumber) 和 reader.getBoxSize(pageNumber,"media ”)。很可能它们是相同的。
您可以做的是重写 pdf 以确保有 1/2 英寸的边距。最简单的方法是缩小页面。
利用SetMarginMirroring(true)