PDF ドキュメント内の画像の透過度を設定することは、プロフェッショナルな仕上がりを実現するうえで非常に重要です。これにより、画像の縁を目立たせずに重ね合わせたり、背景や下層のコンテンツと自然に一体化させたりすることができます。この操作は見た目の魅力を高めるだけでなく、特にグラフィック要素の多いドキュメントにおいて、洗練された統一感のある印象を与えます。この記事では、Spire.PDF for Python を使用して、Python プログラム内で PDF 画像の透過度を効果的に設定する方法を紹介します。
Spire.PDF for Python のインストール
この操作には Spire.PDF for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.PDF
PDF に透明度を指定して画像を追加する
Spire.PDF for Python では、PdfPageBase.Canvas.DrawImage() メソッドを使用して指定位置に画像を描画できます。描画前に PdfPageBase.Canvas.SetTransparency() メソッドを呼び出すことで、描画する画像の透明度を設定できます。以下の手順で操作します。
- PdfDocument クラスのオブジェクトを作成し、LoadFromFile() メソッドでPDFを読み込みます。
- Pages.get_Item() メソッドで対象ページを取得します。
- PdfImage.FromFile() メソッドで画像を読み込みます。
- Canvas.SetTransparency() メソッドで透明度を設定します。
- Canvas.DrawImage() メソッドで画像を描画します。
- SaveToFile() メソッドでPDFを保存します。
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内に存在する画像の透明度を変更するには、その画像を取得して削除し、同じ位置に指定した透明度で再描画します。これにより、画像の位置を保ったまま不透明度を調整できます。手順は以下の通りです。
- PdfDocument クラスのオブジェクトを作成し、LoadFromFile() メソッドでPDFを読み込みます。
- Pages.get_Item() メソッドで対象ページを取得します。
- ImagesInfo[] 配列から画像のストリームと座標情報(Bounds)を取得します。
- DeleteImage() メソッドで元の画像を削除します。
- PdfImage.FromStream() メソッドで新しい画像インスタンスを作成します。
- Canvas.SetTransparency() メソッドで透明度を設定します。
- Canvas.DrawImage() メソッドで同じ位置に再描画します。
- SaveToFile() メソッドで保存します。
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日間の試用ライセンス を申請してください。






