常见错误信息
页面已有文本
ERROR - 1: page already has text! – aborting (use --force-ocr to force OCR)
您在一个已经包含可打印文本或隐藏OCR文本层的文件上运行了ocrmypdf(它无法完全区分这两者)。您可能不希望这样做,因为该文件已经是可搜索的。
正如错误信息所示,您的选项有:
ocrmypdf --force-ocr用于栅格化所有矢量内容并对图像进行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。