在 PDF 文件中查找图像分辨率?

在 PDF 文件中查找图像分辨率?

我遇到一个问题,有些用户创建的 PDF 非常大。另一方面,我从传真机发送的 PDF 非常小,完全可以打印。我的问题是

  • 有什么方法可以找到 PDF 的分辨率 (DPI)。我搜索了互联网,但找不到任何答案。检查了文件的属性,至少在我的情况下,此信息并未存储在那里。
  • 将文本文件转换为图像 PDF 的最佳分辨率是多少。96dpi、300dpi 还是更高?
  • 有趣的问题。我可以将以高 dpi 扫描的 PDF 调整为较小的 dpi 吗?

我知道有些答案可能无法得到,因为我已经在互联网上搜索过但找不到答案。

注意:我的 PDF 全部是图像,文本转图像。我还熟悉 primoPDF(免费),你可以尝试一下

答案1

slhck 的回答和 scruss 的评论值得更新:pdfimages现在(至少从 0.26.5 版开始)明确列出了x-ppiy-ppi。以下是示例输出:

$ pdfimages -list example.pdf 
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    2244  2244  cmyk    4   8  image  no       215  0   301   301  418K 2.1%
   2     1 image     900   600  rgb     3   8  image  no       324  0  1524  1525 35.5K 2.2%

在 Debian (Wheezy) 和 Fedora (23) 上,pdfimages是软件包的一部分poppler-utils

答案2

我知道您不想提取图像数据,但这可能是找出原始分辨率的唯一方法。


在 *nix 上,如果你有 ImageMagick 的identifypdf安装1

pdfimages -j test.pdf test && for file in $(find . -name "test*.jpg"); do identify "$file"; done

您的输入 PDF 在哪里test.pdf。输出文件写入test-000.jpgtest-001.jpg等等。这将为您提供该 PDF 2所包含的所有图像的原始大小。

仅包含一个大图像的 PDF 文件的示例输出:

./test-000.jpg JPEG 2500x1961 2500x1961+0+0 8-bit DirectClass 1.022MB 0.000u 0:00.000

1) Windows 也有这些,但脚本当然会有所不同。2
) 请注意,图像实际上并不携带 DPI 信息。简单地说:那只是用于打印的东西,图像不需要固有的 DPI 测量值。


将文本文件转换为图像 PDF 的最佳分辨率是多少。96dpi、300dpi 还是更高?

一般来说,您要打印的任何内容都应为 300dpi 或更高。大多数打印机也能处理更高的分辨率。

答案3

由于某种原因,我在 CentOS 中可以升级的 pdfimages 的最新版本是 3.04 版本。

因此,我没有前面答案中提到的 -list 选项。但是,根据 slhck 的答案从 pdfimages 创建的测试图像包含所需的答案!

识别 -verbose test-0000.jpg | 更多

Image: test-0000.jpg  
Format: JPEG (Joint Photographic Experts Group JFIF format)  
Mime type: image/jpeg  
Class: DirectClass  
Geometry: 6600x5100+0+0  
Resolution: 600x600  
Print size: 11x8.5

因此,使用identify命令中的-verbose选项在第6行明确显示dpi。

因此,slhck的答案可以修改为以下内容。

pdfimages -j test.pdf test && for file in $(find . -name "test*.jpg"); do determine -verbose "$file" | awk'NR==6'; done

另外,我尝试跑步

识别-详细测试.pdf

Format: PDF (Portable Document Format)  
Mime type: application/pdf  
Class: DirectClass  
Geometry: 792x612+0+0  
Resolution: 72x72  
Print size: 11x8.5  

似乎 Imagemagick 总是假设 72dpi,因此此处打印的信息似乎不正确。

答案4

PDF 文件没有固有分辨率,其中的每个光栅图像(如果有)都有自己的分辨率。我不知道有没有简单的方法可以提取嵌入图像 XObjects 的中值/模态分辨率的单个数字。

相关内容