使用itextsharp读取pdf文件页面大小与原始大小不同

时间:2018-04-11 07:01:40

标签: c# itext

我使用iText for .NET来读取pdf文件页面大小(宽度和高度),当我在PDF查看器中搜索文档属性时,它以英寸显示尺寸:

enter image description here

我手动将英寸转换为px,它以像素为单位获取尺寸,但在iText中,GetPagesize()方法返回另一个值。

维度值不同的原因是什么?哪个值是正确的?

1 个答案:

答案 0 :(得分:2)

您假设iText为您提供以像素为单位的维度(px)并且该假设是错误的。请阅读常见问题解答:How do the measurement systems in HTML relate to the measurement system in PDF?

  

1英寸= 25.4毫米= 72个用户单位(PDF)

     

1英寸= 25.4毫米= 72磅(排版)

     

1英寸= 25.4毫米= 96像素(图像)

你可能会混淆96 px和72 pt。

如果您将GetPagesize()返回的值除以72,而仍然得到不同的维度,那么可能会有/CropBoxGetPageSize()返回/MediaBox值。但是,还有GetCropBox()方法。如果未定义/CropBox,则此方法将返回null,并且可见页面大小将与实际页面大小相同(假定/CropBox值与/MediaBox相同{1}}值)。

如果GetCropBox()方法未返回null,则页面的可见部分裁剪较小的而不是/MediaBox定义的维度。这可以解释为什么PDF查看器中显示的值小于您根据GetPageSize()方法返回的值所期望的值。在这种情况下,您需要使用GetCropBox()方法返回的值。