產品比較

PDFSharp HTML 轉換PDF範例與教程比較

發佈 2024年8月11日
分享:

介紹

當涉及到在 .NET 中管理 PDF 文件時,開發人員有多種庫可供選擇,每個庫都提供獨特的功能和能力。 其中,IronPDF和 PDFsharp 脫穎而出,迎合不同的需求和偏好。

在本文中,我們將深入研究這些程式庫提供的各種功能,以及它們各自的支援、定價、文件和相容性。

IronPDF 和 PDFsharp 概覽

強大的 PDF 函式庫 IronPDF 專為 .NET 設計,使開發人員能夠輕鬆創建、編輯和提取 PDF 內容。 用戶可以使用 IronPDF 將各種格式,如 HTML、ASPX、MVC 和圖像,轉換為 PDF 文件。 IronPDF具有多項功能,例如文字編輯、圖像處理和元數據更改、水印和加密 PDF 文件等。 它以易於使用的介面以及一組令人印象深刻的功能而聞名,使開發人員更容易處理 PDF 文件。

PDFsharp 是一個基於 .NET 的開源庫,專注於動態生成 PDF 文件。 這個產品完全以 C# 實現,支持繪製文本、圖形和圖像。 它還允許進行修改操作,如合併或拆分現有的 PDF 文件。 PDFsharp 適合那些尋求一個簡單的庫來操作基本 PDF 檔案,而不是具有許多額外功能的人。

跨平台相容性

IronPDF 和 PDFsharp 都在 .NET 環境中運行,PDFsharp 從 6.1 版本開始,支持 .NET Framework 4.7.2 或更高版本、.NET Standard 2.0 和 .NET 6 或更高版本,並能在 Linux 和 macOS 等 .NET 兼容平台上運行,以及 Windows。

探索 IronPDF 平台相容性了解它如何支持最新的平台相容性與各種 .NET 版本,允許開發人員在 Windows、Linux、Mac、Azure、Docker 和 AWS 等應用環境中工作,從而確保與多種作業系統和開發環境的通用相容性。

IronPDF:

  • .NET 版本:
  • (C#, VB.NET, F#)
  • .NET Core(8, 7, 6, 5, 和 3.1+)
  • .NET Standard(2.0+)
  • .NET Framework(4.6.2+)
  • .NET 專案類型: 支援專案類型如 Blazor、MAUI、WPF、控制台應用程式等
  • 應用環境: IronPDF 適用於 Windows、Linux、Mac、Docker、Azure 和 AWS 等應用環境。
  • IDEs: 支援使用 Microsoft Visual Studio 和 JetBrains Rider & ReSharper 等 IDEs。

PDFsharp

  • .NET 版本:
  • .NET Framework(4.7.2+)
  • .NET Standard(2.0+)
  • .NET 6+
  • .NET 專案類型: 能夠與專案類型和技術協同工作,如 Blazor、MAUI 和 ASP.NET。
  • 應用環境: PDFsharp 支援在 Windows、macOS 和 Linux 上運行的專案。

功能比較概覽:IronPDF 與 PDFsharp

探索 IronPDF 功能提供多種功能來處理 PDF 文件,例如生成、修改和提取 PDF 的內容,將 HTML、ASPX、MVC 和圖像轉換為 PDF 格式,以及編輯文本、圖像和元數據; 將浮水印應用到您的 PDF 頁面或加密 PDF 文件。

另一方面,PDFsharp專注於創建和操作PDF文檔; 它允許您在頁面上繪製文本行或段落,或在頁面上插入矩形和圓形等圖形。

IronPDF

  • HTML 轉換為 PDF:IronPDF 支援現代網頁標準(CSS3, HTML5, JavaScript),允許創建高保真PDF文檔。
  • PDF 加密: 使用者可以利用 IronPDF 的強大加密工具來加密和解密 PDF 文件,為其 PDF 文件添加額外的安全層。
  • PDF 編輯:IronPDF 函式庫包含合併、分割、格式化和修改現有 PDF 文件的功能。
  • PDF檔案的數位簽章: IronPDF 允許使用者對其PDF進行數位簽章。
  • 水印:輕鬆將文字和圖像水印應用於PDF文件; 利用其 HTML/CSS 的使用來全面控制流程。
  • PDF 加蓋: 使用 IronPDF 在您的 PDF 文件上加蓋圖像和文字。

PDFsharp:

  • 創建 PDF: PDFsharp 可以從任何 .NET 語言創建和生成 PDF 文件。
  • PDF 操作: 修改、合併和拆分 PDF 文件
  • 在您的 PDF 文件上繪製圖形: PDFsharp 提供在您的 PDF 文檔上繪製形狀、線條和圖像的功能。
  • 加密: 使用PDFsharp的加密工具加密您的 PDF 文件。

IronPDF 與 PDFsharp 之間功能的比較

將HTML轉換為PDF

在各種工作場所和環境中,進行轉換使用 IronPDF 將 HTML 轉換為 PDF是一項既簡單又必要的任務; 以下代碼範例展示了在此過程中 IronPDF 和 PDFsharp 的比較。

IronPDF:

using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()

' Create a PDF from a HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")

' Advanced Example with HTML Assets
' Load external html assets: images, CSS and JavaScript.
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
VB   C#

PDFsharp:

PDFsharp 本身無法處理 HTML 到 PDF 的轉換; 相反,這需要使用 HtmlRenderer.PdfSharp 庫來執行此任務。 此 HTML 渲染器可以使用靜態渲染代碼處理 HTML 到 PDF 的轉換。

using System.IO;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;

static void Main(string[] args)
{
    string html = @"<h1>Hello World</h1>";
    PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.A4);
    const string filename = "HtmlToPdfExample.pdf";
    pdf.Save(filename);
}
using System.IO;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;

