常见错误消息
页面已包含文本
ERROR - 1: page already has text! – aborting (use --force-ocr to force OCR)
您对一个已包含可打印文本或隐藏 OCR 文本层的文件(它无法完全区分两者)运行了 ocrmypdf。您可能不希望这样做,因为该文件已是可搜索的。
正如错误消息所示,您的选择有:
ocrmypdf --force-ocr
用于栅格化 <raster-vector>
所有矢量内容并对图像运行 OCR。如果之前的 OCR 程序失败,或者文档包含文本水印,此选项很有用。ocrmypdf --skip-text
用于跳过对包含文本的任何页面的 OCR 和其他处理。这些文本页面将不经修改地复制到输出 PDF 中。ocrmypdf --redo-ocr
用于扫描文件以查找任何现有 OCR(非打印文本),移除它,并再次进行 OCR。这是利用 OCR 准确性改进的一种方式。可打印的矢量文本不进行 OCR,因此此选项可用于包含数字和扫描文件混合内容的文件。
输入文件 ‘filename’ 不是有效的 PDF
OCRmyPDF 在处理文件之前,会使用 pikepdf(一个反过来使用 libqpdf 修复 PDF 中错误的库)来检查文件。在大多数情况下,发生此错误是因为 PDF 文件已损坏或被截断(文件复制不完整),且能做的修复工作不多。
您可以尝试使用 Ghostscript 重写文件
gs -o output.pdf -dSAFER -sDEVICE=pdfwrite input.pdf
pdftk
也可以重写 PDF
pdftk input.pdf cat output output.pdf
有时 Acrobat 可以使用其 Preflight 工具修复 PDF。