产品比较

Jsreport 与 IronPDF 的比较

Chipego
奇佩戈-卡琳达
2023年十二月12日
分享:

1.导言

在数字时代,PDF(便携式文档格式)已成为日常必需品,对于以可靠、一致的格式存储和共享信息至关重要。 无论是将数据属性转换为格式整齐的 PDF,还是制作专业发票,开发人员通常都会求助于 IronPDF 和本地 JSReport Studio 等功能强大的 C# 客户端库,而不是用于服务器开发的 Phantom PDF。

IronPDF 提供了在 .NET 框架中将 HTML 转换为 PDF 的最佳性能,而 JSReport SDK 提供了动态报告解决方案,重点在于使用本地 JSReport 服务器和配置文件的灵活性和自定义。两个库都带来了独特的解决方案,满足了在 PDF 生成和操作领域开发人员的不同需求。

2.使用 JSReport Server .NET

JSReport SDK .NET 是一个为 .NET 应用程序提供的高级报告解决方案,特别是针对 ASP.NET Core 环境进行了优化。 它的与众不同之处在于可以直接从 HTML 和 JavaScript 将视图输出转换为 PDF、Excel、DOCX 和 CSV 等各种格式。 利用 ASP.NET MVC 引擎(如 Razor),使用报表服务器生成报表,可促进这一功能的实现。

JSReport .NET 提供了一整套默认的本地扩展功能,包括日程安排、模板版本化、子报告、用户管理、导入/导出模板和备份,增强了其在各种业务场景中的通用性和适用性。 它还支持广泛的 API,包括 REST API、CLI 或 SDK,几乎可以从任何地方渲染报告。

2.1 主要功能

2.1.1 ASP.NET Core 集成

JSReport SDK 提供了一个专门用于 ASP.NET Core 应用程序的 jsreport.AspNetCore NuGet 包。 这包括能够将 MVC 视图输出转换为所需格式的中间件过滤器,将视图用作 HTML 生成器,将 JSReport 服务器用作输出转换器。

2.1.2 灵活设置

设置包括使用像jsreport.AspNetCorejsreport.Localjsreport.Binary这样的包。 这些辅助类支持通过jsreport.Client连接到本地JSReport实例或远程实例。

2.1.3 输出转换

开发人员可以轻松指定用于输出转换的 JSReport 配方。 例如,使用MiddlewareFilterChromePdf配方,ASP.NET过滤器捕获视图的呈现结果并将其转换为PDF格式。 该功能对于基于 ASP.NET 的应用程序尤其有用。

2.1.4 远程实例兼容性

JSReport .NET 可与远程 JSReport 实例无缝集成。 在协调的 Docker 环境中,JSReport 在单独的容器而不是一个容器中运行,这一点尤其有利。 这种集成便于使用 Docker-compose 等工具协调 JSReport 和 .NET Core 应用程序。

2.1.5 高级响应处理

OnAfterRender 钩子允许操纵响应标头和其他属性。 该钩子还可用于将输出存储到文件中,从而灵活处理报告生成过程中的响应。

2.1.6 自定义页眉

JSReport .NET 可通过部分视图指定自定义 PDF 标头。 这些标题可在运行时与 PDF 主要内容一起呈现,为报告生成提供更多自定义选项。

2.1.7 不使用 MVC 视图进行渲染

该框架支持从原始 HTML 渲染报告,而不仅仅是 MVC 视图。 这一功能使报告生成过程具有更大的灵活性,使开发人员能够直接呈现 HTML 内容。

3.IronPDF

IronPDF 是一个适用于 .NET 应用程序的实用库,它的作用就是让 PDF 的处理变得更简单。 它主要的功能之一是将HTML转换为PDF,如果您需要从网页生成报告或发票,这是非常理想的。 此外,不管是在服务器端还是客户端,它的运行速度都非常快,因此是一个非常适合商业项目和个人使用的库。

