LoginSignup
0
1

PythonでPDF文書に画像の透かし(ウォーターマーク)を挿入する方法

Posted at

PDFドキュメントは、クロスプラットフォームの互換性とコンテンツの高精度性から、情報交換の標準的な媒体となっています。著作権侵害、コンテンツ改ざん、無断での配信などのリスクに対処するため、PDFに画像ウォーターマークを挿入することは、文書のセキュリティを強化し、所有権を明示し、アクセス制御を実施するための効果的な手段です。画像ウォーターマークは、文書の出所を視覚的に示すだけでなく、独自のデザインによって違法なコピーと拡散から保護することもできます。Pythonを使用することで、PDFドキュメントに効率的に画像ウォーターマークを一括挿入することができます。この記事では、Pythonを使用してPDFドキュメントに画像ウォーターマークを追加する方法について詳しく説明します。PDFドキュメントの保護とスマート化のレベルを向上させるのに役立ちます。

この記事で使用する方法には、Spire.PDF for Pythonが必要です。公式ウェブサイトからダウンロードするか、PyPIを介してインストールすることができます:pip install Spire.PDF

無料ライセンスの申請

Pythonを使用してPDFドキュメントに単一の画像ウォーターマークを挿入する方法

単一の画像ウォーターマークは、PDFページの中央に透明な画像です。ライブラリのAPIを使用して、指定した画像をウォーターマークとして任意のPDFページに描画することができます。具体的な手順は以下の通りです:

  1. 必要なモジュールをインポートします。
  2. PdfDocument クラスのオブジェクトを作成します。
  3. PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
  4. PdfImage.FromFile() メソッドを使用してウォーターマーク画像を読み込みます。
  5. ドキュメント内のページをループしてウォーターマークを追加します。
    • PdfDocument.Pages.get_Item() メソッドを使用してページを取得します。
    • PdfPageBase.Canvas.SetTransparency() メソッドを使用してウォーターマークの透明度を設定します。
    • PdfPageBase.Canvas.DrawImage() メソッドを使用してページの中央にウォーターマーク画像を描画します。
  6. PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
  7. リソースを解放します。

コード例

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ドキュメントに単一の画像ウォーターマークを挿入する方法

Pythonを使用してPDFドキュメントに繰り返しの画像ウォーターマークを挿入する方法

繰り返しの画像ウォーターマークは、PDFページ上で定期的に繰り返される画像です。繰り返しの画像ウォーターマークは、ライブラリ内の PdfTillingBrush クラスを使用してPDFページ上に描画する必要があります。以下に詳細な手順を示します:

  1. 必要なモジュールをインポートします。
  2. PdfDocument クラスのオブジェクトを作成します。
  3. PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
  4. PdfImage.FromFile() メソッドを使用してウォーターマーク画像を読み込みます。
  5. ドキュメント内のページをループしてウォーターマークを追加します。
    • PdfDocument.Pages.get_Item() メソッドを使用してページを取得します。
    • PdfTillingBrush クラスのオブジェクトを作成し、そのサイズを設定してウォーターマークの繰り返し回数を決定します。
    • PdfTillingBrush.Graphics.SetTransparency() メソッドを使用してウォーターマークの透明度を設定します。
    • PdfTillingBrush.Graphics.TranslateTransform() メソッドを使用して座標系を指定位置に移動し、ウォーターマークを各繰り返しの中央に表示します。
    • PdfTillingBrush.Graphics.DrawImage() メソッドを使用して、タイリングブラシ上にウォーターマーク画像を描画します。
    • PdfPageBase.Canvas.DrawRectangle() メソッドを使用してページ上にウォーターマークを描画します。
  6. PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
  7. リソースを解放します。

コード例

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ドキュメントに繰り返しの画像ウォーターマークを挿入する方法

この記事では、Pythonを使用してPDFドキュメントのページに単一の画像ウォーターマークと繰り返しの画像ウォーターマークを追加する方法について説明しました。

さらなるPDFドキュメントの操作テクニックについては、Spire.PDF for Pythonチュートリアルを参照してください。

このライブラリの使用に関する問題がある場合は、Spire.PDFフォーラムで技術サポートを求めることができます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1