
pdf去水印 python

在 Python 中去除 PDF 水印可以通過以下步驟實現,具體方法取決于水印類型(文本或圖片)。以下是兩種常見場景的解決方案:一、文本水印去除(如頁面底部的文字水印)...
在 Python 中去除 PDF 水印可以通過以下步驟實現,具體方法取決于水印類型(文本或圖片)。以下是兩種常見場景的解決方案:
一、文本水印去除(如頁面底部的文字水印)
```python
import fitz PyMuPDF
def remove_text_watermark(pdf_path, output_path):
doc = fitz.open(pdf_path)
for page in doc:
獲取頁面元素
text_list = page.get_text_list()
檢測水印文本(示例:查找"Confidential")
for i, t in enumerate(text_list):
if t[4] == "Confidential": 檢查特定文本
del text_list[i]
將修改后的文本重新寫入頁面
page.set_textlist(text_list)
doc.save(output_path)
使用示例
remove_text_watermark("input.pdf", "output.pdf")
```
二、圖片水印去除(如半透明公司Logo)
```python
from PIL import Image, ImageDraw
import fitz
def remove_image_watermark(pdf_path, output_path, watermark_image="watermark.png"):
doc = fitz.open(pdf_path)
watermark = Image.open(watermark_image)
三、安裝依賴
pip install PyMuPDF Pillowbash
關鍵參數說明:
- 文本水印:
- 需要指定要刪除的文本內容(
t[4]
檢查的是文本的元數據) 支持多語言檢測(需調整文本匹配邏輯)
圖片水印:
- 需提前準備透明度處理的水印圖片(示例中128為透明度值)
- 支持動態調整覆蓋強度(修改
fill=(0,0,0,128)
)
高級用法:
定位復雜水印:
python
通過坐標定位特定區域
for page in doc:
rect = fitz.Rect(100, 700, 500, 800) x1,y1,x2,y2
img = page.get_pixmap(rect=rect)
在該區域執行擦除操作
動態檢測水印:
python
檢測頁面底部10%區域的所有文本
for page in doc:
rect = fitz.Rect(0, page.height0.9, page.width, page.height)
text_list = page.get_text_list(rect=rect)
批量刪除包含"內部"的文本
new_text = [t for t in text_list if "內部" not in t[4]]
page.set_textlist(new_text)
本文鏈接:http://www.wzyaohuidianqi.cn/gong/426866.html
上一篇:哪款軟件去水印好
