製品比較

PDFsharpでPDFに透かしを追加するための最高の代替手段を探る

リーガン・パン
リーガン・パン
2025年3月27日
共有:

透かしの追加は、文書のセキュリティ、ブランディング、バージョン管理のための一般的な要件です。 文書を機密としてマークしたり、公式レポートにブランドを付けたり、不正な複製を防ぐために、ウォーターマークは不可欠な機能です。

C# では、開発者は複数のライブラリを選択することができ、IronPDFPDFSharp が最も人気のある選択肢の2つです。 しかし、それらのアプローチ、使いやすさ、パフォーマンス、およびライセンス構造は大きく異なります。 この記事は、既存のPDFに透かしを追加するためのIronPDFとPDFsharpの詳細な比較を提供し、それらの機能、実装プロセス、カスタマイズ機能についての洞察を提供します。

この記事の終わりまでに、使いやすさ、パフォーマンス、機能の利用可能性に基づいて、どのライブラリがプロジェクトのニーズに最も適しているかについて明確に理解できるようになります。

PDFウォーターマークの理解

ウォーターマークとは何ですか?

ウォーターマークは、文書に対するグラフィカルまたはテキストのオーバーレイで、識別子、抑止力、またはブランディング要素として機能します。 ウォーターマークは、その目的によっては目に見えるものと見えないものがあります。

ウォーターマークの種類

  • テキスト透かし – 一般的には、「CONFIDENTIAL」や「DRAFT」のようなメッセージを含む半透明のオーバーレイです。
  • 画像のウォーターマーク – ドキュメントに埋め込まれたロゴ、紋章、またはグラフィック。
  • 透かし – ドキュメントの可読性を妨げない微妙なブランディングマーク。
  • スタンプされた透かし - より目立つ太字のマークで、視認性が確保されます。

一般的な使用事例

  • セキュリティと保護 – 文書を専有物としてマークすることで、無断複製を防ぎます。
  • ブランディング – ドキュメント全体でブランドの一貫性を維持するために、企業のロゴや署名を追加します。
  • バージョン管理 – 下書き、最終版、または文書の改訂版にラベルを付ける。

IronPDFとPDFsharpの概要

IronPDF

壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。

IronPDFは、PDFの処理を合理化するために設計されたプレミアムで豊富な機能を備えた.NETライブラリです。 これは、ウォーターマークを含むPDF操作タスクの簡単な実装を求める開発者にとって特に便利です。

主な機能:

  • シンプルで直感的なAPIは、最小限のコードを必要とします。
  • カスタマイズオプション付きでテキストおよび画像の透かしをサポートしています。
  • 不透明度の制御、位置調整、回転を提供し、正確な配置を可能にします。
  • .NET 6+、.NET Core、および .NET Framework と互換性があります。
  • 長期使用のための永久ライセンスモデルで利用可能です。
  • 追加機能には、PDF注釈HTMLからPDFへの変換、およびデジタル署名が含まれます。

PDFsharp

壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。

PDFsharpは、開発者がC#でPDFを作成、編集、および操作することを可能にするオープンソースライブラリです。 透かしを入れることは非常に柔軟ですが、IronPDFと比較すると手作業が多くなります。

主な機能:

  • フリーでオープンソースであり、予算を意識するプロジェクトには費用対効果が高いです。
  • アウトライングラフィカルパスと透明グラフィカルパスの両方を含む、PDF描画操作に対する低レベルの制御を提供します。
  • テキストと画像の両方の透かしをサポートしますが、変換には追加のコードが必要です。
  • .NET Frameworkおよび.NET Core(PDFSharpCore経由)と互換性があります。
  • 高度な透かし機能が組み込まれておらず、開発者は不透明度や回転のような機能を手動で実装する必要があります。

IronPDFでウォーターマークを追加する

IronPDFは、開発者が簡単に透かしを適用できる簡単なAPIを提供し、複雑または手動での設定なしに、PDFの透かし作業を効率的に合理化できるようにします。 IronPDFの透かしツールは、以下に示すように透かしに対してHTML/CSS文字列を使用できるため、透かしの表示方法を完全に制御できます。

テキスト透かしの例

