在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
當涉及到在 .NET 中管理 PDF 文件時,開發人員有多種庫可供選擇,每個庫都提供獨特的功能和能力。 其中,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 功能提供多種功能來處理 PDF 文件,例如生成、修改和提取 PDF 的內容,將 HTML、ASPX、MVC 和圖像轉換為 PDF 格式,以及編輯文本、圖像和元數據; 將浮水印應用到您的 PDF 頁面或加密 PDF 文件。
另一方面,PDFsharp專注於創建和操作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")
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
IronPDF 提供了一種方便且簡單的方法,將 HTML 代碼、HTML 片段或 HTML 模板轉換為 PDF 格式,並允許用戶擁有充足的控制權。 IronPDF對現代網頁標準的支援良好,能夠創建與原始網頁相符的PDF文件。
另一方面,PDFsharp 目前不支援將 HTML 轉換為 PDF,也沒有處理 HTML 文件的能力。 相反,可以將 HtmlRenderer.PdfSharp 庫與 PDFsharp 一起使用,以完成此任務。
有時,使用者可能想要使用 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")
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
在 PDF 檔案中編修內容時,IronPDF 提供了一種直接從 PDF 文件中編修文字的簡單方法。 用戶可以輕鬆地指定要在所有頁面中遮蔽的文本,其直觀且簡潔的API使任務能夠快速且高效地完成。
另一方面,PDFsharp 目前不支持內建的編輯功能。 然而,用戶可以利用其圖形繪圖能力手動覆蓋內容以進行刪除,雖然這種方法需要更多的手動干預和自訂。
如果您需要使用 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")
PDFsharp:
PDFsharp 沒有內建支持數位簽署 PDF 檔案,而是依賴外部函式庫,例如 iTextSharp 來完成這項任務。
以程式化方式對 PDF 文件進行數位簽名可以大大簡化工作流程。 IronPDF 內建對數位簽章的支援,使得過程變得簡單且直接,只需幾行程式碼即可完成任務。 然而,PDFsharp 不具備內建的數位簽章功能,因此需要第三方庫,如 iTextSharp,這進一步增加了實施的複雜性。
在處理私人文件、版權保護、品牌化或任何涉及機密記錄的任務時; 應用和個性化的能力使用 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")
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")
將水印添加到 PDF 文件對於涉及隱私、版權保護和品牌推廣的任務至關重要。 IronPDF 提供了一個簡單明瞭的 API,讓用戶可以藉由 HTML/CSS 高效地應用自定義浮水印,提供彈性和易於實施的同時,也讓用戶對這個過程擁有大量的控制。 另一方面,PDFsharp 需要更多的手動處理,利用圖形和文本繪製方法將水印覆蓋到 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")
PDFsharp:
PDFsharp 目前不支援直接將 DOCX 轉換為 PDF 檔案格式。 相反,如果用戶希望執行此任務,則必須使用像 DocX 這樣的外部程式庫。
在 DOCX 到 PDF 轉換方面,IronPDF 提供了一種簡單而扼要的方法,通過其 DocxToPdfRenderer 直接支持 DOCX 到 PDF 的轉換。 這允許無縫渲染和保存生成的 PDF。
PDFsharp 原生不支援 DOCX 轉換為 PDF; 用戶必須依賴像 DocX 這樣的外部庫來實現這種功能。
有時,例如在應用水印時,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")
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")
IronPDF 讓用戶能夠輕鬆地在 PDF 文件中添加文字和圖像,同時保持過程簡單明瞭。 它讓使用者完全掌控流程的各個方面,尤其是對於熟悉 HTML/CSS 的人而言。
另一方面,PDFsharp 需要更多的手動處理,使用其 XGraphics 對象,將文本和圖像使用特定的坐標和圖形參數直接印到每個頁面上。
無論是在辦公室、學校還是圖書館,使用 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")
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")
IronPDF 是一個強大的工具,具有強大的加密功能,讓您可以輕鬆加密PDF並管理安全設置,例如唯讀存取、複製/貼上限制以及列印許可。 您還可以為加密文件添加密碼保護並自訂元數據; 簡而言之,IronPDF 是一個包含所有功能的解決方案,用於安全管理 PDF。
PDFsharp 沒有任何原生的加密支持,但它可以使用像 PdfSharp.Pdf.IO 這樣的第三方庫來執行此功能。 您可以設定不同級別的加密,創建使用者或擁有者密碼,並定義在列印權限或內容提取等文件操作上的權限。
了解IronPDF 的授權和定價選項其中包括不同級別和購買許可證的附加功能。 開發人員還可以購買IronSuite可以讓您以兩個產品的價格使用Iron Software的所有產品。 如果您還沒有準備好購買許可證,IronPDF 提供一個免費試用持續30天。
IronSuite:只需 1,498 美元,即可使用包括 IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint 和 IronWebScraper 在內的所有 Iron Software 產品。
PDFsharp 是一個開源庫,可以免費使用。 然而,這樣做的代價是功能比 IronPDF 等競爭對手更少且不如其先進。
IronPDF 提供了廣泛的文件和支援選項,以確保開發人員可以輕鬆整合並利用其功能。
支援: 沒有商業支援選項,但有一個用於報告問題的儲存庫。
如需有關 IronPDF 文件和支援的更多詳細資訊,請造訪IronPDF 官方文件和該Iron Software YouTube 頻道.
總結來說,在.NET環境中選擇IronPDF或PDFsharp進行PDF文件管理時,開發人員應考慮其具體需求和項目要求。 IronPDF 凭借其广泛的功能集而表现出色,其中包括 HTML 转 PDF 转换、加密功能,以及对各种 .NET 平台和开发环境的强大支持。 它提供全面的文件、多種支援管道和靈活的授權選項,雖然需支付費用,並且可以使用 NuGet Package Manager 輕鬆安裝到您的專案中。
另一方面,PDFsharp 作為一個開源庫,是免費使用的,但缺乏高級功能,例如對 HTML 到 PDF 轉換和 PDF 加密的原生支持。 它可能需要額外的庫,並且缺乏商業支持選項,使其主要適合於基本的PDF操作任務。
您可以嘗試使用 0 天免費試用 查看他們的可用功能。