IronPDF 适合多种不同的 .NET 环境,如 ASP.NET、MVC、Windows 窗体和 WPF。 它能与 .NET Core 和 Framework 平滑集成。 它还能与 Azure 和其他云服务协同工作,这对于基于云的应用程序开发来说是一大优势。

3.1 IronPDF 的主要功能

3.1.1 HTML 转换为 PDF

IronPDF 是将 HTML 转换为 PDF 文档的完美工具。 它能完美处理 HTML、CSS、JavaScript 和图像,确保您的网页内容在最终 PDF 中看起来恰到好处。 转换过程中会保留原始 HTML 的布局和样式。

3.1.2 ASP.NET 集成

与 ASP.NET 无缝集成,让你无需大量编码即可将 ASPX 页面转换为 PDF。 这对利用现有网络应用程序制作 PDF 非常方便。

3.1.3 编辑和操作

IronPDF 允许您编辑现有PDF文件,例如添加文本、图像和页面或合并多个PDF。 编辑功能对用户非常友好,因此你不需要成为 PDF 专家也能使用它们。 您还可以在PDF中添加注释附件大纲和书签

3.1.4 填表和提取

IronPDF支持填写和提取PDF表单中的数据,这对于处理表单的应用程序至关重要。 IronPDF 让整个表单数据管理过程变得更加顺畅。 它还能处理不同类型的 PDF 表单,这增加了它的灵活性。

3.1.5 安全功能

IronPDF 具有密码保护和 PDF 文档权限设置等安全功能,这些功能对于保护敏感信息的安全至关重要。 它还具有加密和解密功能,为您的PDF添加了另一层安全保护

3.1.6 可定制的渲染

您可以对PDF的渲染进行大量控制,例如设置自定义页眉和页脚、调整页面边距以及选择特定的HTML部分进行转换。 这种定制化程度可确保您的 PDF 文件按您的要求制作。

3.1.7 高级 PDF 功能

IronPDF 支持PDF/A 合规数字签名。 它还具有 OCR 功能,这意味着它可以将扫描的文档和图像转换成 PDF 文件,供您搜索和编辑。 这些功能非常适合更复杂的项目。

3.1.8 易于部署

设置 IronPDF 非常简单--无需额外安装或依赖。 它是轻量级的,因此不会降低应用程序的性能。 此外,它一直在更新,以跟上 .NET 技术的最新发展,为您提供不会过时的 PDF 解决方案。

4.创建 .NET 项目

4.1 启动新项目

打开 Visual Studio,点击 "创建新项目 "按钮启动一个新项目。

Jsreport 与 IronPDF 的比较:图 1 - 创建项目

然后,选择 "控制台应用程序"、".NET Core 应用程序 "或其他选项。

Jsreport与IronPDF对比:图2 - 独立项目-控制台应用程序

4.2 设置项目

您需要为项目命名。 找到项目名称文本框,输入您想要的名称。 此外,请选择项目的保存路径。 输入这些详细信息后,点击 "创建 "按钮继续。

Jsreport 与 IronPDF 的比较:图 3 - 项目配置

4.3 选择 .NET Framework

下一步是为项目选择所需的 .NET Framework。 这种选择取决于项目的要求和兼容性。 然后,点击 "创建 "按钮。

Jsreport 和 IronPDF 的比较:图 4 - 选择框架

5.安装 IronPDF 库

5.1 使用 NuGet 软件包管理器

要使用 Visual Studio NuGet 包管理器安装 IronPDF,请按照以下步骤操作:

  • 在 Visual Studio 中打开项目。
  • 单击 "工具 "菜单,选择 "NuGet 包管理器",然后选择 "管理解决方案的 NuGet 包"。

    Jsreport与IronPDF的比较:图5 - NuGet包管理器

  • 在 NuGet 软件包管理器中,点击 "浏览 "选项卡。
  • 搜索 "IronPDF"。
  • 找到 IronPDF 软件包后,选择它并点击 "安装"。

    Jsreport与IronPDF的比较:图6 - 安装IronPDF

  • 按照提示完成安装。