static void Main(string[] args)
{
    string html = @"<h1>Hello World</h1>";
    PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.A4);
    const string filename = "HtmlToPdfExample.pdf";
    pdf.Save(filename);
}
Imports System.IO
Imports PdfSharp.Pdf
Imports TheArtOfDev.HtmlRenderer.PdfSharp

Shared Sub Main(ByVal args() As String)
	Dim html As String = "<h1>Hello World</h1>"
	Dim pdf As PdfDocument = PdfGenerator.GeneratePdf(html, PageSize.A4)
	Const filename As String = "HtmlToPdfExample.pdf"
	pdf.Save(filename)
End Sub
VB   C#

IronPDF 提供了一種方便且簡單的方法,將 HTML 代碼、HTML 片段或 HTML 模板轉換為 PDF 格式,並允許用戶擁有充足的控制權。 IronPDF對現代網頁標準的支援良好,能夠創建與原始網頁相符的PDF文件。

另一方面,PDFsharp 目前不支援將 HTML 轉換為 PDF,也沒有處理 HTML 文件的能力。 相反,可以將 HtmlRenderer.PdfSharp 庫與 PDFsharp 一起使用,以完成此任務。

在 PDF 檔案中編輯文字

有時,使用者可能想要使用 IronPDF 在 PDF 文件中編輯文本尤其是在處理私密或敏感信息時。

IronPDF:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

' Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")

pdf.SaveAs("redacted.pdf")
VB   C#

PDFsharp:

PDFsharp 目前不提供任何內建功能來編輯 PDF 內容; 然而,由於編輯涉及永久刪除或隱藏敏感信息,您可以嘗試使用PDFsharp的圖形繪製工具手動覆蓋您希望編輯的內容以達到類似結果。 以下是實現此目標的範例:

using System;
using PdfSharp.Pdf;
using PdfSharp.Drawing;

namespace PdfRedactionExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load an existing PDF document
            PdfDocument document = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify);
            // Get the first page of the document
            PdfPage page = document.Pages[0];
            // Create a graphics object to write on the page
            XGraphics gfx = XGraphics.FromPdfPage(page);
            // Define the area to redact (for example, a rectangle covering text)
            XRect redactRect = new XRect(100, 100, 200, 50); // Adjust coordinates and size as needed
            // Fill the redaction area with a black rectangle
            gfx.DrawRectangle(XBrushes.Black, redactRect);
            // Save the modified document
            document.Save("output.pdf");
            // Optionally, close the document
            document.Close();
        }
    }
}
using System;
using PdfSharp.Pdf;
using PdfSharp.Drawing;

