single.php

PythonでPDFの画像にURLを挿入する手順(pdfrw+reportlab)

Pythonで利用可能な「pdfrw」と「reportlab」を使って保存されている既存のPDFファイルに挿入した画像にハイパーリンクを追加する手順を備忘録的に投稿しておきます。

挿入した画像にハイパーリンクを挿入する手順

VSCodeを使って、PythonでPDFファイルに画像を挿入するには次の手順で行います。

1. VSCodeを起動し[ターミナル]画面から次のコマンドを入力してpdfrwをインストールします。

pip install pdfrw

2. 続けて[ターミナル]画面から次のコマンドを入力してreportlabをインストールします。

pip install reportlab

3. プロジェクト用のフォルダーを内に[images]、[output]と[pdfs]の3つのフォルダーを作成して、[images]内にPDFに挿入する画像を保存します。

4. [pdfs]フォルダーに、画像を挿入するPDFファイルを保存します。

今回はMicrosoft Wordのテンプレートで作成した見積書をPDF形式で保存したファイルを利用しました。

5.[insertpdf.py]ファイルを作成して次のコードを追加します。

from pdfrw import PdfReader
from pdfrw.buildxobj import pagexobj
from pdfrw.toreportlab import makerl
from reportlab.pdfgen import canvas
from PIL import Image

cvs = canvas.Canvas('C:\Datas\Python\imginpdf\output\sample.pdf')
pdf = PdfReader('C:\Datas\Python\imginpdf\pdfs\見積書.pdf', decompress=False).pages
page = pagexobj(pdf[0])
cvs.doForm(makerl(cvs, page))
img = Image.open('C:\Datas\Python\imginpdf\images\stamp2.png')
cvs.linkURL(url='https://blog.janjan.net/', rect=(450, 580, 450+70, 580+70), thickness=0, relative=1)
cvs.drawInlineImage(img, 450, 580, 70, 70)
cvs.showPage()
cvs.save()

4. VSCodeの[ターミナル]画面で次のコマンドを実行します。

python insertpdf.py

5.[output]フォルダーに[sample.pdf]が追加されます。

6.[sample.pdf]ファイルに追加された画像にマウスを重ねるとURLに移動するハイパーリンクが挿入されています。

まとめ

Pythonで利用できるPDF関係の外部モジュール[pdfrw]と[reportlab]を利用することPythonで作成したプログラムに簡単にPDFファイルに挿入した画像にハイパーリンクを追加する機能を追加することができます。

見積書などの書式で作成されたPDFファイルに、手軽にホームページなどに誘導するためのURLを挿入するプログラムが作成できます。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です