5.2 使用 Visual Studio 命令行

如果您喜欢使用命令行,可以在 Visual Studio 中安装 IronPDF,方法如下:

  • 打开 Visual Studio。
  • 移动到 "工具 "菜单,悬停在 "NuGet 包管理器 "上,然后从侧边菜单中选择 "包管理器控制台"。
  • 在控制台中键入以下命令
    Install-Package IronPdf
  • 按 Enter 键执行命令,等待安装完成。

    Jsreport 与 IronPDF 的比较:图 7 - IronPDF 安装

5.3 从 NuGet 网页直接下载

IronPDF 也可以直接从 NuGet 网站下载:

  • 访问 NuGet 官方网站。
  • 使用搜索栏查找 IronPDF 软件包。

    Jsreport 和 IronPDF 的对比:图 8 - IronPDF 包

  • IronPDF 软件包页面,您将看到直接下载软件包的选项。
  • 下载 .nupkg 文件并手动添加到项目中。

    Jsreport与IronPDF的对比:图9 - 下载.nupkg

6.安装 JSReport

6.1 在 Visual Studio 中使用 NuGet 包管理器

要使用 Visual Studio 的 NuGet 包管理器运行 JSReport,请进入 "工具 "菜单并选择 "管理 NuGet 包"。 这将打开 NuGet 包管理器界面。 在 NuGet 包管理器中,您可以根据项目需求搜索jsreport.Localjsreport.Binary

Jsreport和IronPDF之间的比较:图10 - jsreport.Binary

这些是将 JSReport 集成到 .NET 应用程序中的主要软件包。 找到合适的软件包后,点击 "安装 "将其添加到项目中。 此过程将自动下载并在项目中引用软件包,使其可以随时使用。

6.2 使用 NuGet 软件包管理器控制台

您也可以使用 Visual Studio 中的 NuGet 包管理器控制台安装 JSReport。 为此,请从 "工具 "菜单中选择 "NuGet 包管理器",然后选择 "包管理器控制台",打开 NuGet 包管理器控制台。

Jsreport与IronPDF的比较:图11 - 包管理器控制台

在控制台中,您需要运行特定命令来安装 JSReport 软件包。 如果要安装jsreport.Local包,可以使用命令Install-Package jsreport.Local。 对于jsreport.Binary软件包,命令将是Install-Package jsreport.Binary。 在软件包管理器控制台中执行这些命令将下载相应的 JSReport 软件包并将其添加到项目中。

Jsreport 与 IronPDF 的比较:图 12 - 安装 jsreport.Local

7.IronPDF 和 JSReport 中 HTML 转 PDF 功能的比较

7.1 IronPDF 的 HTML 至 PDF 转换功能

IronPDF 是将 HTML 转换为 PDF 的最佳程序库。 它以其易用性和高性能脱颖而出,成为开发人员的首选。 它支持 CSS 渲染、JavaScript 执行以及自定义页眉和页脚等高级功能,进一步增强了从 HTML 源生成高质量 PDF 的能力。 IronPDF 提供 3 种将 HTML 转换为 PDF 的方法:

  1. 将 HTML 字符串转换为 PDF

  2. HTML 文件转 PDF

  3. URL 转 PDF

    让我们逐一讨论这些功能。

7.1.1 HTML 字符串转 PDF

此功能可让您直接从字符串转换 HTML 内容。 在应用程序中动态生成或修改 HTML 内容时,这一点尤其有用。 您可以将 HTML 字符串传递给 IronPDF,它就会将其渲染为 PDF。

using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
string htmlString = @"
            <html>
                <head>
                    <title>Example HTML</title>
                </head>
                <body>
                    <h1>Hello, World!</h1>
                    <p>This is an HTML string converted to PDF using IronPDF.</p>
                </body>
            </html>";
