【python實用小腳本-193】Python全能PDF小助手:剪切/合并/旋轉/加密一條龍——再也不用開會員

Python全能PDF小助手:剪切/合并/旋轉/加密一條龍——再也不用開會員

PDF編輯, 本地處理, 零會員費, 多功能腳本, 瑞士軍刀

故事開場:一把瑞士軍刀救了周五下班的你

周五 17:55,老板甩來一堆 PDF:

  • “把第 3、7 頁刪掉”
  • “再和合同合并”
  • “全部順時針轉 90°”
  • “最后加個密碼”

你打開 Acrobat,發現要會員,在線工具排隊 20 分鐘。
這時,你從 U 盤掏出“小白瑞士軍刀”——pdf_tools.py
一條命令一條提示,30 分鐘任務全部搞定,老板直呼“效率王”!
痛點解決:再也不用多個軟件來回折騰,本地一站式搞定所有 PDF 操作。


完整代碼(>1000字符,展示核心骨架)

from PyPDF2 import PdfFileReader, PdfFileWriter, PdfFileMerger
from pathlib import Path# 主菜單
print("INFO 查看信息 | OUTPUT 提取文字 | PDF 裁剪頁面 | ADD 合并 | CW/ACW 旋轉 | PWD 加密")
cmd = input("輸入指令: ").upper()pdf_path = Path.home() / "myfile.pdf"
pdf = PdfFileReader(str(pdf_path))if cmd == "INFO":print("標題:", pdf.documentInfo.title, "頁數:", pdf.getNumPages())elif cmd == "OUTPUT":mode = input("FULL 全文 / PAGE 單頁? ").upper()if mode == "FULL":with open('fulltext.txt', 'w') as f:for p in pdf.pages:f.write(p.extractText())elif mode == "PAGE":n = int(input("第幾頁? "))print(pdf.getPage(n).extractText())elif cmd == "PDF":while True:pg = int(input("保留哪一頁? "))writer = PdfFileWriter()writer.addPage(pdf.getPage(pg))with Path("sliced.pdf").open("wb") as out:writer.write(out)if input("繼續加頁? YES/NO ").upper() != "YES":breakelif cmd == "ADD":f1, f2 = input("兩個文件名(空格分隔): ").split()merger = PdfFileMerger()for f in [f1, f2]:merger.append(str(Path.home() / f))with Path("concatenated.pdf").open("wb") as out:merger.write(out)elif cmd == "CW":writer = PdfFileWriter()for p in pdf.pages:writer.addPage(p.rotateClockwise(90))with Path("rotated.pdf").open("wb") as out:writer.write(out)elif cmd == "PWD":pwd = input("輸入密碼: ")writer = PdfFileWriter()writer.appendPagesFromReader(pdf)writer.encrypt(user_pwd=pwd)with Path("protected.pdf").open("wb") as out:writer.write(out)

代碼解析

功能塊 1:信息速覽

一句話打印標題、頁數,先讓你心里有底。

print("標題:", pdf.documentInfo.title, "頁數:", pdf.getNumPages())

功能塊 2:文本提取

全文或單頁一鍵導出 .txt,方便二次編輯。

with open('fulltext.txt', 'w') as f:for p in pdf.pages:f.write(p.extractText())

功能塊 3:頁面裁剪/合并/旋轉/加密

  • 裁剪:按頁碼生成 sliced.pdf
  • 合并:多文件一鍵拼接
  • 旋轉:順時針/逆時針 90°
  • 加密:AES 密碼保護
writer.addPage(p.rotateClockwise(90))
writer.encrypt(user_pwd=pwd)

如果還想更厲害

擴展點子 1:批量文件夾

docs/ 里所有 PDF 合并成一本電子書。

import glob
merger = PdfFileMerger()
for pdf in glob.glob("docs/*.pdf"):merger.append(pdf)
merger.write("all_in_one.pdf")

擴展點子 2:GUI 拖放

tkinter 做窗口,拖文件即執行操作。

import tkinter.filedialog as fd
file = fd.askopenfilename()
# 復用相應邏輯

總結

pdf_tools.py 這把 150 行瑞士軍刀,把“開 N 個軟件→上傳→下載”五步壓縮成“一條命令”。
你無需會員、無需聯網,就能在本地完成 PDF 裁剪、合并、旋轉、加密全套操作。
再加兩行批量或 GUI,它就從腳本升級成 PDF 工廠。
下次再遇“PDF 小手術”,直接跑腳本,30 秒收工!