namespace PdfRedactionExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load an existing PDF document
            PdfDocument document = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify);
            // Get the first page of the document
            PdfPage page = document.Pages[0];
            // Create a graphics object to write on the page
            XGraphics gfx = XGraphics.FromPdfPage(page);
            // Define the area to redact (for example, a rectangle covering text)
            XRect redactRect = new XRect(100, 100, 200, 50); // Adjust coordinates and size as needed
            // Fill the redaction area with a black rectangle
            gfx.DrawRectangle(XBrushes.Black, redactRect);
            // Save the modified document
            document.Save("output.pdf");
            // Optionally, close the document
            document.Close();
        }
    }
}
Imports System
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing

Namespace PdfRedactionExample
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Load an existing PDF document
			Dim document As PdfDocument = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify)
			' Get the first page of the document
			Dim page As PdfPage = document.Pages(0)
			' Create a graphics object to write on the page
			Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
			' Define the area to redact (for example, a rectangle covering text)
			Dim redactRect As New XRect(100, 100, 200, 50) ' Adjust coordinates and size as needed
			' Fill the redaction area with a black rectangle
			gfx.DrawRectangle(XBrushes.Black, redactRect)
			' Save the modified document
			document.Save("output.pdf")
			' Optionally, close the document
			document.Close()
		End Sub
	End Class
End Namespace
VB   C#

在 PDF 檔案中編修內容時,IronPDF 提供了一種直接從 PDF 文件中編修文字的簡單方法。 用戶可以輕鬆地指定要在所有頁面中遮蔽的文本,其直觀且簡潔的API使任務能夠快速且高效地完成。

另一方面,PDFsharp 目前不支持內建的編輯功能。 然而,用戶可以利用其圖形繪圖能力手動覆蓋內容以進行刪除,雖然這種方法需要更多的手動干預和自訂。

數位簽署 PDF 檔案

如果您需要使用 IronPDF 為 PDF 文件進行數位簽名,這可能會非常耗時。 節省部分時間的一種方法是通過程式化實現。 在以下代碼範例中,我們將比較 IronPDF 和 PDFsharp 之間的文件簽署運作方式。

IronPDF:

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create PdfSignature object
Private sig = New PdfSignature(cert)

' Sign PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
VB   C#

PDFsharp:

PDFsharp 沒有內建支持數位簽署 PDF 檔案,而是依賴外部函式庫,例如 iTextSharp 來完成這項任務。

以程式化方式對 PDF 文件進行數位簽名可以大大簡化工作流程。 IronPDF 內建對數位簽章的支援,使得過程變得簡單且直接,只需幾行程式碼即可完成任務。 然而,PDFsharp 不具備內建的數位簽章功能,因此需要第三方庫,如 iTextSharp,這進一步增加了實施的複雜性。

應用 PDF 浮水印

在處理私人文件、版權保護、品牌化或任何涉及機密記錄的任務時; 應用和個性化的能力使用 IronPDF 添加水印在 PDF 文件上可以非常有用。 在本文中,我們比較IronPDF和PDFsharp在PDF文件上添加水印時的表現。

IronPDF:

using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf

' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
VB   C#

PDFsharp:

using PdfSharp.Pdf;
using PdfSharp.Drawing;

PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
XGraphics gfx = XGraphics.FromPdfPage(document.Pages[0]);
XFont font = new XFont("Verdana", 40, XFontStyle.BoldItalic);
XBrush brush = new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));
string watermarkText = "SAMPLE";
XSize textSize = gfx.MeasureString(watermarkText, font);
XPoint center = new XPoint((document.Pages[0].Width - textSize.Width) / 2, (document.Pages[0].Height - textSize.Height) / 2);
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center);

// Save the document
document.Save("Watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;

PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
XGraphics gfx = XGraphics.FromPdfPage(document.Pages[0]);
XFont font = new XFont("Verdana", 40, XFontStyle.BoldItalic);
XBrush brush = new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));
string watermarkText = "SAMPLE";
XSize textSize = gfx.MeasureString(watermarkText, font);
XPoint center = new XPoint((document.Pages[0].Width - textSize.Width) / 2, (document.Pages[0].Height - textSize.Height) / 2);
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center);

