在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
当您处理PDF时,您会想使用最适合您项目需求的工具,对吗? 但是,市面上有如此多不同的PDF库,很难决定哪一个最适合你。 今天我们将仔细研究两个突出的PDF库; IronPDF和NReco.PdfGenerator。
我们将比较它们的功能、兼容性和整体性能,以帮助您做出明智的决策,选择哪个库可能最适合您。
IronPDF是一个全面的.NET库,擅长将HTML转换为PDF,并提供一套广泛的功能来处理PDF文件。 IronPDF 支持现代网页标准,包括 HTML5、CSS3 和 JavaScript,确保高保真 PDF 生成,并且设计为用户友好,提供直观的 API,可与 .NET 应用程序无缝集成。
NReco.PdfGenerator for .NET 是一个专注于 HTML 到 PDF 转换的强大库。 它基于WkHtmlToPdf命令行工具,并依赖Qt WebKit渲染引擎从HTML内容创建PDF文档。 该库以易于使用和快速集成到.NET项目中而闻名,只需一个包含WkHtmlToPdf二进制文件的.NET程序集。 这使其成为需要可靠PDF生成功能的开发人员的热门选择。
IronPDF因其广泛的跨平台兼容性而脱颖而出。 它支持 .NET 框架内的广泛环境,确保在不同平台上的无缝运行。 以下是IronPDF平台兼容性的总结:
.NET 版本:
操作系统和处理器: 支持多种不同的操作系统和处理器,包括Windows、Mac、Linux、x64、x86、ARM。
有关 IronPDF 兼容性的更多详细信息,请访问IronPDF兼容性.
集成:无缝集成到ASP.NET和MVC应用程序。
要查看 IronPDF 功能的完整列表,请访问IronPDF 功能.
现在,我们来仔细看看处理PDF文档时的一些常见用例,以及这两个库是如何处理它们的。
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.
// An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
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.
// An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
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.
' An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "c:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
NReco.PdfGenerator 示例:
using system;
using NReco.PdfGenerator;
var htmlContent = String.Format("<body>Hello world: {0}</body>",
DateTime.Now);
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent)
using system;
using NReco.PdfGenerator;
var htmlContent = String.Format("<body>Hello world: {0}</body>",
DateTime.Now);
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent)
Imports system
Imports NReco.PdfGenerator
Private htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now)
Private htmlToPdf = New NReco.PdfGenerator.HtmlToPdfConverter()
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'var pdfBytes = htmlToPdf.GeneratePdf(htmlContent)
IronPDF由于支持现代网络标准,提供高保真渲染。 使用IronPDF时HTML 转换为 PDF,您将能够从HTML文档、网页等创建像素完美的PDF。 NReco.PdfGenerator使用WkHtmlToPdf,对于任何HTML模板或网页也能提供可靠的渲染,但可能无法匹配IronPDF的渲染能力的精确度。
要获取更多关于使用IronPDF进行HTML到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
//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")
NReco.PdfGenerator 示例: NReco.PdfGenerator 本身不支持 PDF 加密,因为该库主要侧重于处理 HTML 到 PDF 的转换。
IronPDF 提供了一种简单但强大的工具,用于加密 PDF. 使用IronPDF,您将完全掌控整个流程,甚至可以设置安全性设置。 然而,NReco.PdfGenerator 缺乏本地加密功能,因此如果您希望在使用 NReco.PdfGenerator 转换后加密 PDF 文件,则需要安装更多可以处理 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")
NReco.PdfGenerator 示例: NReco.PdfGenerator 不原生支持文本编辑。
只需几行代码,IronPDF即为您提供简洁易用的解决方案。编辑工具. 鉴于实现起来如此简短和简单,您可以确信,通过使用IronPDF的删减功能,您将能够立即提高工作场所的效率。 另一方面,NReco.PdfGenerator 需要一个额外的外部库来处理修订过程,因为它不原生支持 PDF 修订。
要查看更多修订示例,请访问IronPDF使用指南关于此主题。
IronPDF 示例:
using 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;
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
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")
NReco.PdfGenerator 示例: NReco.PdfGenerator 本身不支持数字签名。
IronPDF 的数字签名该功能为您提供了一种轻松自动化签署PDF的方法。 其直观的API让您完全掌控签名过程,而其实施的简便性意味着如果您经常需要签署PDF文件,那么您的工作量会减少。
遗憾的是,NReco.PdfGenerator 不提供对 PDF 的数字签名支持,但您可以使用如 iTextSharp 这样的第三方库来实现这一点。
有关更多签署示例,请访问IronPDF 使用指南此主题指南。
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")
NReco.PdfGenerator 示例: NReco.PdfGenerator 本身不支持水印功能。
你熟悉HTML和CSS吗? 因为如果是这样,您可以利用IronPDF在其中的HTML/CSS功能。水印工具全面控制整个过程。 如果没有,水印控制的直观和易学的方面将使您很快感觉像专业人士。
如果您正在使用NReco.PdfGenerator并希望给您新转换的PDF文件添加水印,则需要安装一个外部库,例如PDFSharp。
有关更多水印示例,请访问IronPDF 使用指南本主题指南。
IronPDF 示例:
using IronPdf;
using IronPdf.Editing;
using System;
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;
using System;
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
Imports System
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")
using IronPdf;
using IronPdf.Editing;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// 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;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// 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
Imports System
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create image stamper
Private 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")
NReco.PdfGenerator 示例: NReco.PdfGenerator 本身不支持 HTML 加盖功能。
IronPDF 为您提供强大的文本和图像印章工具与类似于HTML和CSS的方法相结合,您将完全控制标记过程。 相比之下,NReco.PdfGenerator 需要像 iTextSharp 或 PDFSharp 这样的外部库,才能在你新转换的 PDF 文档上添加文本和图像。
要查看更多示例,请访问IronPDF 使用指南本主题指南。
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")
NReco.PdfGenerator 示例: NReco.PdfGenerator 本身不支持 DOCX 到 PDF 的转换。
使用 IronPDF,您可以转换您的DOCX文件只需几行代码即可转换为PDF格式。 该工具的简化实现确保了高效的工作环境,同时不影响生成的PDF文件的质量。使用NReco.PdfGenerator,您将无法将DOCX转换为PDF,因为该库主要专注于HTML到PDF的转换。 因此,您将需要在工作区中添加额外的库,例如 Apsose.Words,以处理此转换。
如需更多DOCX转PDF的示例,请访问IronPDF 使用指南本主题指南。
IronPDF拥有不同级别和购买许可证的附加功能。 开发者也可以购买Iron Suite这让您可以以两个产品的价格访问Iron Software的所有产品。 如果您尚未准备购买许可证,IronPDF提供了一种免费试用持续30天。
IronSuite:花费 $1,498,您将获得所有Iron Software产品的访问权,包括IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint和IronWebScraper。
IronPDF在提供广泛文档和支持方面表现出色:
定期更新:每月产品更新,确保具备最新功能和安全补丁。
documentation on our website.文献资料,并访问Iron Software YouTube频道.
IronPDF和NReco.PdfGenerator都是满足您所有HTML到PDF转换需求的强力竞争者,但如果您需要一款不仅仅提供HTML到PDF转换,还具有丰富内置功能的工具,那么IronPDF就是您的选择。
IronPDF 具有全面的功能集、易于学习的曲线,以及对现代网络标准和跨平台兼容性的广泛支持,将成为您工作空间的强大补充。 NReco.PdfGenerator虽然在基本的HTML到PDF转换方面可靠,但缺乏IronPDF提供的许多高级功能。
您可以尝试 0 天免费试用 查看他们的可用功能。