我正在编写一个python脚本来获取pdf页面的dpi。要获取扫描的PDF的DPI,我正在使用pdfimages命令。
$ pdfimages -list test.pdf
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
1 0 image 1096 2074 gray 1 8 image yes 9 0 500 500 536K 24%
我在 x-ppi 和 y-ppi 字段中获得 DPI。我在带有子流程模块的程序中使用上述命令 但是当我尝试使用机器生成的 PDF 执行此操作时,它会给我以下输出。
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
有人可以帮忙,我如何从 ubuntu 命令行或 python 获取机器生成的 PDF 的 DPI。
PDF没有"DPI",它们主要是关于编码矢量图像,这些图像可以以任意分辨率栅格化。 您提取的图像也只是像素的任意 2D 数组,决定其"DPI"的是文件中的 PDF 命令,这些命令指定图像将呈现到页面中的大小
存储在PDF中的图像可以以不同的大小多次显示(尽管大多数情况下只是一次(,因此同一图像可以在-list
的输出中多次出现,并且源代码似乎确实引用了转换矩阵,因此它可能在做正确的事情
代码似乎也没有任何方法不这样做,所以我不确定你的意思是它因"机器生成的 PDF"而失败
机器生成的 PDF 可能是矢量 PDF,而扫描的 PDF 是光栅 PDF。DPI 在矢量 PDF 中没有任何意义,因此它不会报告它。