// Convert HTML string to PDF
var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);
pdfDocument.SaveAs("HtmlStringToPdf.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
string htmlString = @"
            <html>
                <head>
                    <title>Example HTML</title>
                </head>
                <body>
                    <h1>Hello, World!</h1>
                    <p>This is an HTML string converted to PDF using IronPDF.</p>
                </body>
            </html>";
// Convert HTML string to PDF
var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);
pdfDocument.SaveAs("HtmlStringToPdf.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
IronPdf.License.LicenseKey = "Your-License-Key"
Dim htmlString As String = "
            <html>
                <head>
                    <title>Example HTML</title>
                </head>
                <body>
                    <h1>Hello, World!</h1>
                    <p>This is an HTML string converted to PDF using IronPDF.</p>
                </body>
            </html>"
' Convert HTML string to PDF
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlString)
pdfDocument.SaveAs("HtmlStringToPdf.pdf")
$vbLabelText   $csharpLabel

下面是输出的 PDF 文件:

Jsreport与IronPDF的比较:图13 - 输出

7.1.2 HTML 文件转 PDF

使用这种方法,您可以将现有的 HTML 文件转换为 PDF。 当您的静态 HTML 文件需要以 PDF 格式展示或分发时,该功能非常有用。 您只需提供 HTML 文件的路径,IronPDF 就会处理转换工作。

