PDF文書はテキストだけでなく、画像も重要な要素として情報伝達に大きく貢献します。PDF内の画像を追加・置換・削除できれば、ビジュアル面の向上や古い画像の更新、コンテンツ内容の修正などに役立ちます。
本記事では、Spire.PDF for Python を使用して、PythonでPDF文書内の画像を追加、置換、削除する方法を解説します。
目次
- Spire.PDF for Pythonのインストール
- PythonでPDF文書に画像を追加する
- PythonでPDF文書内の画像を置換する
- PythonでPDF文書内の画像を削除する
- 一時ライセンスの申請
Spire.PDF for Pythonのインストール
この機能を使用するには、Spire.PDF for Pythonとplum-dispatch v1.7.4が必要です。Windows環境では、以下のpipコマンドで簡単にインストールできます。
pip install Spire.PDF
または、Spire.PDF for Pythonのダウンロードページ から直接ダウンロードして、プロジェクトに追加することもできます。
PythonでPDF文書に画像を追加する
PDFページに画像を追加するには、PdfPage.Canvas.DrawImage() メソッドを使用します。手順は以下の通りです。
- PdfDocument オブジェクトを作成する
- PdfDocument.Pages.Add() メソッドでページを追加する
- PdfImage.FromFile() メソッドで画像を読み込む
- PdfPageBase.Canvas.DrawImage() メソッドでページ上に画像を描画する
- PdfDocument.SaveToFile() メソッドで文書を保存する
コード例
from spire.pdf import *
# PdfDocumentインスタンスを作成
doc = PdfDocument()
# ページ余白を設定
doc.PageSettings.SetMargins(30.0, 30.0, 30.0, 30.0)
# ページを追加
page = doc.Pages.Add()
# 画像を読み込み
image = PdfImage.FromFile('C:/Users/Administrator/Desktop/logo.png')
# 文書内の画像サイズを指定
width = image.Width * 0.70
height = image.Height * 0.70
# 画像を描画する座標を指定
x = 10.0
y = 30.0
# ページ上に画像を描画
page.Canvas.DrawImage(image, x, y, width, height)
# PDFを保存
doc.SaveToFile("output/AddImage.pdf", FileFormat.PDF)
出力結果のPDFファイル:
PythonでPDF文書内の画像を置換する
Spire.PDF for Pythonには、特定ページ内の画像を取得・操作できる PdfImageHelper クラスがあります。画像を新しいものに置き換えるには、PdfImageHelper.ReplaceImage() メソッドを使用します。手順は以下の通りです。
- PdfDocument オブジェクトを作成
- PdfDocument.LoadFromFile() メソッドでPDFを読み込む
- PdfDocument.Pages[index] で特定のページを取得
- PdfImage.FromFile() で新しい画像を読み込む
- PdfImageHelper を作成し、PdfImageHelper.GetImagesInfo() でページ内の画像情報を取得
- PdfImageHelper.ReplaceImage() で既存の画像を新しい画像に置換
- PdfDocument.SaveToFile() で保存
コード例
from spire.pdf import *
# PdfDocumentインスタンスを作成
doc = PdfDocument()
# PDFを読み込み
doc.LoadFromFile('C:/Users/Administrator/Desktop/input.pdf')
# 1ページ目を取得
page = doc.Pages[0]
# 新しい画像を読み込み
image = PdfImage.FromFile('C:/Users/Administrator/Desktop/newImage.png')
# PdfImageHelperインスタンスを作成
imageHelper = PdfImageHelper()
# ページ内の画像情報を取得
imageInfo = imageHelper.GetImagesInfo(page)
# 最初の画像を新しい画像に置換
imageHelper.ReplaceImage(imageInfo[0], image)
# PDFを保存
doc.SaveToFile("output/ReplaceImage.pdf", FileFormat.PDF)
出力結果のPDFファイル:
PythonでPDF文書内の画像を削除する
特定ページの画像を削除するには、PdfPageBase.DeleteImage(index) メソッドを使用します。手順は以下の通りです。
- PdfDocument オブジェクトを作成
- PdfDocument.LoadFromFile() メソッドでPDFを読み込む
- PdfDocument.Pages[index] でページを取得
- PdfPageBase.DeleteImage(index) メソッドで指定したインデックスの画像を削除
- PdfDocument.SaveToFile() で保存
コード例
from spire.pdf.common import *
from spire.pdf import *
# PdfDocumentインスタンスを作成
doc = PdfDocument()
# PDFを読み込み
doc.LoadFromFile('C:/Users/Administrator/Desktop/input.pdf')
# 1ページ目を取得
page = doc.Pages[0]
# 最初の画像を削除
page.DeleteImage(0)
# PDFを保存
doc.SaveToFile('output/DeleteImage.pdf', FileFormat.PDF)
一時ライセンスの申請
生成されたPDFから評価用メッセージを削除したい場合や、機能制限を解除したい場合は、30日間の試用ライセンスを申請してください。