当前位置: 首页 > news >正文

【PDF PicKiller】PDF批量删除固定位置图片工具,默认解密,可去一般图、背景图、水印图!

PDF批量删除固定位置图片工具 PDF PicKiller

  • <center>PDF PicKiller [Download](https://github.com/Peaceful-World-X/PDF-PicKiller)
  • 🤩 工具介绍
  • 🥳 主要功能
  • 🤪 软件使用
  • 🤪 参数解释
  • 🤪 关键代码
  • 🤩 项目代码

Alt

PDF PicKiller Download

🤩 工具介绍

PDF PicKiller 是基于Python的PDF批处理工具,默认无感解密,使用命令行界面批量删除固定位置图像、渐变背景图、水印图或字,后续还有可能添加新功能,额…如果软件有用的话~

🥳 主要功能

✨ 默认解密:无感处理(破解)加密的 PDF 文件(有打开权限),支持多种加密方式:RC4 128bits, AES 128bits, AES 256bits 等。
✨对象提取:检索模板页(默认第1页),并列出 XObject 图像、Shadings 背景图像和 Form 水印图。
✨批量删除:批量高效的删除列出的图像对象,平均速度为 0.2 秒 处理每 1000 页(每页 5 个删除对象)。
✨交互式命令行:命令行界面,表情样式可爱回复~

🤪 软件使用

  1. 命令行绿色可执行文件,双击食用~
  2. 直接拖入PDF文件,或输入文件地址
  3. 选择模板页(即有要删除图片的页面),默认第一页则回车
  4. 选择模板页中要删除的对象名,默认删除全部对象则回车
  5. 已批量删除打开文件路径~
  6. 随时按下 Ctrl+C 退出软件!

请添加图片描述

🤪 参数解释

文档一般图片:

  • 名字: /IM13, 宽度: 674, 高度: 149
  • 名字: /IM15, 宽度: 640, 高度: 640
    【这是一般图片,通过宽度和高度来区别,IM15高度更大,IM13高度更小】

渐变背景图片:

  • 名字: /FXS1, 类型: 2-径向渐变 (Radial), 坐标: [554.0, 0.85, 554.0, 253.6]
  • 名字: /FXS2, 类型: 2-径向渐变 (Radial), 坐标: [5.0321, 9.2981, 548.518, 249.612]
    【这是背景图片,通过渐变线起始坐标来区别,FXS1是水平渐变,FXS2是对角渐变】

水印图片:

  • 名字: /Form4, 类型: 图片, 边界: [0.0, 0.0, 182.0, 45.0]
  • 名字: /KSPX191, 类型: 文字, 边界: [0.0, -7.272, 288.0, 67.464]
    【这是水印图字,通过类型和边界框起始坐标来区别,Form4高度更小,KSPX191高度更大】

请添加图片描述

🤪 关键代码

  1. PDF解密
import pikepdf
pdf = pikepdf.open(input_pdf_path)# 判断是否加密
if not pdf.is_encrypted:pdf.close()return input_pdf_path
pdf.close()
# 如果加密,重新用密码打开
pdf = pikepdf.open(input_pdf_path)
output_file = input_pdf_path.replace('.pdf', '(decrypted).pdf')
pdf.save(output_file)
pdf.close()
print(f"\033[31m✅ 解密成功,保存为 {output_file}\033[0m")
return output_file
  1. 识别对象
def list_xobjects_and_shadings(page):result = {'images': [],  # 每个元素是 (name, width, height)'shadings': [],  # 每个元素是 (name, shading_type, coords)'watermarks': []  # 每个元素是 (name, resources, bbox)}try:resources = page.obj.get('/Resources')shadings = resources.get('/Shading')xobjects = resources.get('/XObject')# 处理XObject图像if xobjects is None: return resultfor name, obj_ref in xobjects.items():try:obj = obj_ref.get_object()subtype = obj.get('/Subtype')if subtype == '/Image':width = obj.get('/Width', 'Unknown')height = obj.get('/Height', 'Unknown')result['images'].append((name, width, height))elif subtype == '/Form':  # 检查是否为水印 (Form)# 提取水印的资源和边界框resources = obj.get('/Resources', 'Unknown')bbox = obj.get('/BBox', 'Unknown')bbox_list = [float(coord) for coord in bbox] if bbox else Noneresult['watermarks'].append((name, resources, bbox_list))except Exception as e_inner:print(f"⚠️ 哎呀! 无法读取 {name} 对象: {type(e_inner).__name__}: {e_inner}")continue# 处理Shading图像if shadings is None: return resultfor name, obj_ref in shadings.items():try:obj = obj_ref.get_object()obj = obj_refshading_type = obj.get('/ShadingType', 'Unknown')coords = obj.get('/Coords', None)coords_list = [float(coord) for coord in coords] if coords else Noneresult['shadings'].append((name, shading_type, coords_list))except Exception as e_inner:print(f"⚠️ 哎呀! 无法读取 Shading {name}: {type(e_inner).__name__}: {e_inner}")continueexcept Exception as e:print(f"⚠️ 糟糕! 列出XObject时出错: {type(e).__name__}: {e}")return result

🤩 项目代码

https://github.com/Peaceful-World-X/PDF-PicKiller

✨欢迎反馈BUG,后续会视情况添加新功能!
(代码是晚上为了处理一个PDF文件临时写的,有问题非常欢迎反馈~)

http://www.xdnf.cn/news/898381.html

相关文章:

  • Excel处理控件Aspose.Cells教程:使用 C# 在 Excel 中创建组合图表
  • 消防一体化安全管控平台:构建消防“一张图”和APP统一管理
  • App/uni-app 离线本地存储方案有哪些?最推荐的是哪种方案?
  • 【nano与Vim】常用命令
  • Python----目标检测(YOLO简介)
  • AI生成的基于html+marked.js实现的Markdown转html工具,离线使用,可实时预览 [
  • NTT印地赛车:数字孪生技术重构赛事体验范式,驱动观众参与度革命
  • npm error Cannot read properties of null (reading ‘matches‘)
  • Vue 组件库发布实战(含 TypeScript 支持)
  • 在Markdown中使用MathType插入公式
  • 3-11单元格区域边界定位(End属性)学习笔记
  • AI代码助手需求说明书架构
  • camera功能真的那么难用吗
  • 【Auto.js例程】华为备忘录导出到其他手机
  • 静态相机中的 CCD和CMOS的区别
  • 【业务框架】3C-相机-Cinemachine
  • 记录一个用了很久的git提交到github和gitee比较方便的方法
  • uniapp map组件的基础与实践
  • [大A量化专栏] VMware (mac本地跑QMT)
  • AOSP (Android11) 集成Google GMS三件套
  • UniApp系列
  • KKCMS部署
  • Truffle 和 Ganache 使用指南
  • MADlib —— 基于 SQL 的数据挖掘解决方案(4)—— 数据类型之矩阵
  • R 语言科研绘图第 55 期 --- 网络图-聚类
  • T/SAIAS 018—2025《具身智能语料库建设导则》研究报告:体系解构与实施路径
  • LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
  • Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
  • 软考 系统架构设计师系列知识点之杂项集萃(84)
  • awk处理xml文件封装集合变量和调用