PDF ドキュメント内の画像の透過度を設定することは、プロフェッショナルな仕上がりを実現するうえで非常に重要です。これにより、画像の縁を目立たせずに重ね合わせたり、背景や下層のコンテンツと自然に一体化させたりすることができます。この操作は見た目の魅力を高めるだけでなく、特にグラフィック要素の多いドキュメントにおいて、洗練された統一感のある印象を与えます。この記事では、Spire.PDF for Python を使用して、Python プログラム内で PDF 画像の透過度を効果的に設定する方法を紹介します。
この操作には Spire.PDF for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.PDF
Spire.PDF for Python では、PdfPageBase.Canvas.DrawImage() メソッドを使用して指定位置に画像を描画できます。描画前に PdfPageBase.Canvas.SetTransparency() メソッドを呼び出すことで、描画する画像の透明度を設定できます。以下の手順で操作します。
from spire.pdf import *
# PdfDocumentインスタンスを作成
pdf = PdfDocument()
# PDFファイルを読み込み
pdf.LoadFromFile("Sample.pdf")
# 1ページ目を取得
page = pdf.Pages.get_Item(0)
# 画像を読み込み
image = PdfImage.FromFile("Screen.jpg")
# キャンバスの透明度を設定(0~1の範囲で指定)
page.Canvas.SetTransparency(0.2)
# 指定位置に画像を描画
page.Canvas.DrawImage(image, PointF(80.0, 200.0))
# ドキュメントを保存
pdf.SaveToFile("output/AddTranslucentPicture.pdf")
pdf.Close()
上記のコードでは、透明度0.2(20%)で画像がページに追加されます。これにより、背景との自然な重なりを実現できます。
実行結果プレビュー:

すでにPDF内に存在する画像の透明度を変更するには、その画像を取得して削除し、同じ位置に指定した透明度で再描画します。これにより、画像の位置を保ったまま不透明度を調整できます。手順は以下の通りです。
from spire.pdf import *
# PdfDocumentインスタンスを作成
pdf = PdfDocument()
# PDFファイルを読み込み
pdf.LoadFromFile("Sample.pdf")
# 1ページ目を取得
page = pdf.Pages.get_Item(0)
# ページ上の最初の画像とその位置を取得
imageHelper = PdfImageHelper()
imagesInfo = imageHelper.GetImagesInfo(page)
imageStream = imagesInfo[0].Image
bounds = imagesInfo[0].Bounds
# 元の画像を削除
imageHelper.DeleteImage(imagesInfo[0])
# ストリームから新しい画像を生成
image = PdfImage.FromStream(imageStream)
# 透明度を設定
page.Canvas.SetTransparency(0.3)
# 同じ位置に再描画
page.Canvas.DrawImage(image, bounds)
# ドキュメントを保存
pdf.SaveToFile("output/SetExistingImageTransparency.pdf")
pdf.Close()
この方法を使うことで、既存の画像を保持したまま透明度のみを変更できます。
実行結果プレビュー:

生成されたドキュメントから評価メッセージを削除したい場合、または機能制限を解除したい場合は、30日間の試用ライセンス を申請してください。
PDF文書はテキストだけでなく、画像も重要な要素として情報伝達に大きく貢献します。PDF内の画像を追加・置換・削除できれば、ビジュアル面の向上や古い画像の更新、コンテンツ内容の修正などに役立ちます。
本記事では、Spire.PDF for Python を使用して、PythonでPDF文書内の画像を追加、置換、削除する方法を解説します。
目次
この機能を使用するには、Spire.PDF for Pythonとplum-dispatch v1.7.4が必要です。Windows環境では、以下のpipコマンドで簡単にインストールできます。
pip install Spire.PDF
または、Spire.PDF for Pythonのダウンロードページ から直接ダウンロードして、プロジェクトに追加することもできます。
PDFページに画像を追加するには、PdfPage.Canvas.DrawImage() メソッドを使用します。手順は以下の通りです。
コード例
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ファイル:

Spire.PDF for Pythonには、特定ページ内の画像を取得・操作できる PdfImageHelper クラスがあります。画像を新しいものに置き換えるには、PdfImageHelper.ReplaceImage() メソッドを使用します。手順は以下の通りです。
コード例
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ファイル:

特定ページの画像を削除するには、PdfPageBase.DeleteImage(index) メソッドを使用します。手順は以下の通りです。
コード例
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日間の試用ライセンスを申請してください。