在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
添加水印 到PDF是文件安全、品牌化和版本控制的常見需求。 無論是將文件標記為機密、為正式報告品牌化,或防止未授權的複製,浮水印都是一個基本功能。
在 C# 中,開發人員有多個庫可供選擇,其中IronPDF和PDFSharp是最受歡迎的選擇之一。 然而,它們的方法、易用性、性能和授權結構大不相同。 本文提供了 IronPDF 和 PDFsharp 在為現有 PDF 添加水印方面的詳細比較,並深入分析了它們的功能、實施過程和自定義能力。
在本文結束時,您將清楚了解基於易用性、性能和功能可用性,哪個庫最適合您的項目需求。
浮水印是在文件上的圖形或文字的覆蓋層,它作為識別符號、威懾或品牌元素。 浮水印可以是可見的或不可見的,這取決於其用途。
損壞的圖片 從Pixabay添加,從你的文件中選擇或拖放圖片到這裡。
IronPDF 是一個高級、功能豐富的 .NET 庫,旨在簡化 PDF 處理。 這對於尋找簡易 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 專案提升到下一個層次!