ページ番号は、多くの種類のファイルで重要な情報であり、読者がドキュメント内をナビゲートする際に便利です。PDFドキュメントを作成する際に、ページ番号を追加することは、コンテンツの整理や参照に特に役立ちます。本記事では、Pythonプログラムを使用して効率的にPDFドキュメントにページ番号を挿入し、美しい構造のPDFドキュメントを作成する方法について説明します。
この方法には、Spire.PDF for Pythonを使用します。公式ウェブサイトからダウンロードするか、PyPIを通じてインストールすることができます:pip install Spire.PDF
。
Pythonを使用してPDFドキュメントのフッターにページ番号を挿入する
Spire.PDF for Pythonの PdfPageBase.Canvas.DrawString() メソッドを使用すると、PDFドキュメントの任意の場所にカスタムのページ番号を描画することができます。以下にPDFドキュメントのフッターにページ番号を挿入する手順を示します:
- PdfDocument クラスのオブジェクトを作成します。
- PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントをロードします。
- PdfDocument.PageSettings.Margins プロパティを使用して、ドキュメントの余白を取得します(ページ番号の位置の計算に使用されます)。
- ドキュメント内の各ページをループしてページ番号を描画します。
- PdfDocument.Pages.get_Item() メソッドを使用して1ページを取得します。
- PdfTrueTypeFont クラスと PdfStringFormat クラスのオブジェクトを作成し、ページ番号のテキストの書式と配置方法を設定します。
- 位置を計算し、ページ番号のスタイルを設定します。
- PdfPageBase.Canvas.DrawString() メソッドを使用してページにページ番号を描画します。
- PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
コードの例:
from spire.pdf.common import *
from spire.pdf import *
# PdfDocumentクラスのオブジェクトを作成する
doc = PdfDocument()
# PDFドキュメントをロードする
doc.LoadFromFile("サンプル.pdf")
# ドキュメントのページ余白を取得する
margin = doc.PageSettings.Margins
# ドキュメント内のページを反復処理する
startNumber = 1
for i in range(doc.Pages.Count):
# ページを取得する
page = doc.Pages.get_Item(i)
# ページ番号のためのフォントと文字列フォーマットを作成する
font = PdfTrueTypeFont("HarmonyOS Sans SC", 12.0, PdfFontStyle.Regular, True)
format = PdfStringFormat(PdfTextAlignment.Center)
# ブラシを作成する
brush = PdfBrushes.get_DarkGray()
# ページ番号を描画する位置を計算し、ページの下部中央に配置する
space = font.Height
x = margin.Left
width = page.Canvas.ClientSize.Width - margin.Left - margin.Right
y = page.Canvas.ClientSize.Height - margin.Bottom - space
# ページ番号のスタイルを設定する
numberLabel = "ページ {0:d} / {1:d}".format(startNumber, doc.Pages.Count)
startNumber += 1
# ページにページ番号を描画する
page.Canvas.DrawString(numberLabel, font, brush, x + width / 2, y, format)
# 変更されたドキュメントを保存する
doc.SaveToFile("output/PDFページ番号.pdf")
doc.Close()
上記の内容では、Spire.PDF for Pythonを使用してPDFドキュメントにページ番号を挿入する方法について説明しました。このAPIは、他にも多くのPDF操作をサポートしていますので、Spire.PDF for Pythonチュートリアルで詳細を確認してください。
技術サポート:Spire.PDFフォーラム