使用python实现压缩PDF文件大小的方法

 更新时间:2024年06月19日 11:19:25   作者:Eiceblue  
压缩 PDF 文件能有效减小文件大小并提高文件传输的效率,同时还能节省计算机存储空间,除了使用一些专业工具对PDF文件进行压缩,我们还可以通过 Python 来执行该操作,本文将分享一个简单有效的使用 Python 压缩 PDF 文件的方法,需要的朋友可以参考下

引言

压缩 PDF 文件能有效减小文件大小并提高文件传输的效率,同时还能节省计算机存储空间。除了使用一些专业工具对PDF文件进行压缩,我们还可以通过 Python 来执行该操作,实现自动化、批量处理PDF文件。

本文将分享一个简单有效的使用 Python 压缩 PDF 文件的方法。需要用到 Spire.PDF for Python库,可以通过pip命令安装该库。

pip install Spire.PDF

使用 Python 实现PDF 文件压缩

Spire.PDF for Python 库可以通过调整图像质量和压缩嵌入字体来减小 PDF 文件的大小。 主要步骤及方法如下:

  1. 导入库。
  2. 创建 PdfCompressor 对象,并传入需要压缩的 PDF 文件。
  3. 获取压缩选项(OptimizationOptions),并设置字体和图片的压缩。
    压缩字体:
    • 启用字体压缩:SetIsCompressFonts(True) 方法
    • 或取消字体嵌入:SetIsUnembedFonts(True) 方法
    压缩图片:
    • 设置图片质量:SetImageQuality(imageQuality: ImageQuality) 方法(支持设置High/ Medium /Low)。
    • 调整图片大小:SetResizeImages(True) 方法。
    • 启用图片压缩:SetIsCompressImage(True) 方法。
  4. 调用 CompressToFile() 方法,压缩PDF文件并保存到指定路径下。

Python 代码:

from spire.pdf.common import *
from spire.pdf import *

# 创建PdfCompressor对象并传入PDF文件
compressor = PdfCompressor("测试报告.pdf")

# 获取OptimizationOptions对象
options = compressor.OptimizationOptions

# 压缩字体
options.SetIsCompressFonts(True)
# 取消字体嵌入
# options.SetIsUnembedFonts(True)

# 设置图片质量
options.SetImageQuality(ImageQuality.Medium)
# 调整图片大小
options.SetResizeImages(True)
# 压缩图片
options.SetIsCompressImage(True)

# 压缩PDF文件并保存
compressor.CompressToFile("PDF压缩.pdf")

Spire.PDF for Python 库允许我们根据具体需要灵活调整压缩选项。要实现最大限度地压缩,我们可以将图像质量设置为Low。

其他方法:

pdf文件过大,经常会是一个问题,但是市面上基本上都是收费的工具,wps需要开会员才能使用。因此找了一个python库进行试验:

首先需要安装

pip install aspose-pdf

运行的代码:

import aspose.pdf as ap
 
compressPdfDocument = ap.Document("SnapFusion.pdf")  # 需要压缩的pdf文件路径
pdfoptimizeOptions = ap.optimization.OptimizationOptions()
pdfoptimizeOptions.image_compression_options.compress_images = True
pdfoptimizeOptions.image_compression_options.image_quality = 10
compressPdfDocument.optimize_resources(pdfoptimizeOptions)
compressPdfDocument.save("SnapFusion_compress.pdf")  # 需要压缩后保存的文件路径

这个代码使用非常简单,主要是压缩文件里面的图片质量,实际上图片质量差一些在阅读器里面是看不出来的区别,效果如下:

文件直接小了10倍,打开看也不影响观感,还是比较有意义的。

到此这篇关于使用python实现压缩PDF文件大小的方法的文章就介绍到这了,更多相关python压缩PDF大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现LR1文法的完整实例代码

    Python实现LR1文法的完整实例代码

    这篇文章主要给大家介绍了关于Python实现LR1文法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • python编写暴力破解FTP密码小工具

    python编写暴力破解FTP密码小工具

    本文给大家分享了一段自己用python编写的暴力破解FTP密码的小工具的代码,原理很简单,就是利用多线程调用相应的字典进行穷举测试,小伙伴们可以自由修改。
    2014-11-11
  • 详解Python计算机视觉 图像扭曲(仿射扭曲)

    详解Python计算机视觉 图像扭曲(仿射扭曲)

    这篇文章主要介绍了Python计算机视觉 图像扭曲(仿射扭曲),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 详解python中的异常捕获

    详解python中的异常捕获

    这篇文章主要介绍了python中的异常捕获的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • Python中内置的日志模块logging用法详解

    Python中内置的日志模块logging用法详解

    Python的logging模块提供了记录程序运行情况的日志功能,类似于Apache的log4j,很好很强大,这里我们就来看一下Python中内置的日志模块logging用法详解
    2016-07-07
  • Python快速进修指南之向量数据库文本搜索

    Python快速进修指南之向量数据库文本搜索

    这篇文章主要为大家介绍了Java开发快速进修Python指南之向量数据库文本搜索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python中协程coroutine适用场景分析

    Python中协程coroutine适用场景分析

    多线程中可能出现多个线程争抢变量,所以变量需要加锁;协程中任一时刻都只有一个线程,所以变量不需要加锁,这篇文章主要介绍了Python中协程(coroutine)详解,需要的朋友可以参考下
    2024-04-04
  • 在Python 3中缓存Exception对象会造成什么后果?

    在Python 3中缓存Exception对象会造成什么后果?

    这篇文章主要介绍了在Python 3中缓存Exception对象到底会造成什么后果?下面带着这个问题一起看看文章的解析,需要的朋友可以参考一下
    2021-12-12
  • pandas数据分组和聚合操作方法

    pandas数据分组和聚合操作方法

    下面小编就为大家分享一篇pandas数据分组和聚合操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python修改pip install默认安装路径的详细步骤

    python修改pip install默认安装路径的详细步骤

    pip安装的第三方库默认存放在C盘中,为了便于管理和不过度占用C盘空间所以想修改默认的pip路径,文章通过图文结合的方式给大家介绍的非常详细,需要的朋友可以参考下
    2025-04-04

最新评论