LoginSignup
0
1

PythonでPDF文書にヘッダーとフッターを挿入する方法

Last updated at Posted at 2024-04-11

PDFへのヘッダーとフッターの追加は、PDFドキュメントの視覚的な魅力、ブランディング、整理を向上させるための重要な機能となっています。
ヘッダーとフッターを組み込むことにより、ユーザーはドキュメントのタイトル、ページ番号、ロゴ、日付、著作権表示、機密性の免責事項など、重要な文脈情報をカスタマイズすることができます。これにより、プロフェッショナルな外観が確立されるだけでなく、ドキュメントのナビゲーションが改善され、法的要件の遵守が保証されます。
本記事では、Pythonを使用してPDFファイルにヘッダーとフッターをシームレスに追加するプロセスについて詳しく説明します。

この記事で使用する方法は、Spire.PDF for Pythonを必要とします。これはPyPI経由でインストールできます: pip install Spire.PDF

無料ライセンスの申請

Pythonで既存のPDF文書にヘッダーを追加する

ヘッダーは、各ページの上部に表示されるセクションを指します。ヘッダーには通常、ロゴ、ドキュメントのタイトル、日付、またはドキュメントに関連する他の詳細情報が含まれます。これらの情報は、ドキュメントに文脈やブランディングを提供します。
テキスト、画像、ライン、セクション番号から構成されるヘッダーを PDF ドキュメントに追加するには、以下の手順に従うことができます:

  1. PdfDocument オブジェクトを作成します。
  2. 指定されたパスから既存の PDF ドキュメントを読み込みます。
  3. ヘッダーのコンテンツを定義します:
    • ヘッダーに追加するテキストを指定します。
    • ヘッダー用の画像を読み込みます。
  4. ヘッダーを各ページに追加します:PDF ドキュメントの各ページを反復処理し、指定された位置にヘッダーのコンテンツを Canvas.DrawString()Canvas.DrawImage()、および Canvas.DrawLine() メソッドを使用して追加します。これらのメソッドを呼び出す際には、ページのサイズと余白を考慮して位置を決定する必要があります。
  5. 変更された PDF を新しいファイルに保存するか、既存のファイルを上書きします。

コード例

from spire.pdf.common import *
from spire.pdf import *

# PdfDocumentオブジェクトを作成します
pdf = PdfDocument()

# PDFファイルを読み込みます
pdf.LoadFromFile("サンプル.pdf")

# 画像を読み込みます
headerImage = PdfImage.FromFile("ヘッダー.png")

# 画像の幅をピクセル単位で取得します
width = headerImage.Width

# 画像の幅をポイント単位で取得します
unitCvtr = PdfUnitConvertor()
pointWidth = unitCvtr.ConvertUnits(width, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point) 

# フォント、ブラシ、ペンを作成します
firstFont = PdfTrueTypeFont("HarmonyOS Sans SC", 18.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_DarkBlue()
pen = PdfPen(PdfBrushes.get_Black(), 1.5)

# ヘッダに追加するテキストを指定します
headerText = "富士山"

# PdfSectionNumberFieldオブジェクトを作成します
sectionField = PdfSectionNumberField(firstFont, brush)

# ドキュメント内のページをイテレートします
for i in range(pdf.Pages.Count):

    # 特定のページを取得します
    page = pdf.Pages[i]  

    # 指定した位置に画像を描画します
    page.Canvas.DrawImage(headerImage, page.ActualSize.Width - pointWidth - 72.0, 5.0)

    # 指定した位置に文字列を描画します
    page.Canvas.DrawString(headerText, firstFont, brush, 72.0, 25.0)

    # 指定した位置に線を描画します
    page.Canvas.DrawLine(pen, 72.0, 50.0, page.ActualSize.Width - 72.0, 50.0)

# 変更内容を別のPDFファイルに保存します
pdf.SaveToFile("Output/PDFヘッダー.pdf")

# リソースを解放します
pdf.Dispose()

結果
Pythonで既存のPDF文書にヘッダーを追加する

Pythonで既存のPDF文書にフッターを追加する

フッターは、各ページの下部に表示されるセクションを指します。フッターには、ページ番号、著作権情報、著者名、日付、または読者に追加の文脈やナビゲーション支援を提供する他の関連情報が含まれる場合があります。
PDF ドキュメントに「Page X of Y」という行とページ番号を含むフッターを追加するには、以下の手順に従ってください。

  1. PdfDocument オブジェクトを作成します。
  2. 指定されたパスから既存の PDF ドキュメントを読み込みます。
  3. フッターのコンテンツを定義します:
    現在のページ番号を取得するために PdfPageNumberField オブジェクトを作成します。
    総ページ数を取得するために PdfPageCountField オブジェクトを作成します。「X / Y」の形式を作成するために、これらの2つの自動フィールドとテキストを組み合わせるために PdfCompositeField オブジェクトを利用することができます。
  4. フッターを各ページに追加します:PDF ドキュメントの各ページを反復処理し、Canvas.DrawLine() メソッドを使用してラインを追加します。PdfCompositeField.Draw() メソッドを使用して、ページ番号と総ページ数をフッター領域に追加します。これらのメソッドを呼び出す際には、ページのサイズと余白を考慮して位置を決定する必要があります。
  5. 変更された PDF を新しいファイルに保存するか、既存のファイルを上書きします。

コード例

from spire.pdf.common import *
from spire.pdf import *

# PdfDocumentオブジェクトを作成します
pdf = PdfDocument()

# PDFファイルを読み込みます
pdf.LoadFromFile("サンプル.pdf")

# フォント、ブラシ、ペンを作成します
font = PdfTrueTypeFont("HarmonyOS Sans SC", 12.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_Black()
pen = PdfPen(brush, 1.5)

# PdfPageNumberFieldオブジェクトとPdfPageCountFieldオブジェクトを作成します
pageNumberField = PdfPageNumberField()
pageCountField = PdfPageCountField()

# ページ数フィールドとページ番号フィールドを1つの文字列に結合するPdfCompositeFieldオブジェクトを作成します
compositeField = PdfCompositeField(font, brush, "{0} / {1}", [pageNumberField, pageCountField])

# ページサイズを取得します
pageSize = pdf.Pages[0].Size

# コンポジットフィールドの位置を設定します
compositeField.Location = PointF(72.0, pageSize.Height - 45.0)

# ドキュメント内のページを反復処理します
for i in range(pdf.Pages.Count):

    # 特定のページを取得します
    page = pdf.Pages[i]

    # 指定された位置に線を描画します
    page.Canvas.DrawLine(pen, 72.0, pageSize.Height - 50.0, pageSize.Width - 72.0, pageSize.Height - 50.0)

    # ページにコンポジットフィールドを描画します
    compositeField.Draw(page.Canvas, 0.0, 0.0)

# 別のPDFファイルに保存します
pdf.SaveToFile("Output/PDFフッター.pdf")

# リソースを解放します
pdf.Dispose()

結果
Pythonで既存のPDF文書にフッターを追加する

この記事では、Pythonを使ってPDF文書にヘッダーとフッターを挿入する方法を紹介しました。
より多くのPDF処理スキルについては、Spire.PDF for Pythonのチュートリアルをご覧ください。
このAPIを使用して何か問題が発生した場合は、Spire.PDFフォーラムで技術サポートを受けてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1