源碼獲取

完整代碼已開源,包含詳細的注釋文檔:
🔗 [GitCode倉庫] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [備用下載] https://pan.quark.cn/s/654cf649e5a6 提取碼:f5VG

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94160.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94160.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94160.shtml

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

相關文章

Ubuntu根分區擴容

目錄 1.先查看/dev/sda 整塊磁盤設備的分區占用情況: 2.在VMware中編輯虛擬機: 3.進入虛擬機,進入disk應用程序: 4.擴容文件系統 5.最后通過df-h lsblk或通過可視化GParted進行驗證。 1.先查看/dev/sda 整塊磁盤設備的分區占…

智慧城市SaaS平臺/市政設施運行監測系統之空氣質量監測系統、VOC氣體監測系統、污水水質監測系統及環衛車輛定位調度系統架構內容

1. 空氣質量監測系統1) 監測點管理 a) 監測點基本信息 支持記錄空氣質量監測點的名稱、位置、類型、設備配置等信息。 b) 監測點分布地圖 支持通過GIS地圖展示監測點的分布情況,支持地圖查詢和導航。 2) 空氣質量監測 a) 實時數據采集 支持實時采集空氣質量數據&…

PiscCode迅速集成YOLO-Pose 實現姿態關鍵點軌跡跟蹤應用

在計算機視覺領域,人體姿態檢測與軌跡跟蹤是很多應用場景的核心技術,例如運動分析、行為識別、智能監控等。本文將介紹如何在 PiscCode 平臺上,利用 YOLO-Pose 模型進行姿態估計,并實現多人關鍵點軌跡跟蹤。 一、什么是 PiscCode …

HTTP的狀態碼有哪些,并用例子說明一下

問題HTTP的狀態碼有哪些,并用例子說明一下我的回答HTTP狀態碼是服務器對客戶端請求的響應碼,它們按照不同的功能被分為五大類。我來介紹一下主要的狀態碼及其實際應用場景:1xx(信息性狀態碼):表示請求已接收…

【51單片機】【protues仿真】基于51單片機寵物投食器系統

目錄 一、主要功能 二、使用步驟 三、硬件資源 四、軟件設計 五、實驗現象 一、主要功能 1、LCD1602液晶顯示當前時間 2、按鍵設置時間,5個定時投喂時間? 3、可以通過手動按鍵進行投喂食物 4、步進電機模擬投喂食物 二、使用步驟 基于51單片機的寵物自動投…

掌握設計模式--命令模式

命令模式(Command Pattern) 命令模式(Command Pattern)是一種行為型設計模式,它將請求(命令)封裝成對象,從而使您能夠參數化客戶端(調用者)使用不同的請求、…

STM32之beep、多文件、延遲、按鍵以及呼吸燈

一、Beep控制 原理圖分析: 蜂鳴器三極管控制引腳對應 MCU PB8。當前蜂鳴器對應的電路中,三極管是 NPN 三極管,當前【基極】存在小電流,當前三極管導通。要求對應 PB8 引腳對外輸出電壓 / 電流。當前 PB8 輸出高電平,當…

C++的struct里面可以放函數,討論一下C++和C關于struct的使用區別

