跳至頁尾內容
產品對比

探索 PDFsharp 的最佳替代方案,為 PDF 添加浮水印

在 PDF 文件中添加浮水印是文件安全、品牌推廣和版本控制的常見需求。 無論是將文件標記為機密、為官方報告添加浮水印,還是防止未經授權的複製,水印都是不可或缺的功能。

在 C# 中,開發人員有多個庫可供選擇,其中IronPDFPDFSharp是最受歡迎的兩個選擇。 然而,它們的方法、易用性、性能和許可結構卻大相逕庭。 本文對 IronPDF 和 PDFsharp 在為現有 PDF 添加浮水印方面的功能進行了詳細比較,深入探討了它們的功能、實施過程和自訂功能。

閱讀本文,您將清楚了解哪個函式庫最適合您的專案需求,並根據易用性、效能和功能可用性進行判斷。

了解PDF浮水印

什麼是水印?

水印是指在文件上添加的圖形或文字疊加層,用作標識、威懾或品牌元素。 水印可以是可見的,也可以是不可見的,這取決於其用途。

水印類型

*文字浮水印*– 通常是一個半透明的疊加層,上面有"機密"或"草稿"之類的訊息。 圖片浮水印– 嵌入到文件中的標誌、標誌或圖形。 透明水印– 一種不影響文件可讀性的微妙品牌標誌。 印章水印**– 更醒目、更粗體的標記,確保可見性。

常見用例

*安全與保護*– 透過將文件標記為專有資訊來防止未經授權的複製。 品牌識別**– 新增公司標誌或簽名,以保持文件中的品牌一致性。 *版本控制– 標記草稿、最終版本或文件修訂。

IronPDF 和 PDFsharp 概述

IronPDF

IronPDF是一個功能豐富的優質 .NET 程式庫,旨在簡化 PDF 處理。 它對於希望輕鬆實現 PDF 操作任務(包括添加浮水印)的開發人員來說尤其有用。

主要特點:

  • 簡單直覺的API,所需程式碼量極少。
  • 支援文字和圖片浮水印,並提供自訂選項。
  • 提供不透明度控制、定位和旋轉功能,可精確放置。
  • 相容於 .NET 6+、.NET Core 和 .NET Framework。
  • 提供永久授權模式,可供長期使用。
  • 其他功能包括PDF 註解HTML 轉 PDF和數位簽章

PDFsharp

PDFsharp 是一個開源程式庫,允許開發人員使用 C# 建立、編輯和操作 PDF。 雖然浮水印功能非常靈活,但與 IronPDF 相比,它需要更多的手動操作。

主要特點:

  • 免費開源,對於注重預算的專案來說,性價比很高。
  • 提供 PDF 繪圖操作的底層控制,包括輪廓圖形路徑和透明圖形路徑。
  • 支援文字和圖像浮水印,但轉換需要額外的程式碼。
  • 可與 .NET Framework 和 .NET Core(透過 PDFSharpCore)搭配使用。
  • 缺少內建的進階浮水印功能,需要開發者手動實現不透明度和旋轉等功能。

使用 IronPDF 新增浮水印

IronPDF 提供了一個簡單的 API,使開發人員能夠透過幾行程式碼有效地應用浮水印,從而輕鬆有效地簡化 PDF 浮水印任務,而無需任何複雜的或手動設定。 IronPDF 的浮水印工具可以使用 HTML/CSS 字串作為浮水印,如下所示,讓您可以完全控制浮水印的顯示方式。

文字浮水印範例

using IronPdf;

const string filename = "existing.pdf";
// Load the existing PDF file
PdfDocument pdf = PdfDocument.FromFile(filename);

// Create a simple HTML-based watermark
string watermark = "<h1 style='color:red'>Confidential!</h1>";

// Apply the watermark to the PDF
pdf.ApplyWatermark(watermark);

// Save the updated document with the applied watermark
pdf.SaveAs("watermarked.pdf");
using IronPdf;

