C# 使用itextsharp读取pdf文件页面大小与原始大小不同
我正在使用iText for.NET读取pdf文件页面大小(宽度和高度),当我在pdf查看器中搜索文档属性时,它以英寸为单位显示尺寸: 我手动将inch转换为px,以像素为单位获取尺寸,但在iText中,C# 使用itextsharp读取pdf文件页面大小与原始大小不同,c#,itext,C#,Itext,我正在使用iText for.NET读取pdf文件页面大小(宽度和高度),当我在pdf查看器中搜索文档属性时,它以英寸为单位显示尺寸: 我手动将inch转换为px,以像素为单位获取尺寸,但在iText中,GetPagesize()方法返回另一个值 尺寸标注值不同的原因是什么?哪个值是正确的?您假设iText提供以像素为单位的维度(px),而该假设是错误的。请阅读常见问题: 1英寸=25.4毫米=72个用户单位(PDF) 1英寸=25.4毫米=72磅(排版) 1英寸=25.4毫米=96像素(图像
GetPagesize()
方法返回另一个值
尺寸标注值不同的原因是什么?哪个值是正确的?您假设iText提供以像素为单位的维度(
px
),而该假设是错误的。请阅读常见问题:
1英寸=25.4毫米=72个用户单位(PDF)
1英寸=25.4毫米=72磅(排版)
1英寸=25.4毫米=96像素(图像)
你可能混淆了96像素和72像素
如果将GetPagesize()
返回的值除以72,仍然得到不同的维度,那么可能存在/CropBox
。GetPageSize()
返回/MediaBox
值。但是,还有一个GetCropBox()
方法。如果未定义/CropBox
,则此方法将返回null
,可见页面大小将与实际页面大小相同(假定/CropBox
值与/MediaBox
值相同)
如果
GetCropBox()
方法未返回null
,则页面的可见部分将被裁剪为小于/MediaBox
定义的尺寸。这可以解释为什么PDF查看器中显示的值小于基于GetPageSize()
方法返回的值。在这种情况下,您需要使用GetCropBox()
方法返回的值。我更新了您的问题,因为(1.)它是.NET的iText,而不是iTextSharp。我们在2年前重命名了该库(您可能正在使用旧版本)。(2.)我将指向图像的链接替换为实际图像。是否仍要获取英寸值?将以用户单位表示的值除以72如何?:)目前我正在使用该值进行处理。任何方式都要感谢您澄清:您将GetPagesize()
返回的值除以72,您得到的结果与查看器中文档属性中显示的结果不同?这也是可能的,但这与混淆pt
和px
的原因不同。我会更新我的答案。在你发布1 in=72用户单位后,我尝试了。我从你的回复中得到了我的ans。在我不知道转换之前。你的ans对我有效