我們來看一個C代碼下面的struct結構體: struct UserValue {float lx;float ly;float rx;float ry;float L2;// 【構造函數】UserValue() {setZero();}// 【成員函數】void setZero() {lx 0;ly 0;rx 0;ry 0;L2 0;} };在這篇文章中,我們將來詳細解釋一下為什么 U…

【Kubernetes知識點】資源配額與訪問控制

目錄 1.解釋ResourceQuota的作用。 2.解釋Service Account的用途。 3.詳細解釋Role和ClusterRole。 4.什么是K8s的NetworkPolicy? 5.詳細描述在K8s中如何控制跨Namespace的Pod訪問? 1.解釋ResourceQuota的作用。 ResourceQuota(資源配額…

在SAP Query中添加雙擊事件

在SAP系統中,SAP Query是一個強大的工具,允許用戶自定義報告以滿足特定的數據查詢需求。它提供了靈活的報表設計功能,使非編程背景的用戶也能創建和修改查詢。在某些情況下,我們可能希望在查詢結果上添加交互性,比如通…

c++:MFC中sqlite3的使用(附實際案例)

MFC中sqlite3的使用sqlite3介紹sqlite3安裝常用API函數操作流程接口函數執行sql語句函數回調函數MFC中案例實踐控制臺實踐sqlite3介紹 SQLite 是一個軟件庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。SQLite 是在世界上最廣泛部署的 SQL …

LeetCode第1019題 - 鏈表中的下一個更大節點

題目 解答 class Solution {Stack<Integer> stack new Stack<>();List<Integer> values new LinkedList<>();public int[] nextLargerNodes(ListNode head) {nextLargerNodes2(head);return values.stream().mapToInt(x -> x).toArray();}publi…

STM32 硬件I2C讀寫MPU6050

本文代碼基于 STM32 單片機&#xff0c;通過 I2C 總線驅動 MPU6050 六軸傳感器&#xff08;集成加速度計與陀螺儀&#xff09;&#xff0c;實現傳感器初始化、ID 讀取、原始數據采集&#xff0c;并借助 OLED 顯示屏實時展示加速度&#xff08;AccX、AccY、AccZ&#xff09;與角…

倍福下的EC-A10020-P2-24電機調試說明

今天調試EC-A10020-P2-24電機&#xff0c;采用力位混合控制指令進行控制&#xff0c;無前饋力矩&#xff0c;只調節Kp和Kd,跟蹤紅色軌跡&#xff08;正弦信號&#xff1a;幅值10&#xff0c;頻率0.5Hz&#xff09;&#xff0c;結果顯示Kp 180, Kd 40&#xff0c;實際上Kp進一步…

SQL注入1----(sql注入原理)

一.前言前面我們講解了一下信息收集&#xff0c;本章節我們來講解一下sql注入的基本原理&#xff0c;我們拿之前搭建的測試網站pikachu來測試&#xff0c;對應工具包也已經放在了工具里面&#xff0c;大家可以自行去下載。SQL注入攻擊漏洞的原因&#xff0c;是由于程序員在編寫…

C++智能指針詳解:用法與實踐指南

C智能指針詳解&#xff1a;用法與實踐指南 在C編程中&#xff0c;動態內存管理始終是開發者面臨的重要挑戰。手動分配和釋放內存不僅繁瑣&#xff0c;還容易因疏忽導致內存泄漏、懸垂指針等問題。為解決這些痛點&#xff0c;C標準庫引入了智能指針&#xff08;Smart Pointers&a…

fastdds qos:DurabilityQosPolicy

假如DataWriter先起來&#xff0c;并且已經寫了一些數據&#xff0c;之后有新的DataReader起來&#xff0c;那么新起來的DataReader能不能接收到它啟動之前&#xff0c;DataWriter發布的數據呢。DurabilityQosPolicy用來做這種控制。VOLATILE_DURABILITY_QOS&#xff1a;易失的…

【讀代碼】SQLBot:開源自然語言轉SQL智能助手原理與實踐

一、項目簡介 SQLBot 是 DataEase 團隊開源的自然語言轉 SQL 智能助手,致力于讓非技術用戶也能通過自然語言與數據庫對話,自動生成 SQL 查詢,實現自助數據分析、智能BI問答、報表生成等場景。SQLBot 結合了大語言模型(LLM)、數據庫元數據解析、SQL解析與執行等多項技術,…

開題報告被退回?用《基于大數據的慢性腎病數據可視化分析系統》的Hadoop技術,一次通過不是夢

&#x1f496;&#x1f496;作者&#xff1a;計算機編程小咖 &#x1f499;&#x1f499;個人簡介&#xff1a;曾長期從事計算機專業培訓教學&#xff0c;本人也熱愛上課教學&#xff0c;語言擅長Java、微信小程序、Python、Golang、安卓Android等&#xff0c;開發項目包括大數…

HEVC(H.265)與HVC1的關系及區別

HEVC&#xff08;H.265&#xff09;與HVC1的關系及區別可歸納如下&#xff1a;一、技術定義差異?HEVC&#xff08;H.265&#xff09;?國際標準化組織制定的通用視頻編碼標準&#xff0c;由ITU-T和ISO/IEC聯合開發?1支持8K分辨率&#xff0c;壓縮效率較H.264提升約50%?1?HV…