我需要将 PDF 文件转换为 EPS。然后我需要删除所有文本和图像。到目前为止,这有效
pdftocairo -f 1 -l 1 -eps test.pdf - | sed '/BT/,/ET/ d' | sed '/^8 dict dup begin$/,/^Q$/ c Q' > no_text_and_images.eps
但是如何检查 EPS 文件是否包含矢量?我需要对输出进行一些 OCR 处理 - 但前提是文件中存在矢量。如果它只包含文本和图像,我不想使用资源来运行 OCR 过程
答案1
您可以使用 ImageMagick。'-trim' 选项会将图像裁剪得尽可能小,并会告诉您图像是否完全为空:
$ convert -trim no_text_images.eps foo.jpg
convert-im6.q16: geometry does not contain image [...]
由于该convert
命令没有返回此警告的错误代码,所以您的 shell 脚本将需要 grep stderr。
if ! convert -trim no_text_images.eps foo.png 2>&1 |
grep 'does not contain image'; then
[ there's an image, so process it ]
else
[ there's no image ]
fi
但是,既然我知道你在做什么,我可能会为你提供一个更简单的解决方案。为什么不尝试使用ocrmypdf
?只需sudo apt install ocrmypdf
将其安装在你的 Debian 机器上即可。
我在您给我的 PDF 上运行了它,尽管我将其tesseract
设置为英语,但它仍然合理地呈现了表单顶部的向量:
$ ocrmypdf --force-ocr --oversample 150 084.pdf foo.pdf
$ pdftotext foo.pdf - | less
Sigurd
Otto M¢nsteds
Va]
Muller Vinhandel
A/S
Aalbors SV- Tlf. 98 18 50 99- E-mail: [email protected] www. smv. dk
53 92 79 12- Nordjyske Bank 7450- 2038354
2- 9200
CVR
nr.
Import, salg as distribution if Vin cg spiritus
Eneiurhandler i Danmark af
udsIgte vine fra hale verden.