【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.pswp.cn/pingmian/83783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83783.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kubeadm安裝k8s

1、環境準備 1.1、升級系統內核 參考另一篇文章&#xff1a;https://blog.csdn.net/u012533920/article/details/148457715?spm1011.2415.3001.5331 1.2、設置Hostname cat <<EOF > /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhos…

Vue基礎(14)_列表過濾、列表排序

Array.prototype.filter()【ES5】 filter() 方法創建給定數組一部分的淺拷貝&#xff0c;其包含通過所提供函數實現的測試的所有元素。 語法&#xff1a; filter(callbackFn) filter(callbackFn, thisArg) 參數&#xff1a; callbackFn(回調函數)&#xff1a;為數組中的每個元…

ComfyUI 中如何使用 Depth ControlNet SD1.5

目錄 SD1.5 Depth ControlNet 簡介 Depth ControlNet 主要特點 SD1.5 Depth ControlNet工作流準備工作 1. 安裝必要插件 方式一:使用 ComfyUI Manager(推薦) 方式二:通過 git 安裝必要插件 方式三:手動安裝(不推薦) 2.1 下載工作流所需模型 2.2 模型存放位置 SD…

IoT/HCIP實驗-3/LiteOS操作系統內核實驗(任務、內存、信號量、CMSIS..)

文章目錄 概述HelloWorld 工程C/C配置編譯器主配置Makefile腳本燒錄器主配置運行結果程序調用棧 任務管理實驗實驗結果osal 系統適配層osal_task_create 其他實驗實驗源碼內存管理實驗互斥鎖實驗信號量實驗 CMISIS接口實驗還是得JlINKCMSIS 簡介LiteOS->CMSIS任務間消息交互…

mysql的分頁場景下,頁數越大查詢速度越慢的解決方法

一 問題描述 select * from table limit 0,10掃描滿足條件的10行&#xff0c;返回10行&#xff0c; 但當limit 99989,10的時候數據讀取就很慢,limit 99989,10的意思掃描滿足條件的99999行&#xff0c;扔掉前面的99989行&#xff0c;返回最后的10行&#xff0c;這樣速度就會很慢…

MDP的 Commands模塊

文章目錄 Isaac Lab Commands 模塊詳細指南&#x1f4cb; 模塊概述&#x1f3d7;? 模塊架構&#x1f3aa; 命令類型詳解1. &#x1f6ab; 空命令 (NullCommand)2. &#x1f3c3; 速度命令 (VelocityCommand)&#x1f3b2; 均勻分布速度命令 (UniformVelocityCommand)&#x1f…

全流程開源!高德3D貼圖生成系統,白模一鍵生成真實感紋理貼圖

導讀 MVPainter 隨著3D生成從幾何建模邁向真實感還原&#xff0c;貼圖質量正逐漸成為決定3D資產視覺表現的核心因素。我們團隊自研的MVPainter系統&#xff0c;作為業內首個全流程開源的3D貼圖生成方案&#xff0c;僅需一張參考圖與任意白模&#xff0c;即可自動生成對齊精確…

Levenberg-Marquardt算法詳解和C++代碼示例

Levenberg-Marquardt&#xff08;LM&#xff09;算法是非線性最小二乘問題中常用的一種優化算法&#xff0c;它融合了高斯-牛頓法和梯度下降法的優點&#xff0c;在數值計算與SLAM、圖像配準、機器學習等領域中應用廣泛。 一、Levenberg-Marquardt算法基本原理 1.1 問題定義 …

理解網絡協議

1.查看網絡配置 : ipconfig 2. ip地址 : ipv4(4字節, 32bit), ipv6, 用來標識主機的網絡地址 3.端口號(0~65535) : 用來標識主機上的某個進程, 1 ~ 1024 知名端口號, 如果是服務端的話需要提供一個特定的端口號, 客戶端的話是隨機分配一個端口號 4.協議 : 簡單來說就是接收數據…

如何計算光伏工程造價預算表?

在光伏工程的推進過程中&#xff0c;造價預算表的編制是至關重要的環節&#xff0c;傳統的光伏工程造價預算編制方法&#xff0c;往往依賴人工收集數據、套用定額&#xff0c;再進行繁瑣的計算與匯總&#xff0c;不僅效率低下&#xff0c;而且容易出現人為誤差&#xff0c;導致…