using IronPdf;
const string filename = "existing.pdf";
PdfDocument pdf = PdfDocument.FromFile(filename);
string watermark = "<h1 style='color:red'>Confidential!</h1>";
pdf.ApplyWatermark(watermark);
pdf.SaveAs("watermarked.pdf");
using IronPdf;
const string filename = "existing.pdf";
PdfDocument pdf = PdfDocument.FromFile(filename);
string watermark = "<h1 style='color:red'>Confidential!</h1>";
pdf.ApplyWatermark(watermark);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Private Const filename As String = "existing.pdf"
Private pdf As PdfDocument = PdfDocument.FromFile(filename)
Private watermark As String = "<h1 style='color:red'>Confidential!</h1>"
pdf.ApplyWatermark(watermark)
pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

PDFsharpでPDFに透かしを追加するためのベストな代替案を探る: 図3 - テキスト透かしの出力

このコード例では、IronPDFを使用して既存のPDFファイルにウォーターマークをどれほど簡単に適用できるかをご覧いただけます。 ここでは、FromFile メソッドを使用して既存のPDFをロードしました。 次に、シンプルな文字列フォーマットのウォーターマークを作成し、ApplyWatermark を使用してPDFに適用します。 出力画像に見られるように、これはPDFに透かしとして「Confidential」というシンプルなテキスト文字列を追加しました。

画像ウォーターマークの例

using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");
string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);
pdf.SaveAs("watermarked.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");
string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("existing.pdf")
Private watermark As String = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>"
pdf.ApplyWatermark(watermark, rotation:= 45, opacity:= 80)
pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

PDFsharp で PDF に透かしを追加するための最良の代替手段を探る:図 4

画像を透かしとして追加することは、テキストを追加するのと同じくらい簡単です。両方とも同じ方法を使用します。 テキストの例と同様に、新しいウォーターマーク文字列変数を作成し、ウォーターマークとして使用したいコンテンツ(この場合は画像)を含め、これを従来どおり適用します。 今回は、カスタマイズした回転変換と不透明度を追加しました。

このアプローチは、指定された位置に画像の透かしを重ねることで、カスタムの配置と透明度を可能にします。

PDFsharpを使用して透かしを追加する

PDFsharpは、開発者がそのGDI+描画APIを使用して手動でテキストや画像をレンダリングする必要があります。 既存のPDFファイルに透かしを入れるには、描画のためのXGraphicsオブジェクトを作成し、必要なコンテンツを適用します。

テキスト透かしの例

using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
const string filename = "existing.pdf";
var document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify);
foreach (var page in document.Pages)
{
    var gfx = XGraphics.FromPdfPage(page); // get an XGraphics object
    gfx.TranslateTransform(page.Width / 2, page.Height / 2);
    gfx.RotateTransform(Math.Atan(page.Height / page.Width)); // Rotate for diagonal watermark
    var font = new XFont("Arial", 40);
    var brush = new XSolidBrush(XColor.FromArgb(128, XColors.Red));
    gfx.DrawString("WATERMARK", font, brush, new XPoint(0, 0)); // Drawing beneath the existing content
}
document.Save("watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
const string filename = "existing.pdf";
var document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify);
foreach (var page in document.Pages)
{
    var gfx = XGraphics.FromPdfPage(page); // get an XGraphics object
    gfx.TranslateTransform(page.Width / 2, page.Height / 2);
    gfx.RotateTransform(Math.Atan(page.Height / page.Width)); // Rotate for diagonal watermark
    var font = new XFont("Arial", 40);
    var brush = new XSolidBrush(XColor.FromArgb(128, XColors.Red));
    gfx.DrawString("WATERMARK", font, brush, new XPoint(0, 0)); // Drawing beneath the existing content
}
document.Save("watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf.IO
Private Const filename As String = "existing.pdf"
Private document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify)
For Each page In document.Pages
	Dim gfx = XGraphics.FromPdfPage(page) ' get an XGraphics object
	gfx.TranslateTransform(page.Width \ 2, page.Height \ 2)
	gfx.RotateTransform(Math.Atan(page.Height \ page.Width)) ' Rotate for diagonal watermark
	Dim font = New XFont("Arial", 40)
	Dim brush = New XSolidBrush(XColor.FromArgb(128, XColors.Red))
	gfx.DrawString("WATERMARK", font, brush, New XPoint(0, 0)) ' Drawing beneath the existing content
Next page
document.Save("watermarked.pdf")
$vbLabelText   $csharpLabel

壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。

