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

hk_*_*hk_ 17 pdf dpi resolution images

我有一些用户创建非常大的 PDF 的问题。另一方面,我有从我们的传真机发送的 PDF,它们的尺寸非常小且完全可打印。我的问题是

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

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

注意:我的 PDF 完全是图像,文本到图像。我也熟悉 primoPDF(免费)你可以尝试的东西

Ski*_*rou 18

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%
Run Code Online (Sandbox Code Playgroud)

在 Debian (Wheezy) 和 Fedora (23) 上,pdfimagespoppler-utils软件包的一部分。


slh*_*hck 8

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


在* nix中,如果您有ImageMagick的identifyxpdf的安装1

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

test.pdf您输入的 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
Run Code Online (Sandbox Code Playgroud)

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


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

通常,您要打印的任何内容都应为 300dpi 或更高。大多数打印机也会处理更高的分辨率。

  • 来自 poppler 项目的 pdfimages 版本(可能比原始问题更新)添加了 *-list* 选项:`pdfimages -list test.pdf`。这不是输出文件,而是列出大小和图像类型。仍然没有明确地给你解决方案,但避免创建输出文件。 (2认同)

Red*_*ick 1

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