微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 pymupdf 减小修改后的 PDF 的大小

如何解决如何使用 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 举报,一经查实,本站将立刻删除。