PDFドキュメントは、クロスプラットフォームの互換性とコンテンツの高精度性から、情報交換の標準的な媒体となっています。著作権侵害、コンテンツ改ざん、無断での配信などのリスクに対処するため、PDFに画像ウォーターマークを挿入することは、文書のセキュリティを強化し、所有権を明示し、アクセス制御を実施するための効果的な手段です。画像ウォーターマークは、文書の出所を視覚的に示すだけでなく、独自のデザインによって違法なコピーと拡散から保護することもできます。Pythonを使用することで、PDFドキュメントに効率的に画像ウォーターマークを一括挿入することができます。この記事では、Pythonを使用してPDFドキュメントに画像ウォーターマークを追加する方法について詳しく説明します。PDFドキュメントの保護とスマート化のレベルを向上させるのに役立ちます。
この記事で使用する方法には、Spire.PDF for Pythonが必要です。公式ウェブサイトからダウンロードするか、PyPIを介してインストールすることができます:pip install Spire.PDF
。
Pythonを使用してPDFドキュメントに単一の画像ウォーターマークを挿入する方法
単一の画像ウォーターマークは、PDFページの中央に透明な画像です。ライブラリのAPIを使用して、指定した画像をウォーターマークとして任意のPDFページに描画することができます。具体的な手順は以下の通りです:
- 必要なモジュールをインポートします。
- PdfDocument クラスのオブジェクトを作成します。
- PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
- PdfImage.FromFile() メソッドを使用してウォーターマーク画像を読み込みます。
- ドキュメント内のページをループしてウォーターマークを追加します。
- PdfDocument.Pages.get_Item() メソッドを使用してページを取得します。
- PdfPageBase.Canvas.SetTransparency() メソッドを使用してウォーターマークの透明度を設定します。
- PdfPageBase.Canvas.DrawImage() メソッドを使用してページの中央にウォーターマーク画像を描画します。
- PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
- リソースを解放します。
コード例
from spire.pdf import *
from spire.pdf.common import *
# PdfDocumentクラスのオブジェクトを作成します
pdf = PdfDocument()
# PDFドキュメントをロードします
pdf.LoadFromFile("サンプル.pdf")
# 透かし画像をロードします
image = PdfImage.FromFile("Marker.png")
# 画像の幅と高さを取得します
imageWidth = float(image.Width)
imageHeight = float(image.Height)
# ドキュメント内のページをループします
for i in range(pdf.Pages.Count):
# ページを取得します
page = pdf.Pages.get_Item(i)
# 透かしの透明度を設定します
page.Canvas.SetTransparency(0.3)
# ページの幅と高さを取得します
pageWidth = page.ActualSize.Width
pageHeight = page.ActualSize.Height
# ページに透かし画像を描画します
page.Canvas.DrawImage(image, pageWidth/2 - imageWidth/2, pageHeight/2 - imageHeight/2, imageWidth, imageHeight)
# ドキュメントを保存します
pdf.SaveToFile("output/単一の画像ウォーターマーク.pdf")
pdf.Close()
Pythonを使用してPDFドキュメントに繰り返しの画像ウォーターマークを挿入する方法
繰り返しの画像ウォーターマークは、PDFページ上で定期的に繰り返される画像です。繰り返しの画像ウォーターマークは、ライブラリ内の PdfTillingBrush クラスを使用してPDFページ上に描画する必要があります。以下に詳細な手順を示します:
- 必要なモジュールをインポートします。
- PdfDocument クラスのオブジェクトを作成します。
- PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
- PdfImage.FromFile() メソッドを使用してウォーターマーク画像を読み込みます。
- ドキュメント内のページをループしてウォーターマークを追加します。
- PdfDocument.Pages.get_Item() メソッドを使用してページを取得します。
- PdfTillingBrush クラスのオブジェクトを作成し、そのサイズを設定してウォーターマークの繰り返し回数を決定します。
- PdfTillingBrush.Graphics.SetTransparency() メソッドを使用してウォーターマークの透明度を設定します。
- PdfTillingBrush.Graphics.TranslateTransform() メソッドを使用して座標系を指定位置に移動し、ウォーターマークを各繰り返しの中央に表示します。
- PdfTillingBrush.Graphics.DrawImage() メソッドを使用して、タイリングブラシ上にウォーターマーク画像を描画します。
- PdfPageBase.Canvas.DrawRectangle() メソッドを使用してページ上にウォーターマークを描画します。
- PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
- リソースを解放します。
コード例
from spire.pdf.common import *
from spire.pdf import *
# PdfDocumentクラスのオブジェクトを作成します
pdf = PdfDocument()
# PDFドキュメントをロードします
pdf.LoadFromFile("サンプル.pdf")
# 透かし画像をロードします
image = PdfImage.FromFile("Marker.png")
# ドキュメント内のページをループします
for i in range(pdf.Pages.Count):
# ページを取得します
page = pdf.Pages.get_Item(i)
# PdfTilingBrushクラスのオブジェクトを作成し、サイズを設定します
brush = PdfTilingBrush(SizeF(page.Canvas.Size.Width / float(3), page.Canvas.Size.Height / float(3)))
# 透かしの透明度を設定します
brush.Graphics.SetTransparency(0.3)
brush.Graphics.Save()
# 座標を指定位置に変換します
brush.Graphics.TranslateTransform(brush.Size.Width/2 - image.Width/2, brush.Size.Height/2 - image.Height/2)
# 透かし画像をブラシ上に描画します
brush.Graphics.DrawImage(image, 0.0, 0.0, float(image.Width), float(image.Height))
brush.Graphics.Restore()
# ページ上に透かしを描画します
page.Canvas.DrawRectangle(brush, RectangleF(PointF(0.0, 0.0), page.Canvas.Size))
# PDFドキュメントを保存します
pdf.SaveToFile("output/繰り返しの画像ウォーターマーク.pdf", FileFormat.PDF)
pdf.Close()
この記事では、Pythonを使用してPDFドキュメントのページに単一の画像ウォーターマークと繰り返しの画像ウォーターマークを追加する方法について説明しました。
さらなるPDFドキュメントの操作テクニックについては、Spire.PDF for Pythonチュートリアルを参照してください。
このライブラリの使用に関する問題がある場合は、Spire.PDFフォーラムで技術サポートを求めることができます。