// Save the document
document.Save("Watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing

Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
Private gfx As XGraphics = XGraphics.FromPdfPage(document.Pages(0))
Private font As New XFont("Verdana", 40, XFontStyle.BoldItalic)
Private brush As XBrush = New XSolidBrush(XColor.FromArgb(128, 255, 0, 0))
Private watermarkText As String = "SAMPLE"
Private textSize As XSize = gfx.MeasureString(watermarkText, font)
Private center As New XPoint((document.Pages(0).Width - textSize.Width) \ 2, (document.Pages(0).Height - textSize.Height) \ 2)
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center)

' Save the document
document.Save("Watermarked.pdf")
VB   C#

將水印添加到 PDF 文件對於涉及隱私、版權保護和品牌推廣的任務至關重要。 IronPDF 提供了一個簡單明瞭的 API,讓用戶可以藉由 HTML/CSS 高效地應用自定義浮水印,提供彈性和易於實施的同時,也讓用戶對這個過程擁有大量的控制。 另一方面,PDFsharp 需要更多的手動處理,利用圖形和文本繪製方法將水印覆蓋到 PDF 頁面上。

DOCX 轉換為 PDF 文件

將不同文件類型轉換為 PDF 在創建 PDF 文件時至關重要。 在此情境中,我們將專注於使用 IronPDF 進行 DOCX 轉 PDF 的轉換比較 IronPDF 與 PDFsharp 如何完成此任務。

IronPDF:

using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
VB   C#

PDFsharp:

PDFsharp 目前不支援直接將 DOCX 轉換為 PDF 檔案格式。 相反,如果用戶希望執行此任務,則必須使用像 DocX 這樣的外部程式庫。

在 DOCX 到 PDF 轉換方面,IronPDF 提供了一種簡單而扼要的方法,通過其 DocxToPdfRenderer 直接支持 DOCX 到 PDF 的轉換。 這允許無縫渲染和保存生成的 PDF。

PDFsharp 原生不支援 DOCX 轉換為 PDF; 用戶必須依賴像 DocX 這樣的外部庫來實現這種功能。

將圖像和文字加蓋到PDF文件上

有時,例如在應用水印時,PDF 頁面可能需要被使用 IronPDF 蓋上文字和圖片的印章. 在本節中,我們將對比 IronPDF 和 PDFsharp 在 PDF 文件上的蓋章功能。

IronPDF:

using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create text stamper
Private textStamper As New TextStamper() With {
	.Text = "Text Stamper!",
	.FontFamily = "Bungee Spice",
	.UseGoogleFont = True,
	.FontSize = 30,
	.IsBold = True,
	.IsItalic = True,
	.VerticalAlignment = VerticalAlignment.Top
}

' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")

' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}

' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
VB   C#

PDFsharp:

using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.Drawing;

// Load an existing PDF document
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
// Iterate through each page in the document
 foreach (PdfPage page in document.Pages)
 {
    // Get an XGraphics object for drawing on the page
    XGraphics gfx = XGraphics.FromPdfPage(page);

    // Define a font and brush for stamping text
    XFont font = new XFont("Arial", 12);
    XBrush brush = XBrushes.Red;

     // Stamp text onto the page
     gfx.DrawString("Confidential", font, brush, 50, 50);

     // Stamp an image onto the page
     XImage image = XImage.FromFile("stamp.png"); // Replace with your image path
     gfx.DrawImage(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2);
}

document.Save("StampedOutput.pdf");
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.Drawing;

// Load an existing PDF document
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
// Iterate through each page in the document
 foreach (PdfPage page in document.Pages)
 {
    // Get an XGraphics object for drawing on the page
    XGraphics gfx = XGraphics.FromPdfPage(page);

    // Define a font and brush for stamping text
    XFont font = new XFont("Arial", 12);
    XBrush brush = XBrushes.Red;

     // Stamp text onto the page
     gfx.DrawString("Confidential", font, brush, 50, 50);

     // Stamp an image onto the page
     XImage image = XImage.FromFile("stamp.png"); // Replace with your image path
     gfx.DrawImage(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2);
}

