【问题标题】:No output for OCRmyPDFOCRmyPDF 没有输出
【发布时间】:2021-04-10 23:29:42
【问题描述】:

我正在使用 OCRmyPDF 从扫描的 pdf 文件中提取文本。为此,我使用来自this Colab notebook 的代码。唯一的区别是,我没有从在线 url 下载 pdf 文件,而是使用存储在本地计算机上的 pdf 文件(将其替换为 {file_name} 而不是 {invoice_pdf})。在我运行之前,一切看起来都很好:

os.system(f'ocrmypdf {file_name} output.pdf')

我得到的不是 0,而是 512!下一行,当我运行 !ocrmypdf Performance Evaluations.pdf output.pdf 时,我收到一条无法识别的错误消息,内容如下:

usage: ocrmypdf [-h] [-l LANGUAGE] [--image-dpi DPI]
                [--output-type {pdfa,pdf,pdfa-1,pdfa-2}] [--sidecar [FILE]]
                [--version] [-j N] [-q] [-v [VERBOSE]] [--title TITLE]
                [--author AUTHOR] [--subject SUBJECT] [--keywords KEYWORDS]
                [-r] [--remove-background] [-d] [-c] [-i] [--oversample DPI]
                [-f] [-s] [--skip-big MPixels] [--max-image-mpixels MPixels]
                [--tesseract-config CFG] [--tesseract-pagesegmode PSM]
                [--tesseract-oem MODE]
                [--pdf-renderer {auto,tesseract,hocr,sandwich}]
                [--tesseract-timeout SECONDS]
                [--rotate-pages-threshold CONFIDENCE]
                [--pdfa-image-compression {auto,jpeg,lossless}]
                [--user-words FILE] [--user-patterns FILE] [--skip-repair]
                [-k] [-g] [--flowchart FLOWCHART]
                input_pdf_or_image output_pdf
ocrmypdf: error: unrecognized arguments: output.pdf

最后,运行以下行:

with pdfplumber.open('output.pdf') as pdf:
    page = pdf.pages[0]
    text = page.extract_text(x_tolerance=2)
    print(text)

返回

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-19-8274f7005856> in <module>()
----> 1 with pdfplumber.open('output.pdf') as pdf:
      2     page = pdf.pages[0]
      3     text = page.extract_text(x_tolerance=2)
      4     print(text)

/usr/local/lib/python3.6/dist-packages/pdfplumber/pdf.py in open(cls, path_or_fp, **kwargs)
     56     def open(cls, path_or_fp, **kwargs):
     57         if isinstance(path_or_fp, (str, pathlib.Path)):
---> 58             fp = open(path_or_fp, "rb")
     59             inst = cls(fp, **kwargs)
     60             inst.close = fp.close

FileNotFoundError: [Errno 2] No such file or directory: 'output.pdf'

感谢任何帮助。谢谢

【问题讨论】:

    标签: python python-3.x pdf ocr google-colaboratory


    【解决方案1】:

    如果文件名中包含空格,则需要用引号将文件名括起来。

    ocrmypdf "Performance Evaluations.pdf" output.pdf
    

    ocrmypdf 'Performance Evaluations.pdf' output.pdf
    

    【讨论】:

    • 嗨,亚历克斯,感谢您的回复。我为 file_name in 创建一个变量的原因是,我将一遍又一遍地使用这个 ocrmypdf 将数百个扫描的 PDF 转换为文本,而无需在每次运行时更改文件名。但正如您所指出的,每次我使用变量而不是实际文件名时都会遇到错误。你能提出任何解决方案来绕过这个问题吗?
    • 测试这个:os.system(f'ocrmypdf \'{file_name}\'output.pdf')
    • 那行得通,现在我得到 0 为该行,但下一行 (!ocrmypdf {file_name} output.pdf ) 仍然发送相同的错误 (ocrmypdf: error: unrecognized arguments: output.pdf)
    • 双引号? os.system (f'ocrmypdf \ "{file_name} \" output.pdf ')
    • 谢谢。双引号不起作用。我正在使用单引号来完成这项工作。
    猜你喜欢
    • 2022-07-14
    • 1970-01-01
    • 2015-05-11
    • 2018-03-19
    • 2021-02-08
    • 2021-12-29
    • 2022-01-18
    • 2011-04-13
    • 2022-01-20
    相关资源
    最近更新 更多