对于繁重的PDF文件,我可以用Python做些什么来让它们变得更轻吗?

问题描述 投票:0回答:1

许多PDF文件非常重且缓慢,可能是因为它是通过巨大的图形背景加载的,并且必须有一种方法通过Python脚本来使其更轻。

我下载了很多PDF电子书,这些电子书对我的Foxit(pdf查看器)和XP系统来说非常重(像这样:https://ibb.co/2dN6V69)。我想让它们变得更轻,但我不知道该怎么做。我可以使用 reprtlab 或 pypdf - 或任何其他 python 库 - 来探索和分析图层或删除文件的背景。我只想要它后面的文字和白色背景。

python pdf-generation pypdf reportlab
1个回答
0
投票

“问题”中的 PDF 是扫描和存档期间/之后的后处理的复杂组合。

许多页面具有不同的特征,因为它们通常分为 2 个图像和不可见的 OCR 文本。如果删除所有图像,将丢失未转换的文本,并且所有错误的拼写都会变得明显。 enter image description here

仅删除背景图像会像删除蒙版一样破坏“可读性”。

过度压缩导致页面在我的快速查看器中需要 1.5 秒。通过解压使文件变大可以大大改善这一点。

要在渲染和解压缩之间取得良好的平衡,最好的解决方案是使用 GhostScript 等 PDF 重写器重建 PDF。

通过增加文件和重组图像,我们可以获得更大的尺寸和更快的速度(优化)的良好结果。

最好的结果是通过编写一个循环来通过 shell 调用运行所有文件(这里我使用的是 Windows)。适应您自己的编程语言。

gs -sDEVICE=pdfwrite -o"C:\output path\output.pdf" -dPDFSETTINGS=/screen -f "C:\input path\.pdf"

速度就变得非常快,简单来说就是不到一秒就解析完所有100个页面。因此,一次在所有页面上进行解压缩可能会很慢,但此后每次打开 PDF 的速度都会更快。

© www.soinside.com 2019 - 2024. All rights reserved.