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日間の試用ライセンスを申請してください。