この実装では、すべてのページに透かしを手動で描画し、正確な位置合わせとカスタマイズが必要です。 IronPDFの例と似た出力でタスクを処理することができる一方で、PDFsharpはより多くのコードを必要とし、既存のコンテンツや新しいPDFファイルにテキストの透かしを適用するためのより複雑な方法を持っています。

画像ウォーターマークの例

using PdfSharp.Pdf;
using PdfSharp.Drawing;
var document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify);
XImage watermark = XImage.FromFile("watermark.png");
foreach (var page in document.Pages)
{
    XGraphics gfx = XGraphics.FromPdfPage(page);
    gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2);
}
document.Save("watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
var document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify);
XImage watermark = XImage.FromFile("watermark.png");
foreach (var page in document.Pages)
{
    XGraphics gfx = XGraphics.FromPdfPage(page);
    gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2);
}
document.Save("watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Private document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify)
Private watermark As XImage = XImage.FromFile("watermark.png")
For Each page In document.Pages
	Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
	gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2)
Next page
document.Save("watermarked.pdf")
$vbLabelText   $csharpLabel

PDFsharpでPDFに透かしを追加するための最良の代替案を探る:図6

このメソッドは画像の透かしを配置しますが、IronPDFとは異なり、不透明度は別に処理する必要があります。 テキストウォーターマークの例と同様に、PDFsharpを使用して既存のPDFに画像ベースのウォーターマークを適用するには、IronPDFの洗練されたウォーターマーキングAPIと比較して、より詳細で複雑なセットアップが必要です。

ウォーターマーキングのためのIronPDFとPDFsharpの比較

使いやすさ

  • IronPDF: 高度な機能を提供し、最小限のコードで透かしを簡単にします。 それは複雑な操作を抽象化し、迅速で効率的な解決策を必要とする開発者に理想的です。
  • PDFSharp: グラフィックス API を使用して手動で実装する必要があり、複雑さと開発時間が増加します。レンダリングを詳細に制御する必要があるが、追加のコーディングに慣れている開発者に適しています。

パフォーマンス

  • IronPDF: 大容量のドキュメントを効率的に処理し、パフォーマンスの著しい低下を起こさずに高速でPDFを処理するよう最適化されています。
  • PDFSharp: 軽量である一方で、大きなPDFを処理するために追加の最適化が必要な場合があります。 複雑な透かし画像のタスクで複数の変換を行うと、IronPDF と比較してパフォーマンスが低下する可能性があります。

カスタマイズオプション

  • IronPDF: 不透明度、回転、位置、フォントサイズのカスタマイズのための内蔵サポート。 ユーザーは、複雑なレンダリングロジックに深入りすることなく、簡単に設定を調整できます。
  • PDFSharp: 透過性、透明効果、変換処理には追加のコーディングが必要です。 強力ではありますが、特定のレンダリングタスクにvar形式を使用するなど、開発者による高度なカスタマイズを要求します。

互換性

  • IronPDF: .NET 6+、.NET Core、および.NET Frameworkと完全互換性があり、最新および旧式のアプリケーションに適しています。
  • PDFSharp: .NET Framework と .NET Core(PDFSharpCore 経由)をサポートしていますが、新しいフレームワークで利用可能な特定の最新機能が欠けている場合があります。

ライセンスとコスト

  • IronPDF: 有料ライセンスが必要な商用製品で、永久ライセンスオプション、顧客サポート、継続的なアップデートが含まれています。
  • PDFSharp: オープンソースで無料で利用できるため、ライセンスモデルに制限のないものを好み、サポートや更新を自分で行う意思のある開発者にとってコスト効果の高いソリューションです。

結論

PDFsharpでPDFに透かしを追加するための最良の代替案を探る: 図7

PDFにウォーターマークを付けるための簡単で効率的な方法を求めている開発者にとって、IronPDFは、使いやすいAPIと組み込みの機能により、優れた選択肢です。 しかし、予算の制約が問題であり、追加のコードを書くことを気にしないのであれば、PDFSharp は堅実なオープンソースの代替手段です。最終的に、最良の選択はプロジェクトの要件、コーディングの専門知識、利用可能なリソースによります。

🚀無料トライアルをダウンロードして、自分でIronPDFを試し、C# PDFプロジェクトをさらに進化させる方法を探ってください!

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
.NETでQuestPDFの透かしに最適な代替手段を発見する
次へ >
.NETでPDFに画像を追加するための最良の代替案を探る