gpt4 book ai didi

pdf - 如何减小tesseract生成的PDF的大小?

转载 作者:行者123 更新时间:2023-12-04 15:43:48 25 4
gpt4 key购买 nike

我的(网络)应用程序的设置如下:我获取用户上传的 PDF 文件,我对它们运行 OCR 并向他们展示 OCRed PDF。由于一切都在线,因此最小化生成的 PDF 文件的大小是减少用户加载和等待时间的关键。

我从用户那里收到的文件是 sample.pdf (我已经使用原始文件以及我在此处生成的文件创建了一个存档: https://dl.dropboxusercontent.com/u/1390155/tess-files/sample.zip )。我使用tesseract 3.04并执行以下操作:

gs -r300 -sDEVICE=tiff24nc -dBATCH -dNOPAUSE -sOutputFile=sample.tiff sample.pdf
tesseract sample.tiff sample-tess -l fra -psm 1 pdf

OCR 的结果不错,但是现在生成的 PDF 的大小是原来的 2.5 倍左右
  • 原始pdf文件的大小:60k
  • 最终 pdf 的大小:147K

  • 所以我问你,如何在保持OCR结果的同时减小生成的PDF的大小?

    一个明显的解决方案是在生成 tiff 时降低分辨率,但我不想这样做,因为它可能会影响 OCR 结果。

    我尝试的第二件事是使用 ghostscript 减少超立方体后的 PDF 大小:
    gs -o sample-down-300.pdf   -sDEVICE=pdfwrite   -dDownsampleColorImages=true \
    -dDownsampleGrayImages=true -dDownsampleMonoImages=true \
    -dColorImageResolution=300 -dGrayImageResolution=300 \
    -dMonoImageResolution=300 -dColorImageDownsampleThreshold=1.0 \
    -dGrayImageDownsampleThreshold=1.5 -dMonoImageDownsampleThreshold=1.0 \
    sample-tess.pdf

    这有点帮助,生成的文件只有 101K,大约是原始文件的 1.5 倍。我可以接受,但它似乎也会影响 OCR 结果。例如,现在缺少“RESTAURANT”和“PIZZERIA”(第二行)之间的空白。

    另一个(更简单的)ghostscript 选项,使用 ebook 参数,导致 43k 文件在 PDF 中质量较差,并且出现同样的缺失空格问题:
    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
    -dNOPAUSE -dBATCH -dQUIET -sOutputFile=sample-ebook.pdf \
    sample-tess.pdf

    质量较差的 PDF 很好,但同样,我真的不想在 OCR 上妥协。

    我已经使用 PNG 和 JPEG 进行了其他测试,但 OCR 结果总是下降(甚至轻微)并且生成的 PDF 并不小。例如,对于 PNG:
    convert -density 300 sample.pdf -transparent white sample.png
    tesseract sample.png sample-tess-png -l fra -psm 1 pdf

    总数 (55.50) 缺失,最终 PDF 大小为 149k。

    总而言之,这里是我的问题:
  • 有人可以解释为什么使用
    ghostscript 会影响 OCR 结果吗?我认为文本层和
    图像层是独立的...
  • 是否有可供选择的选项
    tesseract 在生成图像时降低图像质量
    PDF?
  • 我读到其他解决方案,如 ABBYY OCR 使用混合光栅化
    减少文件大小的内容 (MRC)。 tesseract 会这样做吗
    已经?如果没有,是否有一些开源或专有的 CLI 工具
    这样做,我可以用它来减少tesseract生成的PDF
    文件?

  • 同样,我可以妥协 PDF 图像的质量(尽管我希望保留颜色,理想情况下),只要用户可以搜索文本并选择它从 PDF 复制/粘贴。

    非常感谢任何帮助!

    最佳答案

    问题 1,我看不到任何“附加”的文件,所以我在黑暗中猜测。

    PDF 中没有“文本层”或“图像层”,PDF 可能有层,但它们是独立的。文本和图像“按原样”嵌入文件中。当然,将 PDF 渲染为 TIFF 图像的结果确实会生成单个图像文件。

    原始 PDF 将文本存储为文本,使用字体,TIFF 文件将全部呈现为图像。我不确定 tesseract 究竟是如何工作的,如果没有它的输出示例,我无法确定,但我希望它所做的是在输出 PDF 文件中保持渲染图像完好无损,并使用渲染模式 3 添加文本(既不描边或填充,即不可见)。这就是您在上面描述的“MCR”。

    这对您来说意味着原始 PDF 很小,因为大部分(可能是全部)内容都被描述为矢量数据。生成的 TIFF 文件很大,因为它是一个完整的页面位图,使用矢量表示获得的节省已经丢失。然后将其转换为 PDF(仍然很大),然后将更多文本和字体添加到文档中,这当然只会增加其大小。

    实际上,唯一会对该文件的大小产生重大影响的事情是减小位图图像的大小,即用于创建最终输出 PDF 的 TIFF 文件。

    在渲染到 TIFF 和 OCR 之前弄乱原始 PDF 文件似乎不太可能对最终的 PDF 文件大小产生任何影响(警告;压缩可能效果更好,因为可能有更多的“平面”颜色区域)

    没有看到原始文件和最终文件,我真的不能说更多,而且我无法自己测试它(我没有安装 Tesseract)但在我看来唯一真正的解决方案是在创建最终输出 PDF 文件之前让 Tesseract 对图像进行下采样。

    关于pdf - 如何减小tesseract生成的PDF的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26775306/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com