代码之家  ›  专栏  ›  技术社区  ›  Skarab

运行ImageMagick将低质量pdf转换为图像(用于OCR)的最佳参数是什么

  •  8
  • Skarab  · 技术社区  · 14 年前

    Ocropus ImageMagick --将pdf转换为图像的命令行工具--将这些pdf转换为jpg或png。

    我找到了 this page ,但不知从何说起。

    3 回复  |  直到 14 年前
        1
  •  15
  •   Kurt Pfeifle    14 年前

    您可以通过键入以下命令了解ImageMagick的“委托”(IM使用的外部程序,如Ghostscript)的详细设置

    convert -list delegate
    

    (在我的系统中,这是32个不同命令的列表。)现在要查看用于转换为PNG的命令,请使用以下命令:

    convert -list delegate | findstr /i png
    

    好的,这是给Windows的。你没说你用的是哪个操作系统。 如果您使用的是Linux,请尝试以下操作:

    convert -list delegate | grep -i png
    

    convert -list delegate | findstr /i PDF
    convert -list delegate | grep -i PDF
    

    如果您知道Ghostscript可以在 去吧。更快。而且质量更好。

    关于IM处理通过Ghostscript代理将PDF转换为图像的过程,您首先应该知道两件事:

    1. 默认情况下,如果不提供额外的参数,Ghostscript将输出分辨率为72dpi的图像。这就是为什么卡尔的回答建议加上 -density 600 它告诉Ghostscript使用600 dpi分辨率的图像输出。
    2. IM的绕道两次调用鬼魂脚本先转换 PDF => PS 然后 PS => PNG 从未 胜利和哈迪在第一步就保持了质量,但往往会失去一些。原因:
      • 方向转换 PS => PDF 不是很关键……)

    most recent version 8.71

    gswin32c.exe ^
      -sDEVICE=pngalpha ^
      -o output/page_%03d.png ^
      -r600 ^
      d:/path/to/your/input.pdf
    

    (这是Windows的命令行。在Linux上,使用 gs 而不是 gswin32c.exe ,和 \ 而不是 ^ )此命令期望找到 output 子目录,它将为每个PDF页存储一个单独的文件。要生成高质量的JPEG,请尝试

    gs \
      -sDEVICE=jpeg \
      -o output/page_%03d.jpeg \
      -r600 \
      -dJPEGQ=95 \
      /path/to/your/input.pdf
    


    [*] 哦!一开始我没看到你的“linux”标签。。。

        2
  •  5
  •   Karl Bielefeldt    14 年前

    -density 600 或者应该给你你需要的。

        3
  •  0
  •   Brian Z    9 年前

    您可能需要考虑至少两种其他工具:

    • pdfimages ,随包提供 poppler-utils
    • pdfsandwich ,只需运行 pdfsandwich inputfile.pdf the official page 更多信息。