用python裁切PDF文件中的图片

server/2024/12/22 22:19:10/

想把所有pdf文件的图片下边裁切掉一块,用Adobe Acrobat只能一页页处理,于是想到了用python进行批处理。

代码如下:

python">"""
Title: cutPdfImage
Author: JackieZheng
Date: 2024-09-26 20:51:24
LastEditTime: 2024-09-26 22:14:24
LastEditors:
Description:
FilePath: \\pythonCode\\cutPdfImage.py
"""import fitz  # pip install pymupdfdef cut_images_and_replace(pdf_path):doc = fitz.open(pdf_path)for page_num in range(len(doc)):if page_num > 147:  # 从哪页开始处理page = doc[page_num]img_xrefs = page.get_images(full=True)for img_index, img in enumerate(img_xrefs):xref = img[0]base_image = doc.extract_image(xref)pix = fitz.Pixmap(doc, xref)# 假设裁切后图像大小new_width = pix.widthnew_height = pix.height - 150# 创建新图像new_pix = fitz.Pixmap(fitz.csRGB,fitz.Rect(0, 0, new_width, new_height),pix.alpha)# 将原图像复制到新图像中new_pix.copy(pix, fitz.Rect(0, 0, new_width, new_height))# 删除原图片page.delete_image(xref)# 插入裁切后的图片page.insert_image((0, 0, page.rect.width, page.rect.height - 20),pixmap=new_pix,keep_proportion=True)print(f"Processed and replaced image {img_index + 1} on page {page_num + 1}.")doc.save(pdf_path[:-4] + '_processed.pdf')doc.close()pdf_file_path = "C:\\Users\\JackieZheng\\Desktop\\22.pdf"
cut_images_and_replace(pdf_file_path)

PS:处理后的文件会变大,有兴趣的同学可以优化下。


http://www.ppmy.cn/server/126119.html

相关文章

PHP反序列化8(phar反序列化)

考点8&#xff1a;phar反序列化 <aside> &#x1f4a1; 使用条件 </aside> 文件上传时&#xff0c;不必要.phar后缀&#xff0c;文件上传不是难点&#xff01;&#xff01;&#xff01;&#xff08;phar伪协议自动解析成.phar文件&#xff09; phar文件本质上是…

React生命周期以及Hook

React生命周期可概括为以下关键阶段&#xff08;针对类组件&#xff0c;函数组件主要通过Hooks实现类似功能&#xff09;&#xff1a; 挂载&#xff08;Mounting&#xff09;&#xff1a; constructor&#xff1a;初始化state和绑定事件处理函数。 render&#xff1a;返回组件的…

如何将自定义支付网关与 WooCommerce Checkout 区块集成

从 8.3 开始的 WooCommerce版本中&#xff0c;您可能会注意到您的自定义付款方式在结账区块中不可用。 例如&#xff0c;如果您尝试停用商店中除自定义付款方式之外的所有付款方式&#xff0c;您可能会收到如下错误消息&#xff1a; 这里我使用 Storefront 主题作为示例&#…

RabbitMQ的高级特性-延迟队列

延迟队列(Delayed Queue)&#xff0c;即消息被发送以后, 并不想让消费者⽴刻拿到消息, ⽽是等待特定时间后,消费者才能拿到这个消息进⾏消费 应用场景 延迟队列的使⽤场景有很多, ⽐如: 1. 智能家居: ⽤⼾希望通过⼿机远程遥控家⾥的智能设备在指定的时间进⾏⼯作. 这时候就可…

无人驾驶车联网5G车载路由器应用

无人驾驶车联网中&#xff0c;5G车载路由器的应用起到了至关重要的作用。以下是关于5G车载路由器在无人驾驶车联网中应用的详细分析&#xff1a; 5G车载路由器具备极低的时延特性&#xff0c;能够实现车与车之间、车与基础设施之间的快速通信。这对于无人驾驶技术尤为重要&…

智能扩展:通过小型模型初始化加速大型语言模型预训练

现代语言模型规模庞大&#xff0c;训练成本高昂。例如&#xff0c;训练一个120亿参数的模型大约需要72000 GPU小时。而小型语言模型虽然训练成本低&#xff0c;但准确性往往不足。在这篇论文中&#xff0c;作者提出了一种名为HyperCloning的方法&#xff0c;它可以将预训练的小…

vue2分页

HTML <!--下方分页区域--><el-paginationsize-change"handleSizeChange"current-change"handleCurrentChange":current-page"currentPage":page-sizes"[5, 10, 20]":page-size"100"layout"total, sizes, pre…

【Go】-基于Gin框架的IM通信项目

目录 项目介绍 项目分析 项目分层 初始化 首页功能 获取首页 注册 进入聊天界面 用户模块 创建用户 删除用户 修改用户信息 查找用户 通过名字和密码查找用户 获取用户列表 好友模块 获取所有好友 添加好友 发送消息 ws升级和订阅redis管道接收消…