PythonでPDFにしおりを作成するには?

Python

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(titlepagenumparent=Nonecolor=Nonebold=Falseitalic=Falsefit=’/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を指定することにより、階層構造を持ったしおりを作成することができます。しおりの文字色や書体なども指定できます。

コメント

タイトルとURLをコピーしました