【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。有问题可前往 论坛 讨论。

申请试用授权完整测试:https://www.e-iceblue.cn/misc/temporary-license.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Python引擎的PP-OCR模型库推理

基于Python引擎的PP-OCR模型库推理 1. 文本检测模型推理 # 下载超轻量中文检测模型: wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar tar xf ch_PP-OCRv3_det_infer.tar python3 tools/infer/predict_det.py --image_dir"…

基于EXCEL数据表格创建省份专题地图

1 数据源 随着西藏于5月1日发布2022年一季度经济运行情况,31省份一季度GDP数据已全部出炉。 总量方面,粤苏鲁稳居前三;增速方面,23省份高于“全国线”,新疆表现最佳,增速达到7.0%。 表格表现数据不够直观…

算法第七天:leetcode之209.长度最小的子数组

一、长度最小的子数组 209.长度最小的子数组的链接:https://leetcode.cn/problems/minimum-size-subarray-sum/ 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组[numsl, numsl1, ..., numsr-1, nu…

RPA助力企业办公流程自动化:真实应用案例展示

在当今快速变化的商业环境中,企业面临着前所未有的挑战和机遇。数字化转型已成为企业提升竞争力、优化运营效率和增强客户体验的关键策略。RPA数字员工作为这一转型过程中的重要工具,正在帮助企业实现办公流程的自动化,从而加速数字化转型的步…

[力扣题解] 701. 二叉搜索树中的插入操作

题目:701. 二叉搜索树中的插入操作 思路 二叉搜索树的查找规律:要插入的值val比当前节点大,往右走,比当前节点小,往左走; 代码 Method 1 class Solution { public:void travel(TreeNode* cur, int val…

Aeron:Multi-Destination-Cast

Multi-Destination-Cast(MDC)是一种功能,允许 Aeron 从单个 Publication 同时向多个目的地传送数据。Multiple-Destination-Cast是 Aeron 的一项高级功能,本指南将介绍如何开发一个简单示例的基本知识。 一、MDC Publications 注&…

正则表达式 - 在线工具

正则表达式 - 在线工具 正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许用户通过特定的模式匹配和操作字符串。在编程、数据分析和文本处理等领域,正则表达式被广泛应用。随着技术的发展&a…

MAP REDUCE

大数据处理框架概念 定义:由一系列组件构成,负责对数据系统中的数据进行计算。组件: 处理引擎:实际执行数据操作的独立组件。处理框架:包含多个协同工作的组件。 框架与引擎的区别 引擎:单一的&#xf…

NV-Embed论文阅读笔记

这是NVIDIA的一篇论文,LLM通常使用的是GPT的decoder范式作为一个生成模型,文章探讨如何利用这样的decoder生成模型来实现BERT这样的encoder的功能,即提取有效的embedding。现有的方法提取embedding的方式无非是 1 mean pooling; 2…

计算机相关专业是否仍是“万金油”的选择?

亲爱的朋友们: 2024 年高考已然落幕,数百万高三学子站在了人生的重要十字路口,面临着选择大学专业这一关键抉择。在这个节点上,计算机相关专业是否还能被称为“万金油”的选择呢? 相信大家都知道,在最近这几…

经典神经网络(11)VQ-VAE模型及其在MNIST数据集上的应用

经典神经网络(11)VQ-VAE模型及其在MNIST数据集上的应用 我们之前已经了解了PixelCNN模型。 经典神经网络(10)PixelCNN模型、Gated PixelCNN模型及其在MNIST数据集上的应用 今天,我们了解下DeepMind在2017年提出的一种基于离散隐变量(Discrete Latent va…

celery骚操作之把任务写在类中可能造成的问题

celery注册异步函数是模块级别的,也就是同个模块不能有同名函数,比如搞个骚操作,将celery任务写在类中如下(注意这个静态方法是个特殊的装饰器,他实际是个描述器,他必须写在最上面) 实际注册的任务是apps.business.tas…

java:sqlj2ava的静态字段保护

不论是Thrift RPC还是SpringWeb服务,服务方法的输入和输出参数都要通过网络在Server/Client之间传输。实现数据对象传输,发送端需要对数据对象进行序列化(JSON或二进制数据流),接收端需要对收到的数据反序列化还原为原始的数据对象。 从3.32.…

萤石视频接入api接口示例

api官方文档 文档概述 萤石开放平台API文档 (ys7.com) 方法层: @Value("${video.appKey}")private String appKey;@Value("${video.appSecret}")private String appSecret;@Overridepublic String getToken(String appKey, String appSecret) {OkHtt…

3D视觉引导机器人提升生产线的自动化水平和智能化程度

随着智能化技术的不断发展,汽车制造企业正积极寻求提升智能化水平的途径。富唯智能的3D视觉引导机器人抓取技术为汽车制造企业提供了一种高效、智能的自动化解决方案。 项目目标 某汽车制造企业希望通过引入智能化技术提升生产线的自动化水平和智能化程度。他们希望…

小抄 20240610

1 不要轻易主动帮人,你一主动,本来是他的事,现在成了你的事,你做的稍微有点不如愿,他还要反过来埋怨你。 2 网上经常炫富的有两种人, 一种是穷人,通过炫富来掩盖自己自卑的内心。 一种是靠炫富…

数字时代PLM系统的重要性

什么是 PLM(产品生命周期管理)? 从最基本的层面上讲,产品生命周期管理 (PLM)是管理产品从最初构思、开发、服务和处置的整个过程的战略流程。换句话说,PLM 意味着管理产品从诞生到消亡所涉及的一切。 什么是 PLM 软件…

43.139.152.26 P2315 分数计算

从键盘读入一个分数算式,为2个分数做加法或者减法,请输出分数算式的结果,结果也用分数表达,且约分到最简形式。(请注意:做减法可能得到负的分数,如果是负数要输出负号-,如1/15-4/15结…

python错题(3)

round四舍五入 title()把单词首字母大写 all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。 元素除了是 0、空、None、False 外都算 True 。空元组、空列表返回值为True,这里要特…

2023数A题——WLAN网络信道接入机制建模

A题——WLAN网络信道接入机制建模 思路:该题主要考察的WLAN下退避机制建模仿真。 资料获取 问题1: 假设AP发送包的载荷长度为1500Bytes(1Bytes 8bits),PHY头时长为13.6μs,MAC头为30Bytes,MA…