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を挿入するプログラムが作成できます。
スポンサーリンク
最後までご覧いただき、ありがとうございます。