常见错误消息

页面已包含文本

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。