一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

快速學(xué)會(huì)使用Python給PDF文件添加圖章!

 Python集中營(yíng) 2023-11-22 發(fā)布于甘肅

說(shuō)明:本文部分內(nèi)容參考w3cschool

在日常工作中,我們經(jīng)常需要給PDF文檔添加一些標(biāo)識(shí),比如公司的圖章或水印圖章。

使用Python可以很方便地實(shí)現(xiàn)這個(gè)功能。添加圖章或水印是操作 PDF 文件的兩種常用方法。圖章是在文檔頂部添加內(nèi)容,水印是在文檔的背景中。

在這兩種情況下,您可能都希望確保原始內(nèi)容的媒體框/裁剪框保持不變。

本文將介紹如何使用PyPDF2、pathlib和typing模塊來(lái)給PDF文檔添加圖章或水印圖章。

PyPDF2是一個(gè)用于處理PDF文件的Python庫(kù),它可以讀取、寫(xiě)入和操作PDF文件。

pathlib是Python 3中用于處理文件和目錄路徑的模塊,它提供了一種簡(jiǎn)單而直觀的方式來(lái)操作文件系統(tǒng)。

typing模塊是Python 3.5中引入的一個(gè)模塊,它提供了一種用于類型注釋的方式,可以增強(qiáng)代碼的可讀性和可維護(hù)性。

首先,我們需要安裝PyPDF2庫(kù)。可以使用pip命令來(lái)安裝:

pip install PyPDF2

接下來(lái),我們需要?jiǎng)?chuàng)建一個(gè)Python腳本,并導(dǎo)入所需的模塊:

import PyPDF2
from pathlib import Path
from typing import Tuple

然后,我們定義一個(gè)函數(shù)stamp()來(lái)添加覆蓋原有文字的圖章。

from pathlib import Path
from typing import Union, Literal, List

from PyPDF2 import PdfWriter, PdfReader


def stamp(
    content_pdf: Path,
    stamp_pdf: Path,
    pdf_result: Path,
    page_indices: Union[Literal["ALL"], List[int]] = "ALL",
)
:

    reader = PdfReader(stamp_pdf)
    image_page = reader.pages[0]

    writer = PdfWriter()

    reader = PdfReader(content_pdf)
    if page_indices == "ALL":
        page_indices = list(range(0, len(reader.pages)))
    for index in page_indices:
        content_page = reader.pages[index]
        mediabox = content_page.mediabox
        content_page.merge_page(image_page)
        content_page.mediabox = mediabox
        writer.add_page(content_page)

    with open(pdf_result, "wb"as fp:
        writer.write(fp)

下面是將圖章覆蓋模式添加到文字上面的效果圖,具體可以根據(jù)自身的需求進(jìn)行調(diào)整。

現(xiàn)在,我們可以調(diào)用watermark()這個(gè)函數(shù)來(lái)給PDF文檔添加水印圖章。

下面是一個(gè)示例:

from pathlib import Path
from typing import Union, Literal, List

from PyPDF2 import PdfWriter, PdfReader


def watermark(
    content_pdf: Path,
    stamp_pdf: Path,
    pdf_result: Path,
    page_indices: Union[Literal["ALL"], List[int]] = "ALL",
)
:

    reader = PdfReader(content_pdf)
    if page_indices == "ALL":
        page_indices = list(range(0, len(reader.pages)))

    writer = PdfWriter()
    for index in page_indices:
        content_page = reader.pages[index]
        mediabox = content_page.mediabox

        # You need to load it again, as the last time it was overwritten
        reader_stamp = PdfReader(stamp_pdf)
        image_page = reader_stamp.pages[0]

        image_page.merge_page(content_page)
        image_page.mediabox = mediabox
        writer.add_page(image_page)

    with open(pdf_result, "wb"as fp:
        writer.write(fp)

處理過(guò)程相差不大,最后通過(guò)PdfWriter將結(jié)果寫(xiě)入到文檔中,下面是水印圖章的效果圖:

總結(jié)一下,本文介紹了如何使用Python給PDF文檔添加圖章或水印圖章。

我們使用了PyPDF2、pathlib和typing模塊來(lái)實(shí)現(xiàn)這個(gè)功能。

通過(guò)這種方法,你可以方便地給PDF文檔添加標(biāo)識(shí),提高文檔的可讀性和可信度。

希望本文對(duì)你有所幫助!

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲午夜精品视频观看| 成年人黄片大全在线观看| 一区中文字幕人妻少妇| 日本女优一区二区三区免费| 人妻熟女中文字幕在线| 日韩色婷婷综合在线观看| 国产成人精品国产亚洲欧洲| 国产人妻熟女高跟丝袜| 在线免费视频你懂的观看| 国产精品欧美一区二区三区不卡 | 国产一级特黄在线观看| 国产精品伦一区二区三区在线| 蜜桃传媒视频麻豆第一区| 四季精品人妻av一区二区三区| 激情综合网俺也狠狠地| 日本加勒比在线观看一区| 久久天堂夜夜一本婷婷| 久久偷拍视频免费观看| 成人国产激情福利久久| 高清国产日韩欧美熟女| 亚洲国产精品久久综合网| 亚洲欧美天堂精品在线| 国产精品白丝久久av| 又黄又爽禁片视频在线观看| 亚洲国产香蕉视频在线观看| 午夜精品麻豆视频91| 亚洲乱码av中文一区二区三区| 欧美精品一区二区水蜜桃| 开心五月激情综合婷婷色| 91精品国自产拍老熟女露脸| 久久福利视频在线观看 | 欧美日韩中国性生活视频| 亚洲国产成人一区二区在线观看| 欧美成人精品一区二区久久| 欧美日本道一区二区三区| 国产日韩欧美专区一区| 国产内射一级二级三级| 亚洲一区二区三区国产| 日韩一区二区三区在线欧洲| 五月天丁香婷婷一区二区| 不卡免费成人日韩精品|