document.Save("StampedOutput.pdf");
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf
Imports System.Drawing

' Load an existing PDF document
Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
' Iterate through each page in the document
 For Each page As PdfPage In document.Pages
	' Get an XGraphics object for drawing on the page
	Dim gfx As XGraphics = XGraphics.FromPdfPage(page)

	' Define a font and brush for stamping text
	Dim font As New XFont("Arial", 12)
	Dim brush As XBrush = XBrushes.Red

	 ' Stamp text onto the page
	 gfx.DrawString("Confidential", font, brush, 50, 50)

	 ' Stamp an image onto the page
	 Dim image As XImage = XImage.FromFile("stamp.png") ' Replace with your image path
'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(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2)
 Next page

document.Save("StampedOutput.pdf")
VB   C#

IronPDF 讓用戶能夠輕鬆地在 PDF 文件中添加文字和圖像,同時保持過程簡單明瞭。 它讓使用者完全掌控流程的各個方面,尤其是對於熟悉 HTML/CSS 的人而言。

另一方面,PDFsharp 需要更多的手動處理,使用其 XGraphics 對象,將文本和圖像使用特定的坐標和圖形參數直接印到每個頁面上。

加密 PDF 文件

無論是在辦公室、學校還是圖書館,使用 IronPDF 加密和解密 PDF 文件構成許多工作環境的一部分。 因此,擁有一個能順利執行這一功能的程式可能是必不可少的。 本節將比較 IronPDF 和 PDFsharp 如何處理 PDF 加密任務。

IronPDF:

using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System

' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now

' Edit file security settings
' The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights

' change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
VB   C#

PDFsharp:

PDFsharp 本身不具備內建的 PDF 加密支持。 不過,使用者可以安裝 PdfSharp.Pdf.IO 程式庫來協助執行此任務。

using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Security;

PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
string userPassword = "userpassword";
string ownerPassword = "ownerpassword";

PdfSecuritySettings securitySettings = document.SecuritySettings;
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit;
securitySettings.UserPassword = userPassword;
securitySettings.OwnerPassword = ownerPassword;
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotationsAndFieldsEdit = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = true;
securitySettings.PermitFullQualityPrint = true;
securitySettings.PermitModifyDocument = true;
securitySettings.PermitPrint = true;

document.Save("EncryptedOutput.pdf");
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Security;

PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
string userPassword = "userpassword";
string ownerPassword = "ownerpassword";

PdfSecuritySettings securitySettings = document.SecuritySettings;
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit;
securitySettings.UserPassword = userPassword;
securitySettings.OwnerPassword = ownerPassword;
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotationsAndFieldsEdit = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = true;
securitySettings.PermitFullQualityPrint = true;
securitySettings.PermitModifyDocument = true;
securitySettings.PermitPrint = true;

