我遇到一个问题,有些用户创建的 PDF 非常大。另一方面,我从传真机发送的 PDF 非常小,完全可以打印。我的问题是
- 有什么方法可以找到 PDF 的分辨率 (DPI)。我搜索了互联网,但找不到任何答案。检查了文件的属性,至少在我的情况下,此信息并未存储在那里。
- 将文本文件转换为图像 PDF 的最佳分辨率是多少。96dpi、300dpi 还是更高?
- 有趣的问题。我可以将以高 dpi 扫描的 PDF 调整为较小的 dpi 吗?
我知道有些答案可能无法得到,因为我已经在互联网上搜索过但找不到答案。
注意:我的 PDF 全部是图像,文本转图像。我还熟悉 primoPDF(免费),你可以尝试一下
答案1
slhck 的回答和 scruss 的评论值得更新:pdfimages
现在(至少从 0.26.5 版开始)明确列出了x-ppi
和y-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 的identify
和pdf安装1:
pdfimages -j test.pdf test && for file in $(find . -name "test*.jpg"); do identify "$file"; done
您的输入 PDF 在哪里test.pdf
。输出文件写入test-000.jpg
、test-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 的中值/模态分辨率的单个数字。