using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
var pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html");
pdfDocument.SaveAs("Invoice.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
var pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html");
pdfDocument.SaveAs("Invoice.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
IronPdf.License.LicenseKey = "Your-License-Key"
Dim pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html")
pdfDocument.SaveAs("Invoice.pdf")
$vbLabelText   $csharpLabel

下面是一张 HTML 发票的 PDF 输出文件:

1

7.1.2 URL 转 PDF

该功能可通过 URL 将整个网页转换为 PDF。 它可以非常方便地捕捉网页的当前状态,包括样式、图像和其他资源。 IronPDF 将从给定的 URL 加载网页并将其转换为 PDF 文档,尽可能地复制网页布局和内容。

using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;
//https url
var pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/");
pdfDocument.SaveAs("UrlToPdf.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;
//https url
var pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/");
pdfDocument.SaveAs("UrlToPdf.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
IronPdf.License.LicenseKey = "Your-License-Key"
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2
'https url
Dim pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/")
pdfDocument.SaveAs("UrlToPdf.pdf")
$vbLabelText   $csharpLabel

下面是使用上述逻辑生成的 Microsoft .NET 网站 PDF。

Jsreport与IronPDF的比较:图14 - 微软HTTP网站PDF

7.2 JSReport C# HTML 转换为 PDF

在 JSReport 中将 HTML 转换为 PDF 的过程涉及多个步骤,通常包括设置 JSReport 服务器或使用其在线 API。 典型的 C# 实现可能如下所示

using JsReport.AspNetCore;
using JsReport.Types;
using System.Threading.Tasks;
public async Task<IActionResult> GeneratePdf()
{
    var report = new LocalReporting()
                 .UseBinary(JsReportBinary.GetBinary())
                 .AsUtility()
                 .Create();
    var reportResult = await report.RenderAsync(new RenderRequest()
    {
        Template = new Template()
        {
            Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
            Engine = Engine.None,
            Recipe = Recipe.ChromePdf
        },
        Options = new RenderOptions()
        {
            Debug = new DebugOptions() { Preview = true }
        }
    });
    var stream = new MemoryStream();
    reportResult.Content.CopyTo(stream);
    stream.Position = 0;
    return File(stream, "application/pdf", "Report.pdf");
}
using JsReport.AspNetCore;
using JsReport.Types;
using System.Threading.Tasks;
public async Task<IActionResult> GeneratePdf()
{
    var report = new LocalReporting()
                 .UseBinary(JsReportBinary.GetBinary())
                 .AsUtility()
                 .Create();
    var reportResult = await report.RenderAsync(new RenderRequest()
    {
        Template = new Template()
        {
            Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
            Engine = Engine.None,
            Recipe = Recipe.ChromePdf
        },
        Options = new RenderOptions()
        {
            Debug = new DebugOptions() { Preview = true }
        }
    });
    var stream = new MemoryStream();
    reportResult.Content.CopyTo(stream);
    stream.Position = 0;
    return File(stream, "application/pdf", "Report.pdf");
}
Imports JsReport.AspNetCore
Imports JsReport.Types
Imports System.Threading.Tasks
Public Async Function GeneratePdf() As Task(Of IActionResult)
	Dim report = (New LocalReporting()).UseBinary(JsReportBinary.GetBinary()).AsUtility().Create()
	Dim reportResult = Await report.RenderAsync(New RenderRequest() With {
		.Template = New Template() With {
			.Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
			.Engine = Engine.None,
			.Recipe = Recipe.ChromePdf
		},
		.Options = New RenderOptions() With {
			.Debug = New DebugOptions() With {.Preview = True}
		}
	})
	Dim stream = New MemoryStream()
	reportResult.Content.CopyTo(stream)
	stream.Position = 0
	Return File(stream, "application/pdf", "Report.pdf")
End Function
$vbLabelText   $csharpLabel

您还可以从以下链接中找到JSReport .NET的示例。 下面是发票 PDF 报告的输出示例。

Jsreport 与 IronPDF 的比较:图 15 - 发票输出 PDF

8.灵活性和高级功能

8.1 IronPDF 的高级功能和自定义功能

IronPDF 以其先进的功能和高度的定制性脱颖而出,可满足各种 PDF 操作需求。 主要的高级功能包括

PDF/A 合规性:它支持 PDF/A 格式,这对长期归档和符合行业标准至关重要。 这种合规性对于法律、金融和政府部门尤为重要,因为在这些部门,文档的长期完整性至关重要。

using IronPdf;
// Create a PdfDocument object or open any PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");
// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3);
using IronPdf;
// Create a PdfDocument object or open any PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");
// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3);
Imports IronPdf
' Create a PdfDocument object or open any PDF File
Private pdf As PdfDocument = PdfDocument.FromFile("wikipedia.pdf")
' Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3)
$vbLabelText   $csharpLabel

编辑、合并和拆分PDF:IronPDF允许编辑现有的PDF,将多个PDF合并为一个,以及将PDF拆分为单独的文档。 这一功能在需要将大型文件拆分以便于分发或需要将不同文件的不同部分合并时特别有用。

安全功能:包括密码保护、加密以及设置用户权限的能力等强大的安全功能。 IronPDF 支持对 PDF 文件进行加密,从而增加了一层额外的安全保护,防止内容被篡改或复制。

using IronPdf;
// Open a PDF File
var pdfDoc = PdfDocument.FromFile("invoice.pdf");
// The following code makes a PDF read only and will disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption();
pdfDoc.SecuritySettings.AllowUserAnnotations = false;
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = false;
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdfDoc.SecuritySettings.AllowUserFormData = false;
// Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen"; // password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare"; // password to open the pdf
pdfDoc.SaveAs("InvoiceProtected.pdf");
using IronPdf;
// Open a PDF File
var pdfDoc = PdfDocument.FromFile("invoice.pdf");
// The following code makes a PDF read only and will disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption();
pdfDoc.SecuritySettings.AllowUserAnnotations = false;
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = false;
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdfDoc.SecuritySettings.AllowUserFormData = false;
// Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen"; // password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare"; // password to open the pdf
pdfDoc.SaveAs("InvoiceProtected.pdf");
Imports IronPdf
' Open a PDF File
Private pdfDoc = PdfDocument.FromFile("invoice.pdf")
' The following code makes a PDF read only and will disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption()
pdfDoc.SecuritySettings.AllowUserAnnotations = False
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = False
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdfDoc.SecuritySettings.AllowUserFormData = False
' Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen" ' password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare" ' password to open the pdf
pdfDoc.SaveAs("InvoiceProtected.pdf")
$vbLabelText   $csharpLabel

页眉和页脚控制:开发人员可以轻松地将自定义页眉和页脚添加到他们的PDF文档中,这个功能对于制作专业外观的报告、发票和其他商务文档至关重要。 这包括添加页码、日期和自定义文本的功能。

PDF 转换为图像:IronPDF 允许将 PDF 页面转换为图像。 该功能对于需要在网络应用程序中将 PDF 内容显示为图像或生成缩略图的情况特别有用。

using IronPdf;
using IronSoftware.Drawing;
var pdf = PdfDocument.FromFile("Example.pdf");
// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");
// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);
// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
using IronPdf;
using IronSoftware.Drawing;
var pdf = PdfDocument.FromFile("Example.pdf");
// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");
// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);
// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
Imports IronPdf
Imports IronSoftware.Drawing
Private pdf = PdfDocument.FromFile("Example.pdf")
' Extract all pages to a folder as image files
pdf.RasterizeToImageFiles("C:\image\folder\*.png")
' Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles("C:\image\folder\example_pdf_image_*.jpg", 100, 80)
' Extract all pages as AnyBitmap objects
Dim pdfBitmaps() As AnyBitmap = pdf.ToBitmap()
$vbLabelText   $csharpLabel

8.2 JSReport .NET 高级功能和可扩展性

JSReport .NET 以其先进的功能和可扩展性而闻名,是报表生成的多功能工具。 其主要功能包括

动态报告生成:支持多种模板引擎,包括Handlebars和EJS,方便进行复杂且灵活的报告设计。 这种多引擎兼容性使设计具有广泛的可能性,可满足创建报告的不同要求和复杂性。

var report = new LocalReporting()
    .UseBinary(JsReportBinary.GetBinary())
    .RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport"))
    .KillRunningJsReportProcesses()
    .Configure(cfg => cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory())
    .AsUtility()
    .Create();
var reportResult = await report.RenderAsync(new RenderRequest()
{
    Template = new Template()
    {
        Content = "{{{message}}}",
        Engine = Engine.Handlebars,
        Recipe = Recipe.ChromePdf
    },
    Data = new
    {
        message = "PDF Generation with JSReport .NET"
    }
});
var report = new LocalReporting()
    .UseBinary(JsReportBinary.GetBinary())
    .RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport"))
    .KillRunningJsReportProcesses()
    .Configure(cfg => cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory())
    .AsUtility()
    .Create();
var reportResult = await report.RenderAsync(new RenderRequest()
{
    Template = new Template()
    {
        Content = "{{{message}}}",
        Engine = Engine.Handlebars,
        Recipe = Recipe.ChromePdf
    },
    Data = new
    {
        message = "PDF Generation with JSReport .NET"
    }
});
Dim report = (New LocalReporting()).UseBinary(JsReportBinary.GetBinary()).RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport")).KillRunningJsReportProcesses().Configure(Function(cfg) cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory()).AsUtility().Create()
Dim reportResult = Await report.RenderAsync(New RenderRequest() With {
	.Template = New Template() With {
		.Content = "{{{message}}}",
		.Engine = Engine.Handlebars,
		.Recipe = Recipe.ChromePdf
	},
	.Data = New With {Key .message = "PDF Generation with JSReport .NET"}
})
$vbLabelText   $csharpLabel

模板引擎:JSReport .NET 具有报告生成的调度和自动化功能,非常适合满足日常或每月总结等定期报告需求。 该功能可确保及时交付报告,并可与业务工作流集成,实现事件触发式报告。

通过自定义脚本扩展性:JSReport C#允许通过自定义脚本扩展其能力,从而增强功能,例如自定义数据处理或专门格式化。 这种可扩展性对于创建符合特定业务逻辑和数据操作要求的报告至关重要。

9.支持

9.1 IronPDF 文档的质量与可用性

IronPDF的文档全面且用户友好,适合初学者和有经验的开发人员。 它包括详细的指南、API参考和大量代码示例,让开发者更容易理解和实现库在多种语言(如C#和Node)中的功能。

该文档结构良好,定期更新,反映了最新功能和最佳实践。 此外,IronPDF的网站提供了快速入门指南和常见问题解答,这些对于初次在.NET环境中进行PDF操作的用户特别有帮助。

IronPDF 还提供了一个在线游乐场,您可以在不下载其代码的情况下在线试用 IronPDF 功能。 通过以下链接进行探索。

9.1.1 支持选项

IronPDF提供多种支持选项,包括一个专门的支持团队来处理查询和技术问题。 他们提供电子邮件支持,并在开发者论坛中积极参与,提供解决方案和建议。您还可以通过网站上的实时支持选项联系实时支持代理。

9.2 JSReport .NET 文档的质量和可用性

JSReport .NET 以其广泛且维护良好的文档感到自豪。 该文档涵盖了从基本设置到高级使用场景的广泛主题,包括代码片段和实施示例。 它的组织逻辑清晰,便于浏览和查找相关信息。 在线资源还包括全面的API参考,确保开发人员可以获取关于工具功能的详细信息。

9.2.1 支持选项

在支持方面,JSReport .NET 提供了多种选择。 他们有一个专门的支持团队,可以通过电子邮件联系,而且他们在GitHub上保持活跃状态,提供一个报告问题和功能请求的平台。

10.许可模式

10.1 IronPDF的许可证

Jsreport与IronPDF的比较:图16 - 许可

IronPDF 提供三种不同的定价选项,以满足不同规模的使用和预算需求:

Lite Edition:售价$749,为云部署的一次性费用。 它专为较小的项目或刚开始进行PDF处理的团队设计。

专业版:售价为$1,499,也是一次性费用用于云使用,该版本适合需要更高级功能和能力的专业开发人员。

无限版:最全面的套餐,售价为2,999美元,是用于云部署的一次性费用。 它非常适合大规模企业使用,提供广泛的功能且没有使用限制。

10.2 JSReport .NET 许可证

Jsreport 与 IronPDF 的比较:图 17 - JSReport 许可证

JSReport .NET 提供灵活的许可选项,包括基于订阅和永久许可:

免费许可证:提供一个功能齐全的实例,最多限制使用5个报告模板。 它不需要许可证密钥,适用于小型项目或评估目的。

企业订阅:定价为每年395美元,此计划提供一个全功能的单一JSReport实例,无限制并包含更新。 它非常适合需要强大报告解决方案的个体企业。

企业级订阅:每年$1,295,此计划最适合大规模部署,提供一个无限实例的有效许可证密钥。 此计划包括更新且无需版税,适合运行多个实例或将其作为另一产品部署给多个客户的组织使用。

11.结论

总之,虽然IronPDF和JSReport .NET在各自的领域中都很有价值,但由于IronPDF具有全面的PDF操作能力,它略占优势。 它在PDF/A兼容性、高级编辑和安全功能等方面表现出色,使其成为.NET环境中处理详细PDF的更多功能的工具。 JSReport .NET在动态报告生成和模板方面的优势使其在报告中心任务中非常有效。 然而,对于大多数需要详细和多样化的PDF处理和操作的场景,IronPDF显得更具优势。

IronPDF 提供免费的开发者许可证及免费试用。 Iron Software提供了一个名为Iron Suite的综合软件包。该套件包括IronBarcodeIronXLIronQRIronOCRIronPDFIronWebScraper,以2个软件的价格提供,为寻求广泛功能的开发者增加了显著的价值。

最终,两者之间的选择将取决于项目或开发者的具体需求和环境。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
IronPDF 与 DinktoPdf 的比较
下一步 >
在 C# 中使用 ITextSharp 和 IronPDF 创建 PDF 的对比