在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
IronPDF DinkToPdf 是两个在 .NET 中创建和编辑 PDF 的知名库。它们具有相同的基本功能,但在特性、能力和用户友好性方面有很大差异。本文的目的是详细比较这两个库,以便潜在用户可以识别它们的优缺点,并最终决定哪个更适合他们。
IronPDF 是一款为.NET程序员创建的完整PDF库。它能够从不同来源创建、修改和渲染PDF,如HTML、ASPX和URLs等。IronPDF如此受欢迎的主要原因之一在于其集成的简便性以及广泛的功能,这些功能符合当代的网页标准,如CSS3、HTML5,甚至JavaScript。此外,IronPDF旨在通过几行代码生成准确的文档表示,因此这种软件更适合那些希望拥有强大且易用的PDF生成工具的开发人员。
DinkToPdf是一款轻量级且易于使用的.NET原生库,它使用Webkit引擎将HTML转换为PDF。它以易于安装和用户友好的界面而闻名,因为它作为wkhtmltopdf库的.NET Core包装器而工作,因这些特性而被广泛使用。然而,它缺少IronPDF提供的一些高级功能。
IronPDF 和DinkToPdf都是旨在促进.NET应用程序中从HTML内容生成PDF的库,但它们在方法和跨兼容性支持方面有所不同:
.NET 版本:
(C#, VB.NET, F#)
.NET Core (8、7、6、5 和 3.1+)
.NET版本:
.NET Framework (4.x)
在比较关键功能时 IronPDF 和DinkToPdf相比,IronPDF提供了更全面和多功能的功能集。以下是详细的比较:
用户可以在IronPDF官网深入了解IronPDF的功能。 功能页.
在工作场所和其他环境中, 转换HTML 将内容转换为PDF是一种常见且必要的操作。以下代码示例比较了IronPDF和DinkToPdf如何处理此过程。
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>");
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 a 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 a 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")
DinkToPdf 示例:
var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
GlobalSettings = {
ColorMode = ColorMode.Color,
Orientation = Orientation.Portrait,
PaperSize = PaperKind.A4,
},
Objects = {
new ObjectSettings() {
PagesCount = true,
HtmlContent = "<h1>Hello World!</h1>",
WebSettings = { DefaultEncoding = "utf-8" },
}
}
};
byte[] pdfBytes = converter.Convert(document);
File.WriteAllBytes(outputPath, pdfBytes);
var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
GlobalSettings = {
ColorMode = ColorMode.Color,
Orientation = Orientation.Portrait,
PaperSize = PaperKind.A4,
},
Objects = {
new ObjectSettings() {
PagesCount = true,
HtmlContent = "<h1>Hello World!</h1>",
WebSettings = { DefaultEncoding = "utf-8" },
}
}
};
byte[] pdfBytes = converter.Convert(document);
File.WriteAllBytes(outputPath, pdfBytes);
Dim converter = New SynchronizedConverter(New PdfTools())
Dim doc = New HtmlToPdfDocument() With {
.GlobalSettings = {
ColorMode = ColorMode.Color,
Orientation = Orientation.Portrait,
PaperSize = PaperKind.A4
},
.Objects = {
New ObjectSettings() With {
.PagesCount = True, .HtmlContent = "<h1>Hello World!</h1>", .WebSettings = { DefaultEncoding = "utf-8" }
}
}
}
Dim pdfBytes() As Byte = converter.Convert(document)
File.WriteAllBytes(outputPath, pdfBytes)
IronPDF和DinkToPdf都为在.NET应用程序中将HTML内容转换为PDF文档提供了强大的工具。IronPDF提供了简化且易于使用的方法,同时也为用户提供了大量的控制。它的现代网络标准支持确保它能够始终生成高保真度的PDF文件。DinkToPdf通过一个.NET封装器利用wkhtmltopdf,提供了广泛的PDF生成自定义选项。它支持颜色模式、页面方向、纸张大小等设置。
加密和解密 在许多工作场所中,PDF 文件是一个重要的组成部分,而拥有一个能够轻松执行此任务的工具则更加重要。在下面的代码片段中,我们将比较 IronPDF 和 DinkToPdf 中的 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")
DinkToPdf:
DinkToPdf 库本身不直接支持 PDF 文件加密。然而,可以通过在 DinkToPdf 中直接使用 wkhtmltopdf 来实现 PDF 加密。
在加密 PDF 文件方面,IronPDF 提供了一种强大的解决方案,其综合加密工具使用户能够轻松地保护 PDF,并控制诸如只读权限和内容可访问性等安全设置。用户可以管理元数据并指定加密密码,以增强文档安全性。
另一方面,DinkToPdf 依赖于 wkhtmltopdf,并不直接支持 PDF 加密。然而,通过在 DinkToPdf 中直接配置 wkhtmltopdf 参数,可以实现加密。这种方法使用户可以设置用户和所有者密码,以保护由 HTML 内容生成的 PDF 文档,从而确保机密性和访问控制。
在某些情况下,可能有必要 编辑 在处理机密或私人信息时,只编辑PDF文件的某些部分。下面的代码片段展示了IronPDF与DinkToPdf相比如何执行编辑。
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")
DinkToPdf本身不支持PDF涂黑任务;然而,你可以在将HTML内容转换为PDF之前,通过操控HTML内容间接实现涂黑。实现这一涂黑任务的方法如下:
准备涂黑的HTML:
将HTML转换为PDF:
IronPDF在编辑PDF内容方面采取了直接而简洁的方式。它允许您修改元数据、调整安全设置和加密PDF文件。这包括将文档设为只读、限制复制和粘贴以及控制打印权限。另一方面,DinkToPdf不直接支持PDF编辑任务。相反,您可以在将HTML内容转换为PDF之前,通过操控HTML内容间接实现编辑功能。
通过自动化,您可以节省大量时间。 电子签名 PDF 文件。在本节中,我们将比较 IronPDF 和 DinkToPdf 在签署文件时的表现。
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")
DinkToPdf:
DinkToPdf 本身并不提供内置的数字 PDF 签名工具。然而,如果您使用兼容 .NET 应用程序的外部库(例如 iTextSharp),仍然可以签署 PDF 文件。然后,您可以使用 DinkToPdf 准备要签名的 PDF 文件,在使用您下载的外部库对 PDF 应用数字签名之前。
IronPDF 为用户提供了一个简单易行的流程来对 PDF 文件进行数字签名,为用户提供了一个强大的工具来有效地自动化他们的 PDF 签名过程。相比之下,DinkToPdf 需要外部库才能完成此任务。
添加和自定义 水印 通过软件对PDF添加水印是处理隐私、版权保护、品牌等问题的非常方便的工具,特别是在处理敏感文件时。在这里,我们比较了IronPDF和DinkToPdf在将水印添加到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")
DinkToPdf:
虽然 DinkToPdf 不提供对 PDF 应用水印的原生支持,但用户可以通过将水印嵌入任何要应用于 PDF 的 HTML 内容中来实现类似效果。此过程涉及使用 CSS 将水印作为叠加层定位于 HTML 内容之上。
通过 HTML/CSS 应用,IronPDF 的简单而强大的 API 使人们能够快速在其 PDF 上加上水印,并为整个操作提供更大的控制。这一特点使用户可以随时随地轻松添加自定义水印。
相反,DinkToPdf 缺乏原生水印支持,但允许通过在 HTML 内容中嵌入水印来实现类似效果。用户可以利用 CSS 将水印叠加在 HTML 上,然后转换为 PDF。
有些情况下你需要放置一个 印章 在PDF页面上,就像应用水印一样。在这种情况下,我们将研究IronPDF和DinkToPdf如何将内容加盖到PDF文档上的方法。
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")
DinkToPdf:
与应用水印相同,DinkToPdf 不支持任何内置的打印工具。相反,用户需要将希望打印的内容嵌入到计划转换为 PDF 的 HTML 内容中。
在将内容加盖到 PDF 文档上的时候,IronPDF 利用其内置的文本和图像打印工具,以便完全控制打印过程。这些工具使得在新的或现有的 PDF 文件上打印内容变得容易。另一方面,DinkToPdf 并不提供原生的打印工具支持。用户必须在转换前将所需内容直接嵌入到 HTML 中,类似于应用水印,以在生成的 PDF 文档中实现打印效果。
为了生成 PDF,可能需要进行格式转换。在这种情况下,我们将讨论转换的过程。 DOCX 转 PDF 并比较此转换过程由IronPDF和DinkToPdf执行。
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")
DinkToPdf:
DinkToPdf 不直接支持 DOCX 转 PDF 转换,因为它的主要目的是简单地将 HTML 页面转换为 PDF。如果用户想使用 DinkToPdf 将 DOCX 转换为 PDF,他们需要使用第三方库(例如 DocX 或 Aspose.Words)将 DOCX 文件转换为 HTML。然后,他们可以使用 DinkToPdf 将生成的 HTML 内容转换为 PDF。
IronPDF 提供直接的 DOCX 转 PDF 转换支持,通过其内置的 DocxToPdfRenderer 渲染器使该过程变得容易。因为 DinkToPdf 不原生支持此过程,所以任务变得更加复杂,因为它需要通过另一库先将 DOCX 转换为 HTML,然后再使用 DinkToPdf 将 HTML 转换为 PDF。
IronPDF 有不同等级和额外功能的许可证供购买。开发者还可以购买 Iron Suite 这将让您以两个产品的价格获取所有IronSoftware的产品。如果您还没准备好购买许可证,IronPDF提供一个 免费试用 有效期为30天。
DinkToPdf 是免费使用的,基于开源模式,并根据 MIT 许可证授权。这意味着任何人都可以免费且无任何限制地使用该产品。虽然这使其比竞争对手更便宜,但用户也不会获得其他 PDF 工具(例如 IronPDF)随附的所有丰富功能工具。
有关IronPDF文档和支持的更多详情,请访问 IronPDF文档 和 IronSoftware YouTube频道.
总之,在选择用于 .NET Core 的 PDF 操作库时,IronPDF 是开发人员工具包中一个强大的工具。IronPDF 在多方面表现出色,如 HTML 转 PDF 转换、加密、编辑、数字签名和水印,提供了这些任务的高效和简化解决方案。它在跨平台兼容性方面表现出色,并且广泛支持现代网络标准。此外,IronPDF 的定价和许可选项更加简单明了,能够很好地满足不同团队规模和项目需求,对于许多开发人员来说是一个具有成本效益的选择。
同时,DinkToPdf 是一个轻量级的开源转换器,主要使用 wkhtmltopdf 引擎来将 HTML 转换为 PDF 格式。它没有 IronPDF 中提供的所有功能,但提供了一种将简单 HTML 文件转换为 PDF 格式的高效方法,同时允许用户轻松配置基本设置,如页面大小和方向。
总之,在为您的项目选择合适的库时,应根据需要考虑:如果您的项目需要广泛的 PDF 功能或重视强大的安全措施,请选择 IronPDF;另一方面,如果您追求简洁或只是需要一个用于基本 HTML 转 PDF 转换的工具,那么 DinkToPdf 可能更加适合您的需求。