const string filename = "existing.pdf";
// Load the existing PDF file
PdfDocument pdf = PdfDocument.FromFile(filename);

// Create a simple HTML-based watermark
string watermark = "<h1 style='color:red'>Confidential!</h1>";

// Apply the watermark to the PDF
pdf.ApplyWatermark(watermark);

// Save the updated document with the applied watermark
pdf.SaveAs("watermarked.pdf");
$vbLabelText   $csharpLabel

探索 PDFsharp 的最佳替代方案,為 PDF 添加浮水印:圖 3 - 文字浮水印輸出

在這個程式碼範例中,我們可以看到使用 IronPDF 為現有 PDF 檔案添加浮水印是多麼容易。 這裡,我們使用FromFile方法來載入現有的 PDF 檔案。 然後,我們創建一個簡單的字串,將其格式化為 HTML 元素作為浮水印,並使用ApplyWatermark將其應用於 PDF。 如輸出圖像所示,這會在我們的 PDF 上添加一個簡單的文字字串"機密"作為浮水印。

圖片浮水印範例

using IronPdf;

// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");

// Create an HTML-based watermark containing the image
string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";

// Apply the watermark to the PDF with rotation and opacity
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);

// Save the watermarked document
pdf.SaveAs("watermarked.pdf");
using IronPdf;

// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");

// Create an HTML-based watermark containing the image
string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";

// Apply the watermark to the PDF with rotation and opacity
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);

// Save the watermarked document
pdf.SaveAs("watermarked.pdf");
$vbLabelText   $csharpLabel

探索 PDFsharp 的最佳替代方案,了解如何在 PDF 中添加浮水印:圖 4

添加圖片作為浮水印與添加文字一樣簡單,因為它們都使用相同的方法。 就像文字範例中那樣,我們創建一個新的水印字串變量,其中包含指向圖像 URL 的 HTML 圖像標籤,並應用它。 這次,我們加入了自訂旋轉和不透明度變換。

這種方法是在指定位置疊加影像浮水印,允許自訂位置和透明度。

使用 PDFsharp 新增浮水印

PDFsharp 要求開發人員使用其 GDI+ 繪圖 API 手動渲染文字和圖像。 若要為現有的 PDF 檔案新增浮水印,請建立一個用於繪圖的 XGraphics 對象,並套用所需的內容。

文字浮水印範例

using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

const string filename = "existing.pdf";
// Open the PDF document in modify mode
var document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify);

foreach (var page in document.Pages)
{
    // Create an XGraphics object for drawing
    var gfx = XGraphics.FromPdfPage(page);

    // Move the origin to the center of the page for rotation purposes
    gfx.TranslateTransform(page.Width / 2, page.Height / 2);

    // Rotate for diagonal watermark placement
    gfx.RotateTransform(Math.Atan(page.Height / page.Width));

    // Define font and brush for drawing the watermark text
    var font = new XFont("Arial", 40);
    var brush = new XSolidBrush(XColor.FromArgb(128, XColors.Red));  // Semi-transparent red

    // Draw the watermark text centered on the page
    gfx.DrawString("WATERMARK", font, brush, new XPoint(0, 0));
}

// Save modified document
document.Save("watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

const string filename = "existing.pdf";
// Open the PDF document in modify mode
var document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify);

foreach (var page in document.Pages)
{
    // Create an XGraphics object for drawing
    var gfx = XGraphics.FromPdfPage(page);

    // Move the origin to the center of the page for rotation purposes
    gfx.TranslateTransform(page.Width / 2, page.Height / 2);

    // Rotate for diagonal watermark placement
    gfx.RotateTransform(Math.Atan(page.Height / page.Width));

    // Define font and brush for drawing the watermark text
    var font = new XFont("Arial", 40);
    var brush = new XSolidBrush(XColor.FromArgb(128, XColors.Red));  // Semi-transparent red

    // Draw the watermark text centered on the page
    gfx.DrawString("WATERMARK", font, brush, new XPoint(0, 0));
}

// Save modified document
document.Save("watermarked.pdf");
$vbLabelText   $csharpLabel

此實現方式是在每頁上手動繪製浮水印,需要精確定位和自訂。 雖然 PDFsharp 能夠處理與 IronPDF 範例類似的輸出任務,但它需要更多的程式碼和更複雜的方法來處理將文字浮水印套用到現有內容或新 PDF 檔案。

圖片浮水印範例

using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

// Open the existing PDF document in modify mode
var document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify);

// Load the watermark image
XImage watermark = XImage.FromFile("watermark.png");

foreach (var page in document.Pages)
{
    // Create a graphics object from the page
    XGraphics gfx = XGraphics.FromPdfPage(page);

    // Draw the image watermark at the specified position and size
    gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2);
}

// Save the modified PDF document
document.Save("watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

// Open the existing PDF document in modify mode
var document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify);

// Load the watermark image
XImage watermark = XImage.FromFile("watermark.png");

foreach (var page in document.Pages)
{
    // Create a graphics object from the page
    XGraphics gfx = XGraphics.FromPdfPage(page);

    // Draw the image watermark at the specified position and size
    gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2);
}

// Save the modified PDF document
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 專案提升到一個新的水平!

請注意PDFsharp 是其各自所有者的註冊商標。 本網站與PDFsharp無任何關聯,亦未獲得其認可或贊助。所有產品名稱、標誌和品牌均為其各自所有者的財產。 文中比較僅供參考,反映的是撰寫本文時可公開取得的資訊。

常見問題解答

如何使用 .NET 函式庫為 PDF 新增浮水印?

您可以使用 IronPDF 透過其簡單的 API 為 PDF 添加浮水印,該 API 支援文字和圖像浮水印,並提供不透明度和旋轉等可自訂選項。

使用高階 .NET PDF 水印庫有哪些優點?

像 IronPDF 這樣的高級 .NET PDF 庫提供高級功能,方便添加浮水印,相容於現代 .NET 框架,以及 PDF 註釋和 HTML 轉 PDF 等附加功能。

為什麼在PDF文件中加入浮水印很重要?

水印對於文件安全、品牌推廣和版本控制至關重要。它有助於防止未經授權的複製,確保品牌一致性,並將文件標記為機密文件。

IronPDF 和 PDFsharp 在 PDF 浮水印有什麼不同?

IronPDF 提供了一個更直觀的 API,只需編寫最少的程式碼即可輕鬆添加浮水印,而 PDFsharp 則需要更多的手動操作和額外的編碼來進行轉換和不透明度設定。

與開源方案相比,IronPDF 在 PDF 處理方面有哪些改進?

IronPDF 提供內建的進階功能,讓 PDF 操作(如浮水印、註釋和轉換)變得更加容易,而這些操作在 PDFsharp 等開源選項中需要更複雜的編碼。

使用 .NET 函式庫可以為 PDF 新增哪些類型的浮水印?

使用 IronPDF 等庫,您可以添加文字浮水印、圖像浮水印和透明浮水印,並可自訂位置、不透明度和旋轉角度。

IronPDF 是否適合處理大型 PDF 文件?

是的,IronPDF 針對高速處理進行了最佳化,可以有效處理大型 PDF 文件而不會出現效能問題。

在選擇付費的 .NET PDF 程式庫和開源的 .NET PDF 程式庫時,我應該考慮哪些因素?

考慮易用性、可用功能、相容性、效能和支援。像 IronPDF 這樣的付費庫提供豐富的功能和支持,而像 PDFsharp 這樣的開源程式庫雖然免費,但需要更複雜的編碼,並且缺乏官方支援。

我可以在 .NET Core 中使用 IronPDF 嗎?

是的,IronPDF 與 .NET 6+、.NET Core 和 .NET Framework 相容,使其能夠靈活應用於不同的開發環境。

除了浮水印功能外,IronPDF 還提供哪些其他功能?

除了浮水印功能外,IronPDF 還支援 PDF 註解、HTML 轉 PDF、數位簽章等功能,提供全面的 PDF 操作功能。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。