主要答案
由于我感兴趣的同样的工作(虽然不一定OCR的PDF文件,但将它们转换成的DjVu和再 OCR他们),我发现这个问题,并响应缺乏(因为我需要猜的DPI具有像素数量的图像,然后使用该尺寸作为输出pdfinfo
或其他技巧-更不用说PDF内的图像可能具有不同的密度等)。
经过大量研究,我发现您可以使用pdfimages
(从poppler-utils包中)类似以下内容:
$ pdfimages -list deptest.pdf
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
1 0 image 100 100 gray 1 1 image no 9 0 53 53 169B 14%
2 1 image 100 100 gray 1 1 ccitt no [inline] 53 53 698B 56%
请注意上面的清单中的x-ppi
和y-ppi
。它还列出了图像存储在PDF中的格式,这很酷(有时是JBIG2,有时是JPEG2000等)。
注意:deptest.pdf
上面使用的文件可从pdfsizeopt
的存储库中获得。
真正的行动
之后,您可以简单地提取图像pdfimages
本身或使用pdftoppm
(也来自poppler-utils
)以您可能喜欢的多种格式渲染整个页面(例如tiff,用于使用扫描tesseract
)。
您可以使用类似以下的内容(假设您已经创建了一个名称imgs
,将其放置图像的目录):
pdfimages -png Faraway-PRA.pdf imgs/prefix
这些文件将在目录内创建imgs
,名称以开头prefix
,如下所示:
$ ls
prefix-000.png prefix-047.png prefix-094.png prefix-141.png
prefix-001.png prefix-048.png prefix-095.png prefix-142.png
prefix-002.png prefix-049.png prefix-096.png prefix-143.png
prefix-003.png prefix-050.png prefix-097.png prefix-144.png
(...)
然后,您可以使用诸如此类的工具进行任何您认为合适的手术scantailor
。
更直接的答案
如果只想OCR PDF文件,则可以使用维护良好且已打包的程序ocrmypdf。
x-ppi
DPI中的x分辨率)和y-ppi
(DPI中的y分辨率)pdfimages
。但是,Ubuntu 18.04上提供的功能确实包含这些值。pdfimages -v
在我的Ubuntu 18.04计算机上显示我具有0.62.0版,它确实具有这些功能。