Pythonで既存のPDFにしおりを作成する方法を紹介します。
PyPDF2のインストール
当記事では、PyPDF2というライブラリを使った方法を紹介していきます。
PyPDF2
A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files
PyPDF2は、PythonからPDFを編集するためのメソッドを提供してくれるライブラリです。PyPDF2を使うと、PDFの結合や分割はもちろん、テキストを抽出したり、ファイルを暗号化したりなど、さまざまな編集を行うことができます。
お使いの環境に「PyPDF2」がインストールされていない方は、pipでインストールしておきましょう。
pip install PyPDF2
サンプルコード
さっそくサンプルコードを紹介します。
既存のPDFファイル(test.pdf)に以下のしおりを追加するサンプルです。
- Page1:親
- Page1:子(ページ1)
- Page2:子(ページ2)
from PyPDF2 import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
input = PdfFileReader(open('test.pdf', 'rb'))
# オリジナルのPDFをPdfFileWriterにコピーする
output.cloneDocumentFromReader(input)
# しおりを追加する
parent=output.addBookmark('親', 0, parent=None)
output.addBookmark('子(ページ1)', 0, parent=parent)
output.addBookmark('子(ページ2)', 1, parent=parent)
# PDFを出力する
with open('out.pdf','wb') as o:
output.write(o)
実行すると、test.pdfにしおりが追加されたPDFファイル(out.pdf)が作成されます。
解説
addBookmarkメソットを実行することで、しおりを作成することができます。
addBookmark(title, pagenum, parent=None, color=None, bold=False, italic=False, fit=’/Fit’, *args)
Add a bookmark to this PDF file.Parameters
- title (str) – Title to use for this bookmark.
- pagenum (int) – Page number this bookmark will point to.
- parent – A reference to a parent bookmark to create nested bookmarks.
- color (tuple) – Color of the bookmark as a red, green, blue tuple from 0.0 to 1.0
- bold (bool) – Bookmark is bold
- italic (bool) – Bookmark is italic
- fit (str) – The fit of the destination page. See
addLink()
for details.
404 Not Found
| Read the Docs
第1引数にしおりのタイトルを指定します。ここで指定したタイトルがしおりに表示されます。
第2引数には、ジャンプ先のページを指定します。インデックスで指定しますので、1ページ目は0となります。
このほか、第3引数にParentを指定することにより、階層構造を持ったしおりを作成することができます。しおりの文字色や書体なども指定できます。
コメント