如何解决如何使用 pymupdf 减小修改后的 PDF 的大小
我正在编辑 pdf,方法是在 pymupdf 中编辑某些单词并在编辑区域的顶部添加不同的单词。
代码运行成功,但它生成了一个非常大的单页 pdf (9MB)。我认为这是因为绘制了许多形状和修订,但我似乎无法重构。
我知道 from this post 我不应该多次应用 page.apply_redactions()
但如果我不这样做,文本就不会正确显示在编辑方块的顶部,或者它会引发 {{ 1}}。
对重构较小输出 pdf 的任何帮助将不胜感激。
ValueError: fill rect must be finite and not empty
解决方法
如果不了解有关您正在处理的 PDF 页面的更多详细信息,则有点难以判断。
但是,插入文本或绘图不会增加大量数据。所以我认为应用修订可能会导致问题:
如果您的页面包含与您的任何编辑矩形重叠的图像,apply_redactions()
(不带参数!)将修改重叠的图像部分并将它们清空......这将发生在每个图像及其每个重叠处!结果是每个图像的未压缩新 PNG 版本。
因此,您应该尝试以下方法之一:
- 请勿触摸任何图像:使用
page.apply_redactions(images=fitz.PDF_REDACT_IMAGE_NONE)
- 删除每张图像至少有一个重叠(可能不受欢迎):
page.apply_redactions(images=fitz.PDF_REDACT_IMAGE_REMOVE)
- 或者至少在保存文件时使用
garbage=3,deflate=True
来压缩修改后的图像。
实际上,在这些类型的操作之后,您应该始终使用垃圾收集和压缩。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。