PDF文書に透かしを追加する必要が生じた際、Pythonを活用してこの処理を簡単に実行する方法を紹介します。以下のスクリプトでは、指定されたテキストを透かしとしてPDFに追加します。
from reportlab.pdfgen import canvas
import PyPDF2
def create_watermark(input_pdf, watermark_text):
with open(input_pdf, "rb") as input_file:
reader = PyPDF2.PdfReader(input_file)
first_page = reader.pages[0]
page_size = first_page.mediabox
c = canvas.Canvas("watermark.pdf", pagesize=(page_size[2], page_size[3]))
c.setFont("Helvetica", 10)
c.setFillColorRGB(1., 0., 0., alpha=0.3)
c.saveState()
c.translate(page_size[2] / 2, page_size[3] / 2)
c.drawCentredString(300, 180, watermark_text)
c.restoreState()
c.save()
def add_watermark(input_pdf, output_pdf, watermark_pdf):
original = open(input_pdf, "rb")
reader = PyPDF2.PdfReader(original)
watermark = open(watermark_pdf, "rb")
watermark_reader = PyPDF2.PdfReader(watermark)
writer = PyPDF2.PdfWriter()
for page in reader.pages:
page.merge_page(watermark_reader.pages[0])
writer.add_page(page)
with open(output_pdf, "wb") as output_file:
writer.write(output_file)
original.close()
watermark.close()
create_waterark("input.pdf", "CONFIDENTIAL")
add_watermark("input.pdf", "output_with_watermark.pdf", "watermark.pdf")
必要なインストール
このスクリプトを実行するためには、PyPDF2
とreportlab
ライブラリが必要です。以下のコマンドでインストールできます。
pip install PyPDF2 reportlab
関数の解説
create_watermark
この関数は、入力されたPDFファイルからページサイズを取得し、そのサイズに合わせて透かしを含む新しいPDFを作成します。
-
input_pdf
: 入力PDFファイルのパス -
watermark_text
: 透かしに使用するテキスト
add_watermark
この関数は、作成した透かしPDFを元のPDFファイルの全ページに適用します。
-
input_pdf
: 元のPDFファイルのパス -
output_pdf
: 透かしを適用したPDFを保存するパス -
watermark_pdf
: 透かしPDFファイルのパス
まとめ
このスクリプトを使用することで、簡単にPDF文書に透かしを追加することができます。透かしは文書のセキュリティ強化や機密情報の管理に役立つ重要なツールです。