使用Python添加PDF水印的博客文章。
C:\pythoncode\new\pdfwatermark.py
使用Python在PDF中添加水印
在日常工作中,我們經(jīng)常需要對PDF文件進行處理。其中一項常見的需求是向PDF文件添加水印,以保護文件的版權或標識文件的來源。本文將介紹如何使用Python編程語言和PyMuPDF庫在PDF文件中添加水印。
準備工作
在開始之前,確保已經(jīng)安裝了以下組件:
- Python編程環(huán)境
- PyMuPDF庫
可以使用pip命令安裝PyMuPDF庫:
pip install PyMuPDF
編寫代碼
首先,我們需要導入所需的庫:
import fitz
接下來,我們創(chuàng)建一個函數(shù)來添加水印到PDF文件的每一頁:
def add_watermark_to_pdf(pdf_path, watermark_text, output_path):
try:
doc = fitz.open(pdf_path)
watermark_text = str(watermark_text)
for page in doc:
textbox = fitz.Rect(100, 100, 300, 200) # 設置水印的位置和大小
page.insert_textbox(textbox, watermark_text, fontsize=20, rotate=90)
doc.save(output_path)
doc.close()
print("水印添加成功!")
except Exception as e:
print("添加水印時出錯:", str(e))
在上述代碼中,我們打開PDF文件,遍歷每一頁,然后使用insert_textbox()
方法將水印添加到每一頁中。
使用示例
接下來,我們可以使用上述函數(shù)來添加水印。
pdf_path = "input.pdf"
watermark_text = "我的水印"
output_path = "output.pdf"
add_watermark_to_pdf(pdf_path, watermark_text, output_path)
在上述示例中,我們指定了輸入PDF文件的路徑、要添加的水印文本和輸出文件的路徑。運行代碼后,將會在輸出路徑生成帶有水印的PDF文件。文章來源:http://www.zghlxwxcb.cn/news/detail-672114.html
全部代碼
import wx
import fitz
class WatermarkFrame(wx.Frame):
def __init__(self, parent, title):
super(WatermarkFrame, self).__init__(parent, title=title, size=(400, 200))
panel = wx.Panel(self)
# 創(chuàng)建選擇文件按鈕
self.file_picker = wx.FilePickerCtrl(panel, style=wx.FLP_OPEN)
# 創(chuàng)建水印文本輸入框
self.watermark_text = wx.TextCtrl(panel, style=wx.TE_PROCESS_ENTER)
# 創(chuàng)建保存文件夾按鈕
self.save_folder_picker = wx.DirPickerCtrl(panel, style=wx.DIRP_USE_TEXTCTRL)
# 創(chuàng)建生成按鈕
generate_button = wx.Button(panel, label='生成')
generate_button.Bind(wx.EVT_BUTTON, self.on_generate_button_click)
# 創(chuàng)建布局
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.file_picker, proportion=0, flag=wx.ALL|wx.EXPAND, border=10)
sizer.Add(self.watermark_text, proportion=0, flag=wx.ALL|wx.EXPAND, border=10)
sizer.Add(self.save_folder_picker, proportion=0, flag=wx.ALL|wx.EXPAND, border=10)
sizer.Add(generate_button, proportion=0, flag=wx.ALL|wx.CENTER, border=10)
panel.SetSizer(sizer)
def on_generate_button_click(self, event):
file_path = self.file_picker.GetPath()
watermark_text = self.watermark_text.GetValue()
save_folder = self.save_folder_picker.GetPath()
if file_path and watermark_text and save_folder:
try:
doc = fitz.open(file_path)
# watermark_text = watermark_text.encode('utf-8')
watermark_text = str(watermark_text)
for page in doc:
textbox = fitz.Rect(100, 100, 300, 200) # 水印的位置和大小
# page.insert_textbox(textbox, watermark_text, fontsize=20, rotate=45)
page.insert_textbox(textbox, watermark_text, fontsize=20, rotate=90)
# output_file_path = f"{save_folder}/watermarked_{file_path.split('/')[-1]}"
output_file_path = f"outputwatermark.pdf"
doc.save(output_file_path)
doc.close()
wx.MessageBox("水印添加成功!", "成功", wx.OK | wx.ICON_INFORMATION)
except Exception as e:
wx.MessageBox(str(e), "錯誤", wx.OK | wx.ICON_ERROR)
else:
wx.MessageBox("請選擇文件、輸入水印文本和保存文件夾!", "錯誤", wx.OK | wx.ICON_ERROR)
if __name__ == '__main__':
app = wx.App()
frame = WatermarkFrame(None, "添加水印")
frame.Show()
app.MainLoop()
總結
通過使用Python和PyMuPDF庫,我們可以輕松地向PDF文件添加水印??梢愿鶕?jù)需求定制水印的位置、大小和旋轉角度。這種方法不僅簡單高效,還可以自動化處理大量的PDF文件。文章來源地址http://www.zghlxwxcb.cn/news/detail-672114.html
到了這里,關于使用PyMuPDF添加PDF水印的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!