检查 EPS/PDF 文件是否包含矢量图形

检查 EPS/PDF 文件是否包含矢量图形

我需要将 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 过程

示例文件:http://docdro.id/yJZTGBt

答案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.

相关内容