document.Save("EncryptedOutput.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Pdf.IO
Imports PdfSharp.Pdf.Security

Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
Private userPassword As String = "userpassword"
Private ownerPassword As String = "ownerpassword"

Private securitySettings As PdfSecuritySettings = document.SecuritySettings
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit
securitySettings.UserPassword = userPassword
securitySettings.OwnerPassword = ownerPassword
securitySettings.PermitAccessibilityExtractContent = False
securitySettings.PermitAnnotationsAndFieldsEdit = False
securitySettings.PermitAssembleDocument = False
securitySettings.PermitExtractContent = False
securitySettings.PermitFormsFill = True
securitySettings.PermitFullQualityPrint = True
securitySettings.PermitModifyDocument = True
securitySettings.PermitPrint = True

document.Save("EncryptedOutput.pdf")
VB   C#

IronPDF 是一個強大的工具,具有強大的加密功能,讓您可以輕鬆加密PDF並管理安全設置,例如唯讀存取、複製/貼上限制以及列印許可。 您還可以為加密文件添加密碼保護並自訂元數據; 簡而言之,IronPDF 是一個包含所有功能的解決方案,用於安全管理 PDF。

PDFsharp 沒有任何原生的加密支持,但它可以使用像 PdfSharp.Pdf.IO 這樣的第三方庫來執行此功能。 您可以設定不同級別的加密,創建使用者或擁有者密碼,並定義在列印權限或內容提取等文件操作上的權限。

程式範例比較摘要

Pdfsharp Read Pdf 1 related to 程式範例比較摘要

價格和授權:IronPDF vs. PDFsharp

IronPDF 價格和授權

了解IronPDF 的授權和定價選項其中包括不同級別和購買許可證的附加功能。 開發人員還可以購買IronSuite可以讓您以兩個產品的價格使用Iron Software的所有產品。 如果您還沒有準備好購買許可證,IronPDF 提供一個免費試用持續30天。

  • 永久授權: 提供多種永久授權類型,根據您的團隊規模、專案需求和地點數量選擇。 每種授權類型均提供電子郵件支援。
  • Lite License(輕量授權):此授權費用為 $749,支援一位開發者、一個地點和一個專案。
  • Plus License: 支援三位開發人員、三個地點和三個專案,這是比Lite License更高級的選擇,費用為1,499美元。Plus License除了基本的電子郵件支援外,還提供聊天支援和電話支援。
  • 專業授權: 此授權適合較大的團隊,支持十位開發人員、十個地點和十個項目,價格為 $2,999。它提供與先前等級相同的聯繫支持渠道,還提供屏幕共享支持。
  • 免版稅再分發: IronPDF 的許可證還提供免版稅再分發保險,額外收費 $1,999。
  • 不間斷的產品支援: IronPDF 提供持續的產品更新、安全功能升級以及來自其工程團隊的支援,價格為每年 999 美元,或一次性購買 1,999 美元以獲得 5 年保障。
  • IronSuite:只需 1,498 美元,即可使用包括 IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint 和 IronWebScraper 在內的所有 Iron Software 產品。

    Pdfsharp Read Pdf 2 related to IronPDF 價格和授權

PDFsharp 授權

PDFsharp 是一個開源庫,可以免費使用。 然而,這樣做的代價是功能比 IronPDF 等競爭對手更少且不如其先進。

文件和支持:IronPDF 與 PDFsharp

IronPDF 提供了廣泛的文件和支援選項,以確保開發人員可以輕鬆整合並利用其功能。

IronPDF

  • 全面文檔:覆蓋所有功能的詳盡且使用者友好的文檔。
  • 24/5 支援:提供全天候工程師支援。
  • 影片教程:逐步影片指南可在 YouTube 上觀看。
  • 社群論壇:參與活躍的社群以獲得額外支援。
  • 定期更新:每月產品更新,以確保提供最新功能和安全補丁。

PDFsharp

  • 文件: 基本文件可在網站上獲得。
  • 論壇: 透過論壇提供社群驅動的支援。
  • 支援: 沒有商業支援選項,但有一個用於報告問題的儲存庫。

    如需有關 IronPDF 文件和支援的更多詳細資訊,請造訪IronPDF 官方文件和該Iron Software YouTube 頻道.

結論

總結來說,在.NET環境中選擇IronPDF或PDFsharp進行PDF文件管理時,開發人員應考慮其具體需求和項目要求。 IronPDF 凭借其广泛的功能集而表现出色,其中包括 HTML 转 PDF 转换、加密功能,以及对各种 .NET 平台和开发环境的强大支持。 它提供全面的文件、多種支援管道和靈活的授權選項,雖然需支付費用,並且可以使用 NuGet Package Manager 輕鬆安裝到您的專案中。

另一方面,PDFsharp 作為一個開源庫,是免費使用的,但缺乏高級功能,例如對 HTML 到 PDF 轉換和 PDF 加密的原生支持。 它可能需要額外的庫,並且缺乏商業支持選項,使其主要適合於基本的PDF操作任務。

您可以嘗試使用 0 天免費試用 查看他們的可用功能。

< 上一頁
SpirePDF C# HTML轉PDF教學與庫比較
下一個 >
Accusoft Prizmdoc PDF Viewer 教程和比較

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >