在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在当前的互联网时代,数不胜数的PDF库可以处理各种与PDF相关的任务,那么您如何知道哪一个是适合您的呢? 选择合适的PDF库取决于几个主要因素:您特别需要哪些功能? 您是否需要一种能够处理复杂任务的工具,例如管理PDF文件的安全性和加密,或者您只是需要一种可以管理HTML到PDF转换的工具?
您的预算是多少,您将多频繁使用该工具? 如果您计划定期使用,需要更多功能,并且预算允许购买许可,那么付费版本可能更适合您。但如果您只想要一个偶尔使用的轻量级工具,那么使用免费的库会更好。 您需要什么文档和支持? 每个库都有自己的一套文档和支持,但这些选项的广泛性因库而异。
今天,我们来仔细看看两个特别的库: IronPDF 和Puppeteer Sharp,两个强大的PDF库。
IronPDF 是一个强大的PDF库,专为.NET开发人员设计,使他们能够在.NET环境中轻松生成和操作PDF。 它支持广泛的功能,如将HTML转换为PDF、操作现有PDF、从图像创建PDF、加密PDF等。 IronPDF 的用户友好型 API、详尽的文档和跨平台兼容性,使其成为寻求综合 PDF 解决方案的开发人员的首选。
Puppeteer Sharp 是 Node.js Puppeteer 库的 .NET 移植版本。 它主要集中于控制无头版Chrome,以自动化基于浏览器的操作,例如捕获屏幕截图和从网页生成PDF。 虽然Puppeteer C#在处理浏览器相关任务方面提供了灵活性,但它缺少一些专用库(如IronPDF)提供的高级PDF功能。
IronPDF因其广泛的跨平台兼容性而脱颖而出。 它支持 .NET 框架内的广泛环境,确保在不同平台上的无缝运行。 以下是IronPDF平台兼容性的总结:
.NET 版本:
完全使用C#编写并支持C#, VB.NET,和 F#
.NET Core (8、7、6、5 和 3.1+)
操作系统和处理器: 支持多种不同的操作系统和处理器,包括Windows、Mac、Linux、x64、x86、ARM。
有关 IronPDF 兼容性的更多详细信息,请访问 IronPDF兼容性.
在比较 IronPDF 和 Puppeteer C# 的 PDF 功能时,由于其广泛的功能集,IronPDF 在 .NET 中作为 PDF 生成和操作的一个更专业和强大的工具出现,而 Puppeteer Sharp 是一个较小的库,专注于一小部分专业功能。 以下是一些关键功能比较:
PDF编辑功能: 使用IronPDF,您可以处理现有的PDF文档,编辑它们,并轻松读取PDF文件。 IronPDF 提供的编辑功能包括添加页眉和页脚,将文本和图像盖章到PDF页面上,为PDF添加自定义水印,处理PDF表单,以及拆分或合并PDF文件。
要获取 IronPDF 功能的完整列表,请访问 IronPDF 功能.
IronPDF 示例:
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
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 an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
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 an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
' Advanced Example with HTML Assets
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
Puppeteer Sharp 示例:
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
//launch a new browser instance
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true //Runs the browser in headless mode
});
var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.PdfAsync(outputFile);
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
//launch a new browser instance
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true //Runs the browser in headless mode
});
var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.PdfAsync(outputFile);
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
'launch a new browser instance
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
Await page.GoToAsync("http://www.google.com")
Await page.PdfAsync(outputFile)
使用IronPDF,您可以生成一个 从HTML生成PDF文件 仅需几行代码即可创建内容。 它对现代网络标准的支持确保您每次都能获得像素完美的PDF。Puppeteer虽然可以在短代码块中从网络内容生成PDF,但对于不熟悉它的人来说可能看起来更复杂。
如果您想进一步探索IronPDF的HTML转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
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
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
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")
Puppeteer Sharp:不原生支持; 需要额外的库。
IronPDF 可以处理 PDF 加密 轻松确保您的PDF文件安全。 凭借广泛的选择,您将对整个过程拥有完全的控制权,并且易于理解和使用。 Puppeteer Sharp 不提供任何原生的 PDF 加密支持,因此如果您想加密 PDF 文件,则需要安装单独的库。
IronPDF 可以处理 PDF 安全性、元数据等,而无需任何外部库,确保在这些主题上阅读更多内容。 操作指南 如果您有兴趣了解IronPDF如何处理这些问题。
IronPDF 示例:
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")
pdf.SaveAs("redacted.pdf")
Puppeteer Sharp:不原生支持。
如果您正在寻找能够处理 PDF 涂黑任务的工具,IronPDF 是您的不二之选。 它能流畅地处理PDF编辑,仅需几行代码即可迅速执行此任务,从而确保高效的过程。 然而,Puppeteer 无法处理 PDF 涂销,因此您需要求助于其他 PDF 库,例如 iText、IronPDF 或 Aspose.PDF。
IronPDF 提供深入的 操作指南 关于PDF编辑,如果您想了解更多。
IronPDF 示例:
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// 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
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// 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
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")
' 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
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
Puppeteer Sharp:需要外部库来签署PDF。
IronPDF 直接支持 PDF签名,提供了一种简便的方法来自动化所有 PDF 签名任务,只需几行代码即可实现的签名工具。 另一方面,Puppeteer 不支持应用数字签名,因此如果您想要一个可以处理此功能的 PDF 库,那么最好寻找一个提供直接支持的库,例如 IronPDF,如果您的预算有限,一些免费 PDF 工具如 PDFBox 或 iText7 Community Edition 也提供 PDF 签名功能。
IronPDF包含多种处理PDF签名的方法,因此请务必查看 如何 查看这些方法实际应用的指南。 或者, IronSecureDoc 是IronSoftware提供的另一款强大工具,可以满足您的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")
Puppeteer Sharp:不提供对水印的原生支持。
IronPDF 的 水印工具 对于熟悉HTML和CSS的人来说,使用起来很简单。 使用IronPDF,您只需几行代码即可在任何PDF文件上应用自定义水印。 Puppeteer Sharp 不支持 PDF 水印,因此您需要查看其他 PDF 库来处理此任务。
如果您想更深入地了解IronPDF的水印工具,可以查看它的便捷功能。 操作指南 应用自定义水印。
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");
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");
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")
Puppeteer Sharp:缺乏对印章的原生支持。
使用类似于HTML/CSS的代码,IronPDF使得这一过程变得 在文本和图像上盖章 到您的PDF文件简单。 由于Puppeteer Sharp更专注于PDF生成和与浏览器相关的任务,因此它不提供对文本和图像盖章的直接支持。
了解更多关于使用IronPDF在PDF上添加文本和图像水印的信息,请访问有用的 如何 关于此主题。
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")
Puppeteer Sharp:不直接支持将DOCX转换为PDF。
只需几行代码,您就可以 转换DOCX文件 转换为PDF格式,无需繁琐设置。IronPDF的DOCX到PDF转换工具简单易用,但提供了一种强大的DOCX到PDF转换方法。 Puppeteer Sharp 仅真正支持将 HTML 转换为 PDF,因此如果您想将其他文件类型转换为 PDF 格式,您将需要考虑安装其他库。
要深入了解使用IronPDF将DOCX转换为PDF的过程, 阅读此操作指南.
IronPDF 拥有不同级别和购买许可证的附加功能。 开发者还可以购买 IronSuite 此许可使您可以以两个产品的价格访问所有Iron Software的产品。 如果您还没有准备好购买许可证,IronPDF提供一个 免费试用 持续30天。
IronSuite:您可以通过支付1,498美元获得所有Iron Software产品的访问权限,包括 IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint和 IronWebScraper.
Puppeteer Sharp 是一个免费使用的工具,因为它是一个基于社区的项目,使用 MIT 许可证。 虽然它价格实惠,但与IronPDF等付费竞争对手相比,确实提供的功能显著较少。
总之,在选择适合您的PDF库时,需要考虑很多因素。 每个库都提供不同程度的支持、文档、定价和库支持的功能。 一些库,如IronPDF,具有丰富的功能和广泛的文档,同时相比其竞争对手定价合理。 其他库,如Puppeteer Sharp,可能是免费的,但这会牺牲功能的丰富性,无法在不使用外部库的情况下提供更多功能。
Puppeteer Sharp 是一个轻量级库,可以控制 Chrome 或 Chromium,具有更加专业的功能集,专注于浏览器自动化和 HTML 到 PDF 的转换。 在需要无头浏览器控制的场景中,这是理想的选择,例如抓取网页内容或自动化基于网络的任务。 虽然它缺乏一套广泛的功能,但如果您正在寻找一个简单的HTML到PDF库,这是一个预算友好的选择,并且如果您已经熟悉Puppeteer的生态系统,它也很容易使用。
IronPDF 提供了一个功能丰富的综合PDF库,能够处理更广泛的PDF相关任务,而无需任何额外的库。 使用IronPDF,您可以从多种文件类型生成PDF文件,合并和拆分PDF文件,应用水印,给文件加密,等等。 拥有详尽的文档、积极的支持和强大的跨平台兼容性,如果您正在寻找一款能够处理高级 PDF 操作的工具,那么 IronPDF 可能就是您的理想选择。