seb*_*seb 5 pdf ocr pdf-generation tesseract ghostscript
我的(网络)应用程序的设置如下:我得到用户上传的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
Run Code Online (Sandbox Code Playgroud)
OCR的结果很好,但是现在生成的PDF的大小约为2.5倍
所以我问你,如何在保持OCR结果的同时减小生成的PDF的大小?
一种明显的解决方案是在生成tiff时降低分辨率,但是我不想这样做,因为它可能会影响OCR结果。
我尝试的第二件事是使用ghostscript减少了tesseract后的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
Run Code Online (Sandbox Code Playgroud)
这会有所帮助,生成的文件只有101K,因此约为原始文件的1.5倍。我可以接受,但它似乎也会影响OCR结果。例如,现在缺少“餐厅”和“比萨店”(第二行)之间的空白。
带有ghostscript的另一个(更简单)选项(使用ebook参数)导致PDF文件中的质量较差的43k文件,并且存在缺少空白的相同问题:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dBATCH -dQUIET -sOutputFile=sample-ebook.pdf \
sample-tess.pdf
Run Code Online (Sandbox Code Playgroud)
较低质量的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
Run Code Online (Sandbox Code Playgroud)
总数(55.50)丢失,最终PDF大小为149k。
总结一下,这是我的问题:
同样,只要用户可以搜索文本并选择要从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 对图像进行下采样。
| 归档时间: |
|
| 查看次数: |
2976 次 |
| 最近记录: |