国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用PyMuPDF添加PDF水印

這篇具有很好參考價值的文章主要介紹了使用PyMuPDF添加PDF水印。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用Python添加PDF水印的博客文章。
C:\pythoncode\new\pdfwatermark.py
使用PyMuPDF添加PDF水印,python,wxpython,pymupdf,watermark
使用PyMuPDF添加PDF水印,python,wxpython,pymupdf,watermark

使用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文件。

全部代碼

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)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python自動化小技巧23——PDF文件拆分為單獨頁面(PyMuPDF)

    其實編輯PDF用Adobe就行,它功能超級齊全,可是這玩意要收費...去弄免費破解版,找資源又得半天,所以用python來拆分PDF文件吧,可以批量化處理。 至于為什么不用WPS.....別問,問就是不想開會員。 腳本代碼 先安裝PyMuPDF庫, 代碼:? 把輸入路徑和輸出路徑都改一下就行了,整

    2024年02月07日
    瀏覽(25)
  • PyMuPDF`庫實現(xiàn)PDF旋轉功能

    PyMuPDF`庫實現(xiàn)PDF旋轉功能

    本文介紹了一個簡單的Python應用程序,用于將PDF文件轉換為旋轉90度的PDF文件。主要用于csdn網(wǎng)站中導出的博客pdf是橫向的,看起來不是很方便,才想到用python編制一個將pdf從橫向轉為縱向的功能。 該PDF轉換工具具有以下功能: 選擇PDF文件:通過點擊“選擇文件”按鈕,用戶

    2024年02月12日
    瀏覽(14)
  • 工具分享 | PDF文檔解析工具PyMuPDF

    工具分享 | PDF文檔解析工具PyMuPDF

    1 需求描述 最近工作需要 從PDF文檔中按照章節(jié)解析出對應的文本和圖片(后續(xù)可能還會有表格) ,經(jīng)過調(diào)研,找到了一個功能強大的解析工具MuPDF,對應的Python包是 PyMuPDF 。本篇博客記錄使用它來實現(xiàn)具體功能。 官方文檔:https://pymupdf.readthedocs.io/en/latest/index.html 2 利用書簽中標

    2024年02月11日
    瀏覽(45)
  • Aspose.Pdf使用教程:在PDF文件中添加水印

    Aspose.PDF ?是一款高級PDF處理API,可以在跨平臺應用程序中輕松生成,修改,轉換,呈現(xiàn),保護和打印文檔。無需使用Adobe Acrobat。此外,API提供壓縮選項,表創(chuàng)建和處理,圖形和圖像功能,廣泛的超鏈接功能,圖章和水印任務,擴展的安全控件和自定義字體處理。本文將為你

    2024年02月01日
    瀏覽(21)
  • 使用itext7為pdf文檔添加水印

    iText7是一款功能強大的開源PDF處理庫,用于創(chuàng)建、編輯和處理PDF文檔。相比于iTextSharp,iText7具有更先進的功能和更好的性能。 添加水印是iText7的一個常見應用場景。水印可以用于保護文檔的版權,標識文檔的狀態(tài)或來源等。使用iText7添加水印可以通過以下步驟實現(xiàn): 導入

    2024年04月22日
    瀏覽(26)
  • Python中的PDF文本提?。菏褂胒itz和wxPython庫(帶進度條)

    Python中的PDF文本提?。菏褂胒itz和wxPython庫(帶進度條)

    引言: 處理大量PDF文檔的文本提取任務可能是一項繁瑣的工作。本文將介紹一個使用Python編寫的工具,可通過簡單的操作一鍵提取大量PDF文檔中的文本內(nèi)容,極大地提高工作效率。 在這個示例中,我們創(chuàng)建了一個 wx.ProgressDialog 對象,用于顯示提取進度。在提取每一頁的文本

    2024年02月14日
    瀏覽(26)
  • AttributeError: ‘Document‘ object has no attribute ‘pageCount‘ PyMuPDF庫

    AttributeError: ‘Document‘ object has no attribute ‘pageCount‘ PyMuPDF庫

    這可能是由于PyMuPDF庫更新導致的,里面的一些函數(shù)名發(fā)生了變化 ? 將??pageCount改為?page_count 將preRotate改為prerotate 將getPixmap改為get_pixmap 將writePNG改為_writeIMG ? 或者直接安裝老版本的這個庫,也能解決一切問題 ? ? ?

    2024年02月10日
    瀏覽(49)
  • Vue使用pdf-lib為文件流添加水印并預覽

    Vue使用pdf-lib為文件流添加水印并預覽

    之前也寫過兩篇預覽pdf的,但是沒有加水印,這是鏈接:Vue使用vue-pdf實現(xiàn)PDF文件預覽,使用pdfobject預覽pdf。這次項目中又要預覽pdf了,要求還要加水印,做的時候又發(fā)現(xiàn)了一種預覽pdf的方式,這種方式我覺的更好一些,并且還有個要求就是添加水印,當然水印后端也是可以加

    2024年02月02日
    瀏覽(26)
  • 前端使用vue-pdf、pdf-lib、canvas 給PDF文件添加水印,并預覽與下載

    前端使用vue-pdf、pdf-lib、canvas 給PDF文件添加水印,并預覽與下載

    原理就是給顯示pdf 的容器增加一層水印遮罩層 下載: 通過url獲取pdf文件的arrarybuffer文件流 將arraybuffer數(shù)據(jù)轉成pdf文檔 添加水印字體(內(nèi)置/自定義) 為每頁pdf添加文字水印 保存pdf文件的unit64Arrary文件流 預覽: 創(chuàng)建canvas容器(用于顯示水印文字) 創(chuàng)建水印canvas 將水印canv

    2024年01月24日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包