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

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像素(图像

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

我手动将inch转换为px,以像素为单位获取尺寸,但在iText中,
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对我有效