チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

Displaying items by tag: pdf python images

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() メソッドを呼び出すことで、描画する画像の透明度を設定できます。以下の手順で操作します。

  1. PdfDocument クラスのオブジェクトを作成し、LoadFromFile() メソッドでPDFを読み込みます。
  2. Pages.get_Item() メソッドで対象ページを取得します。
  3. PdfImage.FromFile() メソッドで画像を読み込みます。
  4. Canvas.SetTransparency() メソッドで透明度を設定します。
  5. Canvas.DrawImage() メソッドで画像を描画します。
  6. 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%)で画像がページに追加されます。これにより、背景との自然な重なりを実現できます。

実行結果プレビュー

PythonでPDFに透明度を指定して画像を追加する

既存画像の透明度を調整する

すでにPDF内に存在する画像の透明度を変更するには、その画像を取得して削除し、同じ位置に指定した透明度で再描画します。これにより、画像の位置を保ったまま不透明度を調整できます。手順は以下の通りです。

  1. PdfDocument クラスのオブジェクトを作成し、LoadFromFile() メソッドでPDFを読み込みます。
  2. Pages.get_Item() メソッドで対象ページを取得します。
  3. ImagesInfo[] 配列から画像のストリームと座標情報(Bounds)を取得します。
  4. DeleteImage() メソッドで元の画像を削除します。
  5. PdfImage.FromStream() メソッドで新しい画像インスタンスを作成します。
  6. Canvas.SetTransparency() メソッドで透明度を設定します。
  7. Canvas.DrawImage() メソッドで同じ位置に再描画します。
  8. 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()

この方法を使うことで、既存の画像を保持したまま透明度のみを変更できます。

実行結果プレビュー

PythonでPDFに既存画像の透明度を調整する

一時ライセンスの申請

生成されたドキュメントから評価メッセージを削除したい場合、または機能制限を解除したい場合は、30日間の試用ライセンス を申請してください。

Published in 画像
Tagged under

PDF文書はテキストだけでなく、画像も重要な要素として情報伝達に大きく貢献します。PDF内の画像を追加・置換・削除できれば、ビジュアル面の向上や古い画像の更新、コンテンツ内容の修正などに役立ちます。
本記事では、Spire.PDF for Python を使用して、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に画像を追加

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の画像を置換

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

Published in 画像
Tagged under