透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
透かしの追加は、文書のセキュリティ、ブランディング、バージョン管理のための一般的な要件です。 文書を機密としてマークしたり、公式レポートにブランドを付けたり、不正な複製を防ぐために、ウォーターマークは不可欠な機能です。
C# では、開発者は複数のライブラリを選択することができ、IronPDF と PDFSharp が最も人気のある選択肢の2つです。 しかし、それらのアプローチ、使いやすさ、パフォーマンス、およびライセンス構造は大きく異なります。 この記事は、既存のPDFに透かしを追加するためのIronPDFとPDFsharpの詳細な比較を提供し、それらの機能、実装プロセス、カスタマイズ機能についての洞察を提供します。
この記事の終わりまでに、使いやすさ、パフォーマンス、機能の利用可能性に基づいて、どのライブラリがプロジェクトのニーズに最も適しているかについて明確に理解できるようになります。
ウォーターマークは、文書に対するグラフィカルまたはテキストのオーバーレイで、識別子、抑止力、またはブランディング要素として機能します。 ウォーターマークは、その目的によっては目に見えるものと見えないものがあります。
壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。
IronPDFは、PDFの処理を合理化するために設計されたプレミアムで豊富な機能を備えた.NETライブラリです。 これは、ウォーターマークを含むPDF操作タスクの簡単な実装を求める開発者にとって特に便利です。
主な機能:
壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。
PDFsharpは、開発者がC#でPDFを作成、編集、および操作することを可能にするオープンソースライブラリです。 透かしを入れることは非常に柔軟ですが、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")
このコード例では、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")
画像を透かしとして追加することは、テキストを追加するのと同じくらい簡単です。両方とも同じ方法を使用します。 テキストの例と同様に、新しいウォーターマーク文字列変数を作成し、ウォーターマークとして使用したいコンテンツ(この場合は画像)を含め、これを従来どおり適用します。 今回は、カスタマイズした回転変換と不透明度を追加しました。
このアプローチは、指定された位置に画像の透かしを重ねることで、カスタムの配置と透明度を可能にします。
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")
壊れた画像 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")
このメソッドは画像の透かしを配置しますが、IronPDFとは異なり、不透明度は別に処理する必要があります。 テキストウォーターマークの例と同様に、PDFsharpを使用して既存のPDFに画像ベースのウォーターマークを適用するには、IronPDFの洗練されたウォーターマーキングAPIと比較して、より詳細で複雑なセットアップが必要です。
PDFにウォーターマークを付けるための簡単で効率的な方法を求めている開発者にとって、IronPDFは、使いやすいAPIと組み込みの機能により、優れた選択肢です。 しかし、予算の制約が問題であり、追加のコードを書くことを気にしないのであれば、PDFSharp は堅実なオープンソースの代替手段です。最終的に、最良の選択はプロジェクトの要件、コーディングの専門知識、利用可能なリソースによります。
🚀無料トライアルをダウンロードして、自分でIronPDFを試し、C# PDFプロジェクトをさらに進化させる方法を探ってください!