在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
在 .NET 中处理 PDF 文档时,开发人员经常会比较各种库,以确定哪个最适合他们的项目需求。 在 .NET 生态系统中,三个受欢迎的选择是PDFsharp, QuestPDF,and IronPDF. 每个库都适用于不同的使用案例,并提供了独特的优点和缺点。 在本文中,我们将深入比较这些库及其如何使用基本的 PDF 生成进行处理此URL帮助您做出明智的决定。
PDFsharp是一个开源库,旨在创建、编辑和渲染PDF文档。 PDFsharp专注于简单性和核心PDF功能,是一个为寻找简单PDF操作功能的开发人员提供可靠工具的选择。
通过使用 NuGet 包管理器,可以轻松地将 PDFsharp 安装到您的项目中,只需在 NuGet 包管理器控制台中运行以下命令行:
Install-Package PDFsharp
Install-Package PDFsharp
现在,让我们看看 PDFsharp 如何处理从给定 URL 创建新的 PDF 文档。 由于PDFsharp本身无法处理HTML或URL到PDF的转换,我们需要集成一个网页渲染引擎,如HtmlRenderer.PdfSharp来协助。此外,我们还需要使用HttpClient从给定的URL获取HTML内容。
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
public class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
// Ensure proper encoding support
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string url = "https://www.apple.com";
// Fetch HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Generate PDF from the fetched HTML content
var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
pdf.Save("output.pdf");
Console.WriteLine("PDF created successfully as 'output.pdf'.");
}
}
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
public class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
// Ensure proper encoding support
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string url = "https://www.apple.com";
// Fetch HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Generate PDF from the fetched HTML content
var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
pdf.Save("output.pdf");
Console.WriteLine("PDF created successfully as 'output.pdf'.");
}
}
}
如您所见,虽然PDFsharp可以用于将HTML内容和网页转换为PDF文件,但它需要其他库的帮助,并且无法保留原始网站上的任何CSS和格式。虽然是一个很好的免费PDF开发人员库,但它确实缺乏一些在IronPDF等付费库中发现的更高级功能。
QuestPDF 是一个现代的开源库,专注于使用流畅的 API 生成视觉上吸引人的 PDF。 其创新的方法用于文档布局和渲染,使其成为需要动态和复杂设计的应用程序中强有力的竞争者。
再次感谢此库可作为NuGet包安装,安装过程非常简单,只需要在NuGet控制台中运行一行代码:
Install-Package QuestPDF
Install-Package QuestPDF
现在是时候看看QuestPDF将如何处理将我们的示例URL转换为PDF格式。 虽然QuestPDF本身不支持URL到PDF的转换,但您可以使用HTTP客户端提取HTML内容,并使用QuestPDF的流式API将其渲染为PDF。
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
public class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
QuestPDF.Settings.License = LicenseType.Community;
string url = "https://www.apple.com";
// Fetch HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Parse the HTML content using HtmlAgilityPack
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContent);
// Extract meaningful content (e.g., text inside <body>)
var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";
// Generate PDF using QuestPDF
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(20);
page.Content().Text(bodyContent);
});
}).GeneratePdf("output.pdf");
Console.WriteLine("PDF created successfully as 'output.pdf'.");
}
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
public class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
QuestPDF.Settings.License = LicenseType.Community;
string url = "https://www.apple.com";
// Fetch HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Parse the HTML content using HtmlAgilityPack
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContent);
// Extract meaningful content (e.g., text inside <body>)
var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";
// Generate PDF using QuestPDF
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(20);
page.Content().Text(bodyContent);
});
}).GeneratePdf("output.pdf");
Console.WriteLine("PDF created successfully as 'output.pdf'.");
}
}
}
正如我们在PDFSharp中看到的那样,尽管QuestPDF可以利用外部库如HtmlAgilityPack来将HTML内容转换为PDF,但它无法保持任何CSS样式和格式。 虽然QuestPDF是为想要从头创建PDF文档的人提供的一个不错的选择,但HTML到PDF的转换并不是这个库的强项。
IronPDF是一个为.NET开发人员设计的强大PDF库,提供高级和全面的PDF功能。 专注于HTML到PDF的渲染,结合了高级PDF文档操作选项、加密和PDF/A合规性等附加功能,使其成为企业级应用程序的强大选择。
要安装IronPDF,请在Visual Studio中使用NuGet包管理器:
使用 NuGet 包管理器
在 Visual Studio 中打开项目。
右键单击解决方案资源管理器中的项目,选择 "管理 NuGet 包"。
搜索“IronPDF”并点击“安装”。
使用 NuGet 包管理器控制台:
Install-Package IronPdf
Install-Package IronPdf
IronPDF 提供了一个简单直接的 API 用于转换PDF的URLs. 这里有一个例子:
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("url.pdf");
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("url.pdf");
上面的代码示例演示了IronPDF如何轻松地将URL内容转换为PDF,只需几行代码。 正如您所见,它不仅转换了HTML,还转换了CSS样式和布局,确保输出的PDF保持原始格式的真实。 通过使用ChromePdfRenderer 渲染引擎,IronPDF 生成像素完美的 PDF 文档,在转换过程中不会丢失任何内容的原始质量。
如上所述,IronPDF是将HTML转换为PDF的强大选择,还可用于将其他文档类型转换为PDF。 它通过简洁、易于实现的代码块处理高质量的转换工作。
PDFsharp 简单易用,非常适合初学者或具有基本 PDF 需求的开发人员选择。 其过程式方法允许快速设置和执行任务,比如向PDF中添加文本、形状或图像。 然而,这确实需要一个外部库来处理HTML和URL到PDF的转换任务。
相反,QuestPDF 提供了更现代的方式,其流畅的API。 有网页或用户界面设计经验的开发人员会觉得它很直观,但新手在习惯以布局为中心的设计理念时可能会遇到一定的学习曲线。 但再次提及,它缺少处理HTML到PDF转换的内置工具。
IronPDF 提供了最简单的 HTML 转 PDF 转换体验和高级 PDF 功能。 其直观的API减少了实施的时间,并提供了完善的文档和示例。 IronPDF 可以将多种不同的文档类型转换为 PDF,例如我们在本文中看到的 URL 到 PDF 示例,且无需损失文档质量。
性能是一个关键因素,特别是对于需要动态生成PDF的应用程序。 PDFsharp 适合小型和简单的文档,但在处理大规模或复杂布局时表现不佳。
QuestPDF 在呈现动态且视觉吸引力的文档方面表现出色。 它经过优化,能够高效处理结构化布局。
IronPDF在性能和功能之间实现了极佳的平衡,特别是对于需要HTML渲染、CSS和JavaScript支持的应用程序。 它也非常擅长轻松处理企业级PDF任务。
为您的.NET项目选择合适的PDF库取决于您的具体需求。 如果您需要一个轻量级的开源工具来处理基本的PDF任务,PDFsharp是一个可靠的选择。 用于创建动态、视觉吸引力强的文档,QuestPDF以其现代化的方法脱颖而出。
然而,如果您需要高级功能、无缝的HTML到PDF转换以及企业级能力,IronPDF它所提供的。
通过了解每个库的优点和限制,您可以做出符合项目需求的明智决策。