在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
PDFreactor 和 IronPDF 为工程师提供了生成、操作、编辑、格式化和 打印 PDF 文档 从各种输入中提取数据。在 .NET 和 .NET Core 中工作,我们必须选择最适合我们的项目和要求的工具,而使用代码示例和演示教程总是非常有用的。
任何一位 .NET 开发人员都会告诉你,在项目启动之前都要进行大量的研究。有一句古老的格言说:使用正确的工具完成正确的工作。PDF 库也不例外。作为开发人员,您必须适当了解现有的库和工具。当然,并不是所有的工具或库都是一样的--有些工具或库有不同的优势,有些工具或库有比其他工具或库更多的弱点,但归根结底,使用最适合您和您公司的工具是您的特权,最重要的是,使用最适合您项目的工具是您的特权。
本文将比较 .NET 和 .NET Core 开发人员最常用的两个 PDF 库。这两个库是
对于任何比较文章来说,尽可能尝试比较好、坏、丑是件好事。遗憾的是,在当前的技术环境下,有些图书馆做得很不够,而另一些图书馆却做得很出色,发展得很好。技术发展日新月异,很难跟上时代的步伐。这不仅适用于第三方库创建者,也适用于开发者。要么吃掉,要么被吃掉,而且要快速适应。
让我们来看看这两种产品。
IronPDF 是用 C# 编写的用于 .NET 平台的商业级 PDF 生成库。其主要概念是通过 HTML、CSS、图像和 JavaScript 渲染 PDF,从而避免耗时的 PDF 生成 API。它同样适用于表单应用程序、服务器应用程序和服务、Web 应用程序、安全内联网、控制台应用程序、WPF 应用程序和 MVC 模式网站。IronPDF 兼容任何 .NET Framework 项目(从版本 4 起)和 .NET Core(从版本 2 起)。
IronPDF 的一些强大功能包括
2020 年的改进包括
许可证从 $749 开始。
C# 是各行各业最常用的编程语言之一。如果您正在寻找一款能与 C# 和 .NET 无缝协作的高质量 PDF 转换器,那么有了 PDFreactor,您就可以使用一款功能强大的工具,通过 C# 将 HTML 页面渲染为 PDF。对于需要从 HTML 高效创建 PDF 的 C# 用户来说,PDFreactor 是一款简单、快速、现代化的转换引擎。
PDFreactor 的功能
1.支持所有 HTML5 元素
2.使用最先进的 CSS3,如计算、媒体查询、框阴影、文本阴影、过滤器。转换、旋转、缩放 HTML + CSS 到 PDF 的元素。
3.将 JavaScript 驱动的布局转换为 PDF。
4.PDFreactor 支持创建符合可访问性指南的标记 PDF 文档。
5.PDFreactor 网络应用程序提供专业的打印功能,如 PDF/X、PDF/X-4p、基线网格和专色。PDF/A PDFreactor 允许轻松创建 PDF/A (1a、1b、2a、2b、2u、3a、3b 和 3u) 和 PDF/UA 兼容文件,用于电子文件的长期存档。
新的改进包括
许可证起价 2,950,00 美元。
接下来的几个步骤将生成一个 ASP.NET 网站:
接下来安装 IronPDF。
安装 IronPDF 有两种方法:
让我们仔细看看
通过 NuGet 安装 IronPDF 有三种方法,分别是
让我们逐一了解它们。
你可以通过 "项目菜单 "或在 "解决方案资源管理器 "中右键单击项目来访问 NuGet 包管理器。
选择后,浏览 IronPDF 软件包并安装,如下图所示:
使用接下来的几个步骤,通过开发人员命令提示符安装 IronPDF NuGet 包:
:ProductInstall
利用接下来的几个步骤,通过 NuGet 下载软件包:
安装 IronPDF 的第二种方法是直接从 IronPDF DLL 下载.
通过以下步骤在项目中引用该库:
按照上述相同步骤安装 PDFreactor。这通常用于在服务器端将 HTML 转换为 PDF,范围包括动态数据驱动文档 (报告、发票、表格、数据表) 用于电子分发复杂和高质量的 PDF 文件 (产品目录、营销资料、技术文件、期刊) 用于印刷和电子出版。
接下来的代码将创建 PDF 文档并打印其中的 HTML 字符串。
以下代码使用 IronPDF 直接从 HTML 字符串创建 PDF 文件。
private void HTMLString()
{
// Render any HTML fragment or document to HTML
var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>" };
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
private void HTMLString()
{
// Render any HTML fragment or document to HTML
var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>" };
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
Private Sub HTMLString()
' Render any HTML fragment or document to HTML
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>")
Renderer.RenderingOptions.TextFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
Dim OutputPath = "ChromePdfRenderer.pdf"
PDF.SaveAs(OutputPath)
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
End Sub
以下代码使用 PDFreactor 直接从 HTML 字符串创建 PDF 文件。
<script>
window.onload = async function() {
// Create new PDFreactor instance
var pdfReactor = new PDFreactor("https://cloud.pdfreactor.com/service/rest");
// Create a new PDFreactor configuration object
var config = {
// Specify the input document
document: "http://www.pdfreactor.com/product/samples/textbook/textbook.html",
}
// Render document and save result
try {
var result = await pdfReactor.convert(config);
document.getElementById("result").src = "data:application/pdf;base64," + result.document;
} catch (error) {
if (error instanceof PDFreactor.PDFreactorWebserviceError) {
document.body.innerHTML = "<h1>An Error Has Occurred</h1><h2>" + error.message + "</h2>";
}
}
}
</script>
<script>
window.onload = async function() {
// Create new PDFreactor instance
var pdfReactor = new PDFreactor("https://cloud.pdfreactor.com/service/rest");
// Create a new PDFreactor configuration object
var config = {
// Specify the input document
document: "http://www.pdfreactor.com/product/samples/textbook/textbook.html",
}
// Render document and save result
try {
var result = await pdfReactor.convert(config);
document.getElementById("result").src = "data:application/pdf;base64," + result.document;
} catch (error) {
if (error instanceof PDFreactor.PDFreactorWebserviceError) {
document.body.innerHTML = "<h1>An Error Has Occurred</h1><h2>" + error.message + "</h2>";
}
}
}
</script>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'(Of script) window.onload = async @function()
'{
' ' Create new PDFreactor instance
' var pdfReactor = New PDFreactor("https://cloud.pdfreactor.com/service/rest");
' ' Create a new PDFreactor configuration object
' var config = { document: "http://www.pdfreactor.com/product/samples/textbook/textbook.html"} try
' {
' var result = await pdfReactor.convert(config);
' document.getElementById("result").src = "data:application/pdf;base64," + result.document;
' }
' catch (@error)
' {
' if (@error instanceof PDFreactor.PDFreactorWebserviceError)
' {
' document.body.innerHTML = "<h1>An Error Has Occurred</h1><h2>" + @error.message + "</h2>";
' }
' }
' }
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' </script>
下一段代码将从 ASPX 页面创建 PDF 文件。
以下代码利用 IronPDF 从 ASPX 文件创建 PDF。
protected void Page_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
protected void Page_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
IronPdf.AspxToPdf.RenderThisPageAsPdf()
End Sub
PDFreactor 似乎不支持从 ASPX 网页创建 PDF。
使用自定义加载 URL
网络登录凭据
用户代理
代理服务器
Cookie
HTTP 标头
层叠样式表 (CSS) 描述了 HTML 文件的外观和格式。它利用选择器和属性在一个中心位置设置整个网页或网站的格式。CSS3 是最新的标准。CSS3 包括
模块包括
选择器
方框模型
文本效果
二维变换
三维变换
背景
使用 IronPDF 时,您可以选择 CSS 样式的呈现位置:屏幕或打印。在处理屏幕时,您必须了解响应速度。为了区分屏幕或打印机,您可以使用下面这行快速代码:
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
//or
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
//or
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
响应式网页设计能让网页和网站在所有设备上都看起来美观大方。响应式网页会根据不同的屏幕尺寸和视口自动调整。在使用响应式设计和 Bootstrap 等框架时,IronPDF 可以设置 ViewPortWidth 和 ViewPortHeight 属性,从而以编程方式控制视口,并控制将哪个版本的响应式网站渲染为 PDF。
通过以下代码,您可以使用 IronPDF 以编程方式设置响应视口的大小。
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
//Choose screen or print CSS media
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
//Set the width of the responsive virtual browser window in pixels
Renderer.ViewPortWidth = 1280;
// Render an HTML document or snippet as a string
Renderer.RenderHTMLFileAsPdf("Assets/Responsive.html");
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
//Choose screen or print CSS media
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
//Set the width of the responsive virtual browser window in pixels
Renderer.ViewPortWidth = 1280;
// Render an HTML document or snippet as a string
Renderer.RenderHTMLFileAsPdf("Assets/Responsive.html");
Imports IronPdf
Private Renderer As New IronPdf.ChromePdfRenderer()
'Choose screen or print CSS media
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
'Set the width of the responsive virtual browser window in pixels
Renderer.ViewPortWidth = 1280
' Render an HTML document or snippet as a string
Renderer.RenderHTMLFileAsPdf("Assets/Responsive.html")
另一项强大的功能是创建 HTML 模板,并以此为基础创建类似的 PDF 文档。下面是一个小例子:
var HtmlTemplate = "<p>[[NAME]]</p>";
var Names = new [] { "John", "James", "Jenny" };
foreach (var name in Names) {
var HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name);
var Pdf = Renderer.RenderHtmlAsPdf(HtmlInstance);
Pdf.SaveAs(name + ".pdf");
}
var HtmlTemplate = "<p>[[NAME]]</p>";
var Names = new [] { "John", "James", "Jenny" };
foreach (var name in Names) {
var HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name);
var Pdf = Renderer.RenderHtmlAsPdf(HtmlInstance);
Pdf.SaveAs(name + ".pdf");
}
Dim HtmlTemplate = "<p>[[NAME]]</p>"
Dim Names = { "John", "James", "Jenny" }
For Each name In Names
Dim HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name)
Dim Pdf = Renderer.RenderHtmlAsPdf(HtmlInstance)
Pdf.SaveAs(name & ".pdf")
Next name
根据 PDFreactor 软件许可协议一个 PDFreactor 许可证只能在一台物理机、虚拟机或隔离的软件容器上使用。因此,每台生产机器需要一个许可证。如果您打算在非商业基础上使用 PDFreactor,可以申请免费的个人许可证 这里.
IronPDF 是一款公开的商业 C# PDF 库.它的开发是免费的,可通过发送电子邮件至 developers@ironpdf.com 联系工程团队进行为期 30 天的部署试用。如果您想了解更多经济实惠的许可选项,请访问 IronPDF 许可证.
IronPDF 是一个受支持的、以生产力为先的 .NET 库,它可以
PDFreactor 是一款免费的 HTML 至 PDF 转换器 供私人、非商业和非专业使用。
IronPDF 解决了在应用程序中添加 PDF 生成功能的难题,并能自动将格式化的文档转化为 PDF。所有产品均可在 IDE 内免费开发和测试,无时间限制,并可通过 NuGet 安装。它可通过 .NET 将网页表单、本地 HTML 页面和其他网页转换为 PDF,并允许用户下载文档、通过电子邮件发送文档或将文档存储到云中。
PDFreactor 是一款强大的格式化处理器,可使用 CSS 定义页面布局和样式,从 HTML 5 文档进行服务器端 PDF 转换。您可以动态生成报告、发票、报表等 PDF 文档。通过实施 W3C 的分页媒体和打印规范,PDFreactor 可以通过 CSS 对分页输出进行很好的控制。要在生产环境中使用 PDFreactor,需要相应的许可证。