新聞速遞|Altair 與佐治亞理工學院簽署合作備忘錄,攜手推動航空航天領域創新

近日&#xff0c;全球計算智能領域領先企業 Altair 與佐治亞理工學院正式簽署合作備忘錄&#xff0c;旨在深化航空航天領域的技術創新合作。 根據協議&#xff0c;佐治亞理工學院的航空航天系統設計實驗室 (ASDL) 將獲得 Altair 的技術支持&#xff0c;運用仿真與數據分析 (DA)…

PLSQLDeveloper配置OracleInstantClient連接Oracle數據庫

PL/SQLDeveloper配置Oracle Instant Client連接Oracle數據庫 文章目錄 PL/SQLDeveloper配置Oracle Instant Client連接Oracle數據庫 1. Oracle Instant Client下載與配置1. Oracle Instant Client下載2. Oracle Instant Client解壓配置1. 解壓2. 配置 2. PL/SQL Developer下載、…

數據庫系統學習

關系型數據庫 關系型數據庫建立在關系模型基礎上的數據庫&#xff0c;關系型數據庫是由多張能相互相連的二維表組成的數據庫 優點&#xff1a; 都是使用表結構&#xff0c;格式一致&#xff0c;易于維護使用通用的sql語言操作&#xff0c;使用方便&#xff0c;可用于復雜查詢…

美國大休斯頓都會區電網數據

美國大休斯頓都會區&#xff08;Houston-The Woodlands-Sugar Land Metropolitan Area&#xff09;電網數據。數據包括&#xff1a;發電、輸電、變電、配電。而且配電線路也很完善&#xff01;下面是截圖&#xff1a; 輸電線路 配電線路 變電站 開關站 電廠

信創主機性能測試實例(升騰P860)

文章目錄 一、引言二、基準測試&#xff08;Unixbench &#xff09;三、CPU測試&#xff08;SPEC CPU 2006&#xff09;四、GPU測試&#xff08;Glmark2&#xff09;五、IO測試&#xff08;Iozone &#xff09;六、內存基準測試&#xff08;Stream &#xff09;七、網絡性能基準…

Web前端基礎:HTML-CSS

1.標題 1.1標題排版 超鏈接 a 標簽&#xff1a; 標簽&#xff1a;<a href"....." target".....">央視網</a> 屬性&#xff1a; href: 指定資源訪問的urltarget: 指定在何處打開資源鏈接 _self: 默認值&#xff0c;在當前頁面打開_blank: 在…

Python數學可視化:3D參數曲面與隱式曲面繪制技術

Python數學可視化&#xff1a;3D參數曲面與隱式曲面繪制技術 引言 在科學研究、工程設計和數學教學中&#xff0c;3D可視化技術是理解復雜幾何形狀和空間關系的重要工具。本文將介紹如何使用Python實現參數曲面和隱式曲面的3D可視化&#xff0c;通過數學公式和代碼示例展示球…

傳輸層:udp與tcp協議

目錄 再談端口號 端口號范圍劃分 認識知名端口號(Well-Know Port Number) 兩個問題 netstat pidof 如何學習下三層協議 UDP協議 UDP協議端格式 UDP的特點 面向數據報 UDP的緩沖區 UDP使用注意事項 基于UDP的應用層協議 TCP協議 TCP協議段格式 1.源端口號…

java 實現excel文件轉pdf | 無水印 | 無限制

文章目錄 目錄 文章目錄 前言 1.項目遠程倉庫配置 2.pom文件引入相關依賴 3.代碼破解 二、Excel轉PDF 1.代碼實現 2.Aspose.License.xml 授權文件 總結 前言 java處理excel轉pdf一直沒找到什么好用的免費jar包工具,自己手寫的難度,恐怕高級程序員花費一年的事件,也…

Keil調試模式下,排查程序崩潰簡述

在Keil調試模式下&#xff0c;若程序崩潰&#xff0c;可以通過以下步驟來定位崩潰的位置&#xff1a; 一、查看調用棧&#xff08;Call Stack&#xff09; 打開調用棧窗口&#xff1a; 在Keil的調試模式下&#xff0c;點擊菜單欄的“View” -> “Call Stack Window”&…