跳至页脚内容
使用IRONPDF

如何选择适合的PDF SDK for .NET in C#

许多寻找 PDF SDK 的.NET开发人员都会遇到同样的问题:库需要大量的设置,许可层级不透明,而且 API 显然是围绕 PDF 规范而不是开发人员的人体工程学设计的。 IronPDF是一个.NET PDF 库,旨在消除这种摩擦。 它通过一个可在.NET Framework、 .NET Core和.NET 10 上运行的NuGet包提供 PDF 创建、编辑、表单处理和文档安全功能。

立即开始免费试用,加入 NASA、特斯拉和 3M 等公司团队的行列,他们都依赖IronPDF来管理文档工作流程。

选择.NET PDF SDK 时需要考虑哪些标准?

选择用于生产环境的 PDF 库需要权衡各种利弊,而简单的NuGet安装测试无法揭示这些弊端。 有四个标准能够始终区分合格的库和可用于生产的库。

渲染精度和HTML引擎质量

最重要的选择是该库使用真正的浏览器引擎(Chromium 或 WebKit)还是​​自定义的 HTML 到 PDF 渲染器。 自定义渲染器支持 CSS2 子集——基本排版和浮动有效,但 flexbox、CSS Grid 和 JavaScript 渲染的内容失败。 基于 Chromium 的引擎能够像 Chrome 一样精确地渲染 HTML,因此现有的Razor视图、报表模板和客户端JavaScript无需手动调整布局即可生成准确的输出。 为了测试渲染准确性,渲染一个使用 CSS Grid 和 JavaScript 生成的内容的文档; CSS 支持有限的库会错位元素或回退到无样式输出。

跨平台和 Linux 容器支持

.NET PDF SDK 必须在 Linux 上运行,而无需 Microsoft Office 或 COM 自动化。 将 HTML 渲染委托给 Word 互操作的库无法在 Linux Docker 容器中运行。 基于 Chromium 的库将渲染引擎作为原生二进制文件提供,在 Debian 或 Ubuntu 主机上只需要标准系统软件包(fontconfig)。 .NET文档中关于跨平台部署的内容涵盖了面向 Linux 或 Alpine Docker 镜像时相关的运行时标识符约定。

ASP.NET Core中的线程安全性和并发性

许多 PDF 库仅在脚注中记录线程安全性。 对于通过 HTTP 请求生成 PDF 的ASP.NET Core应用程序来说,这一点至关重要。 IronPDF 的 ChromePdfRenderer 不是线程安全的——每个并发任务都必须拥有自己的实例。 使用 Parallel.ForEach,每次迭代使用一个渲染器并设置并发限制,可以避免争用,并且符合异步和多线程操作指南中的指导。 对于批量作业,每个工作线程一个渲染器,其数量与 CPU 核心数呈线性关系。

许可模式调整

许可结构会对规模化的总拥有成本产生影响。 按开发者数量计费的许可证(IronPDF、Syncfusion)根据构建和部署应用程序的开发者数量收费。 AGPL 许可证(iText Core)要求分发应用程序源代码,除非购买商业许可证。 麻省理工学院 许可证(QuestPDF、PDFsharp)不施加任何分发限制,但不提供商业支持。 对于需要长期存档的受监管环境,符合ISO 19005 PDF/A 标准与许可模式是不同的要求——需要单独验证。

用例决策指南

如果主要需求是将现有的 HTML 模板或Razor视图转换为 PDF,那么基于 Chromium 的库是正确的选择。为 Web 完成的布局工作可以直接转换为 PDF,无需单独的设计流程。

如果要求是根据数据生成结构化文档而无需任何 HTML 模板,QuestPDF(麻省理工学院 许可)对于小批量内部工具来说是一个合理的选择。 它不支持 HTML 输入,也不能读取或编辑现有的 PDF 文件,但它消除了对 Chromium 运行时的依赖。

如果要求是操作现有的 PDF 文件——合并、拆分、编辑或签署其他系统生成的文档——大多数商业.NET PDF 库都能很好地处理这种情况。 区别在于许可成本和 API 的易用性,而不是渲染能力。

如何在.NET项目中安装IronPDF ?

通过NuGet包管理器将IronPDF添加到项目中只需不到一分钟。 在 Visual Studio 中打开软件包管理器控制台并运行:

PM> Install-Package IronPdf
PM> Install-Package IronPdf
SHELL

或者,通过NuGet GUI 搜索 IronPdf 来添加该包。 该软件包面向.NET Standard 2.0,因此可与.NET Framework 4.6.2 及更高版本、 .NET Core 2.0 及更高版本以及.NET 10 及之前的每个现代.NET版本配合使用。

安装完成后,请在渲染前应用许可证密钥。 如需评估,请在应用程序启动时调用 IronPdf.License.LicenseKey = "IRONPDF-TRIAL-KEY";,或使用IronPDF网站提供的免费试用许可证。开发期间在本地运行库无需许可证密钥。

IronPDF提供了一个预构建的 Chromium 引擎,作为原生二进制文件提供。 引擎首次在新机器上初始化时,会将运行时提取到临时文件夹,这需要几秒钟时间。 后续调用速度很快。在 Linux 和 Docker 上,请确保已安装 libgdiplus 和字体包——Linux 部署指南涵盖了特定发行版的要求。

如何在 C# 中从 HTML 创建 PDF?

HTML 转 PDF 是.NET PDF SDK 工作流程中最常见的起点。 IronPDF使用基于 Chromium 的渲染引擎将 HTML 字符串、本地文件或实时 URL 转换为像素精确的 PDF,保留 CSS3 布局、Google 字体和 JavaScript 渲染的内容。

using IronPdf;

// Apply license key (omit for trial watermarked output)
// IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

var renderer = new ChromePdfRenderer();

// Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
renderer.RenderingOptions.MarginRight = 15;

// Render an HTML string to PDF
string htmlContent = @"
    <html>
    <head><style>body { font-family: Arial; } h1 { color: #333; }</style></head>
    <body>
        <h1>Customer Registration</h1>
        <p>Form generated on: <span id='date'></span></p>
        <form>
            <label>Full Name: <input type='text' name='name' /></label><br/>
            <label>Email: <input type='email' name='email' /></label>
        </form>
        <script>document.getElementById('date').textContent = new Date().toLocaleDateString();</script>
    </body>
    </html>";

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("registration-form.pdf");
using IronPdf;

// Apply license key (omit for trial watermarked output)
// IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

var renderer = new ChromePdfRenderer();

// Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
renderer.RenderingOptions.MarginRight = 15;

// Render an HTML string to PDF
string htmlContent = @"
    <html>
    <head><style>body { font-family: Arial; } h1 { color: #333; }</style></head>
    <body>
        <h1>Customer Registration</h1>
        <p>Form generated on: <span id='date'></span></p>
        <form>
            <label>Full Name: <input type='text' name='name' /></label><br/>
            <label>Email: <input type='email' name='email' /></label>
        </form>
        <script>document.getElementById('date').textContent = new Date().toLocaleDateString();</script>
    </body>
    </html>";

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("registration-form.pdf");
$vbLabelText   $csharpLabel

渲染选项和页面布局

ChromePdfRenderer 类公开了一个RenderingOptions属性,该属性控制 PDF 布局的各个方面。 将 PaperSize 设置为任何标准 ISO 或 ANSI 尺寸,或使用 CustomPaperWidthCustomPaperHeight 定义以毫米为单位的自定义尺寸。 边距值以毫米为单位指定,并且 PrintHtmlBackgrounds 确保背景颜色和图像正确渲染。

对于 URL 到 PDF 的转换,请将目标地址传递给 RenderUrlAsPdf。 该渲染器可以处理 cookie、HTTP 标头和自定义用户代理,因此适用于经过身份验证的页面和单页应用程序。 HTML 转 PDF 指南详细介绍了身份验证、 JavaScript等待条件和延迟加载内容。

 IronPDF使用 C# 将 HTML 发票渲染成 PDF,并保持 CSS3 布局的准确性 IronPDF ChromePdfRenderer 输出:将 HTML 模板渲染成 A4 PDF,并保留 CSS3 样式。

从文件路径和 URL 进行渲染

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render from a URL (async variant for ASP.NET Core)
PdfDocument fromUrl = await renderer.RenderUrlAsPdfAsync("https://example.com/report");
fromUrl.SaveAs("url-report.pdf");

// Render from a local HTML file
PdfDocument fromFile = renderer.RenderHtmlFileAsPdf("templates/invoice.html");
fromFile.SaveAs("invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Render from a URL (async variant for ASP.NET Core)
PdfDocument fromUrl = await renderer.RenderUrlAsPdfAsync("https://example.com/report");
fromUrl.SaveAs("url-report.pdf");

// Render from a local HTML file
PdfDocument fromFile = renderer.RenderHtmlFileAsPdf("templates/invoice.html");
fromFile.SaveAs("invoice.pdf");
$vbLabelText   $csharpLabel

RenderUrlAsPdfAsync 方法返回 Task<PdfDocument>,因此它可以直接与ASP.NET Core控制器和后台服务中的 await 模式集成。 异步渲染指南解释了高吞吐量场景下的线程安全性和连接池配置。

如何转换图像并提取PDF内容?

许多.NET应用程序需要将图像文件转换为 PDF,或者从现有文档中提取图像和文本。 IronPDF可以处理双向传输,无需中间文件格式或外部工具。

using IronPdf;

// Convert a list of image files to a single multi-page PDF
var imageFiles = new System.Collections.Generic.List<string>
{
    "scans/page1.png",
    "scans/page2.jpg",
    "scans/page3.tiff"
};

PdfDocument pdfFromImages = ImageToPdfConverter.ImageToPdf(imageFiles);
pdfFromImages.SaveAs("scanned-document.pdf");

// Extract images from an existing document
PdfDocument existing = PdfDocument.FromFile("annual-report.pdf");
var images = existing.ExtractAllImages();
int index = 0;
foreach (var img in images)
{
    img.SaveAs($"extracted/image_{index++}.png");
}

// Extract all text content for indexing or search
string fullText = existing.ExtractAllText();
System.IO.File.WriteAllText("report-text.txt", fullText);
using IronPdf;

// Convert a list of image files to a single multi-page PDF
var imageFiles = new System.Collections.Generic.List<string>
{
    "scans/page1.png",
    "scans/page2.jpg",
    "scans/page3.tiff"
};

PdfDocument pdfFromImages = ImageToPdfConverter.ImageToPdf(imageFiles);
pdfFromImages.SaveAs("scanned-document.pdf");

// Extract images from an existing document
PdfDocument existing = PdfDocument.FromFile("annual-report.pdf");
var images = existing.ExtractAllImages();
int index = 0;
foreach (var img in images)
{
    img.SaveAs($"extracted/image_{index++}.png");
}

// Extract all text content for indexing or search
string fullText = existing.ExtractAllText();
System.IO.File.WriteAllText("report-text.txt", fullText);
$vbLabelText   $csharpLabel

使用 ImageToPdfConverter 和文本提取

ImageToPdfConverter类默认保留原始图像尺寸,但您可以通过指定 IronPdf.Imaging.ImageBehavior.CenterImageFitToPage 将图像缩放到目标纸张尺寸。 支持 JPEG、PNG、GIF、TIFF、BMP 和 WebP 格式。

通过 ExtractAllText() 进行文本提取,可以从原生 PDF 和基于图像(扫描)的文档中返回机器可读的文本,前提是 PDF 包含嵌入式文本层。 对于没有文本层的扫描 PDF,将IronPDF与IronOCR结合使用,只需一次NuGet安装即可添加光学字符识别功能。 ExtractAllImages() 方法返回一个 AnyBitmap 对象集合,这些对象可以保存、调整大小或直接传递给其他图像处理库。

IronPDF ImageToPdfConverter 将 PNG 和 JPEG 文件转换为多页 PDF 文件。 ImageToPdfConverter 的输出结果:三个源图像文件合并成一个多页 PDF 文档。

如何使用密码和数字签名保护PDF文档?

企业级 PDF 工作流程通常需要对文档进行加密、数字签名或两者兼备。 IronPDF通过 SecuritySettings 属性和 PdfSignature 类公开这些功能。

using IronPdf;
using IronPdf.Signing;

// Load an existing contract
PdfDocument contract = PdfDocument.FromFile("contracts/service-agreement.pdf");

// Apply AES-256 encryption with separate owner and user passwords
contract.SecuritySettings.OwnerPassword = "owner-admin-2024";
contract.SecuritySettings.UserPassword = "client-readonly";
contract.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
contract.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.无Edit;
contract.SecuritySettings.AllowUserCopyPasteContent = false;

// Apply a digital signature from a .pfx certificate
var signature = new PdfSignature("certs/company.pfx", "cert-password")
{
    SigningContact = "legal@company.com",
    SigningLocation = "Chicago, IL",
    SigningReason = "Contract Authorization"
};

contract.Sign(signature);
contract.SaveAs("contracts/service-agreement-signed.pdf");
using IronPdf;
using IronPdf.Signing;

// Load an existing contract
PdfDocument contract = PdfDocument.FromFile("contracts/service-agreement.pdf");

// Apply AES-256 encryption with separate owner and user passwords
contract.SecuritySettings.OwnerPassword = "owner-admin-2024";
contract.SecuritySettings.UserPassword = "client-readonly";
contract.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
contract.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.无Edit;
contract.SecuritySettings.AllowUserCopyPasteContent = false;

// Apply a digital signature from a .pfx certificate
var signature = new PdfSignature("certs/company.pfx", "cert-password")
{
    SigningContact = "legal@company.com",
    SigningLocation = "Chicago, IL",
    SigningReason = "Contract Authorization"
};

contract.Sign(signature);
contract.SaveAs("contracts/service-agreement-signed.pdf");
$vbLabelText   $csharpLabel

安全设置和权限控制

SecuritySettings 属性直接映射到PDF 1.7 规范中定义的 PDF 权限。 单独设置 OwnerPassword 会限制 PDF 阅读器级别的编辑和打印; 添加 UserPassword 需要密码才能打开文件。

数字签名使用 X.509 证书,格式为 .pfx,与 Windows 证书存储和大多数证书颁发机构使用的格式相同。 签名包含联系方式、地点和原因字段,这些字段可在 Adob​​e Acrobat 的签名面板中查看,满足许多电子签名合规性要求。 对于可能包含脚本或嵌入式元数据的 PDF 文档,存在安全隐患,清理方法会在分发前去除JavaScript、嵌入式文件和隐藏的元数据。

 IronPDF数字签名已应用于 PDF 合同,并在 Adob​​e Acrobat 中显示已验证的签名 IronPDF PdfSignature 结果:已将 X.509 证书应用于合同,签名面板在 Adob​​e Acrobat 中可见。

如何填写和读取PDF表单字段?

在保险、医疗保健和法律文件工作流程中,经常需要处理 AcroForm 和 XFA 表单。 IronPDF可以从现有表单中读取字段名称,并以编程方式写入值,而无需 Acrobat 或任何 PDF 查看器。

using IronPdf;

// Open a PDF containing AcroForm fields
PdfDocument form = PdfDocument.FromFile("forms/application-form.pdf");

// List all field names for discovery
foreach (var field in form.Form.Fields)
{
    System.Console.WriteLine($"Field: {field.Name}, Type: {field.GetType().Name}");
}

// Set field values by name
form.Form.FindFormField("applicant_name").Value = "Jane Smith";
form.Form.FindFormField("date_of_birth").Value = "1985-04-12";
form.Form.FindFormField("agree_terms").Value = "true"; // checkbox

// Flatten the form to prevent further editing
form.Form.Flatten();
form.SaveAs("forms/completed-application.pdf");
using IronPdf;

// Open a PDF containing AcroForm fields
PdfDocument form = PdfDocument.FromFile("forms/application-form.pdf");

// List all field names for discovery
foreach (var field in form.Form.Fields)
{
    System.Console.WriteLine($"Field: {field.Name}, Type: {field.GetType().Name}");
}

// Set field values by name
form.Form.FindFormField("applicant_name").Value = "Jane Smith";
form.Form.FindFormField("date_of_birth").Value = "1985-04-12";
form.Form.FindFormField("agree_terms").Value = "true"; // checkbox

// Flatten the form to prevent further editing
form.Form.Flatten();
form.SaveAs("forms/completed-application.pdf");
$vbLabelText   $csharpLabel

使用 AcroForms 进行程序化表单处理

IronPDF 的表单 API 使用字段名称作为标识符,因此代码可以直接映射到 Acrobat 中可见的字段结构。 Flatten() 方法将交互式字段转换为静态内容,生成适合存档或传输的只读 PDF。 有关表单类型、单选按钮组和下拉列表的完整详细信息,请参阅PDF 表单指南

要从头开始生成新表单,请使用带有 <select><textarea> 元素的 HTML。 Chromium 渲染器会自动将标准 HTML 表单元素转换为 AcroForm 字段,这意味着 Web 应用程序中使用的现有 HTML 表单无需任何结构更改即可生成可填写的 PDF。 创建 PDF 表单的操作指南详细介绍了完整的流程,包括单选按钮、日期选择器和多选字段。

IronPDF与其他.NET PDF 库相比如何?

开发人员在评估适用于.NET 的PDF SDK 时,通常会考虑渲染质量、API 可访问性、部署复杂性和许可条款。 下表根据这些标准,将IronPDF相对于常见的.NET替代方案进行了排名。

按关键开发人员标准比较.NET PDF 库
图书馆 HTML到PDF .NET 10 支持 表单处理 数字签名 许可模式
IronPDF 基于 Chium 内核(完整 CSS3/JS) AcroForm + XFA 是的(.pfx) 按开发者计费,免版税
QuestPDF 否(代码优先布局引擎) 麻省理工学院(社区),商业
iText Core 仅通过插件 AcroForm AGPL 或商业
Syncfusion PDF 部分(CSS2 子集) AcroForm 按开发者人数或收入计费
PDFsharp 是的(v6+) 数量有限 麻省理工学院

IronPDF 的许可页面涵盖了 SaaS 部署、OEM 再分发以及Iron Suite套装,该套装包含IronPDF以及IronOCRIronBarcodeIronXL,与单独购买每个产品相比,折扣力度相当大。

IronPDF的主要优势在于 HTML 渲染质量。 围绕底层 PDF 绘图 API 构建的库需要开发人员手动复制 CSS 布局逻辑。 当现有的 HTML 模板或Razor视图已经定义了文档结构时,直接将其转换为 PDF 比使用代码优先的绘图 API 重建布局更快、更易于维护。

.NET PDF SDK 应具备哪些关键功能?

为生产应用程序选择 PDF 库不仅仅是确认它能够创建 PDF 文件那么简单。 文档密集型应用程序需要特定的功能,而这些功能只有在最初的概念验证工作开始扩展到真实的数据量和部署环境时才会显现出来。

跨平台部署

生产级的.NET PDF SDK 必须在 Windows Server、Linux 容器和 macOS 开发机器上运行,而无需特定于平台的代码路径。 IronPDF开箱即用,支持这三种功能; 同一个NuGet包可以部署到Azure 应用服务AWS Lambda和 Docker,应用程序代码中无需进行任何平台切换。

PDF/A 和 PDF/UA 标准符合性

政府、金融和医疗保健等受监管行业通常要求长期存档必须符合 PDF/A 标准ISO 19005 PDF/A 标准定义了 PDF/A-1b 和 PDF/A-3b,它们限制了嵌入式JavaScript和非嵌入式字体,从而确保文档在没有原始应用程序的情况下仍然可读。 IronPDF将现有的 PDF 文件转换为 PDF/A 格式,并验证其合规性,返回一个标志,指示输出是否符合标准。 对于必须符合 WCAG 或第 508 条要求的文档,也提供 PDF/UA(无障碍)合规性。

批处理和内存管理

按计划生成数千个 PDF 文件或处理上传队列需要可预测的内存行为。 IronPDF 的混合栅格内容 (MRC) 压缩可减小包含文本和高分辨率图像的文档的文件大小。 对于大批量作业,多线程指南演示了如何使用 Parallel.ForEachChromePdfRenderer 实例 - 渲染器不是线程安全的,因此每个任务都应该拥有自己的实例。

DOCX 和 Excel 转 PDF

除了 HTML 之外, IronPDF还可以将 Word 文档 (.docx) 和电子表格直接转换为 PDF,从而消除了对 Microsoft Office 互操作或 COM 自动化文档导出工作流程的依赖。 将IronPDF与IronXL结合使用,无需在服务器上安装任何 Office,即可实现完整的电子表格到 PDF 转换流程。

下一步计划是什么?

IronPDF将复杂的 PDF 工作流程转换为可维护的 C# 代码。 从 HTML 到 PDF(具有完整的 CSS3 保真度),再到数字签名、表单处理和 PDF/A 归档,该库在一个NuGet包中涵盖了完整的文档生命周期。

首先访问IronPDF文档中心,浏览教程、操作指南和API 参考示例库提供了最常见的 PDF 任务的可运行代码,包括合并 PDF添加水印添加页眉和页脚以及编辑敏感内容

购买许可证即可进行生产部署,或者开始免费试用,无需任何承诺即可评估所有功能。

立即开始使用 IronPDF。
green arrow pointer

常见问题解答

什么是.NET开发者的最佳PDF SDK?

IronPDF是.NET开发者需要HTML到PDF转换的一个很好的选择,完全支持CSS3和JavaScript。它作为一个单一的NuGet包(IronPdf)安装,支持.NET 10和.NET Framework 4.6.2+,并在Windows、Linux、macOS、Azure、AWS和Docker上运行,无需配置更改。对于没有HTML的代码优先布局生成,QuestPDF是一个免费的MIT许可替代方案,尽管它不支持读取或编辑现有的PDF。

如何在 .NET 项目中安装 IronPDF?

在Visual Studio包管理器控制台中运行'Install-Package IronPdf',或在NuGet GUI中搜索'IronPdf'。该包目标.NET Standard 2.0,因此与.NET Framework 4.6.2+、.NET Core 2.0+、.NET 5至.NET 10兼容。

IronPDF能否与CSS3和JavaScript一起将HTML转换为PDF?

可以。IronPDF使用基于Chromium的引擎渲染HTML,全面支持CSS3布局、Google字体、flexbox、grid和JavaScript。将HTML字符串传递给ChromePdfRenderer.RenderHtmlAsPdf,或将URL传递给RenderUrlAsPdf或RenderUrlAsPdfAsync。

IronPDF支持数字签名吗?

支持。使用带有.pfx证书文件的PdfSignature类。设置SigningContact、SigningLocation和SigningReason,然后调用PdfDocument.Sign(signature)。生成的签名在Adobe Acrobat的签名面板中可见,并满足许多电子签名合规要求。

如何使用C#和IronPDF填写PDF表单字段?

用PdfDocument.FromFile加载PDF,然后使用form.Form.FindFormField("fieldName").Value设置值。在保存之前调用form.Form.Flatten()将交互式字段转换为静态内容。IronPDF支持AcroForm文本字段、复选框、单选按钮和下拉框。

IronPDF提供了哪些PDF安全功能?

IronPDF的SecuritySettings属性支持AES-256加密,设置单独的所有者和用户密码。您可以独立限制打印、编辑和复制粘贴。Sanitize方法在分发之前从文档中移除JavaScript、嵌入文件和元数据。

IronPDF支持PDF/A用于归档合规吗?

支持。IronPDF可以将现有PDF转换为PDF/A-1b或PDF/A-3b格式并验证合规性。使用ironpdf.com/how-to/pdf-a-compliance/上的指南获取转换API和合规标志。

IronPDF与iText在.NET上如何比较?

IronPDF和iText Core都支持AcroForm处理和数字签名。主要区别在于许可和HTML渲染。iText Core采用AGPL许可证(需要商业许可才能用于专有应用)并使用一个附加组件进行HTML转换。IronPDF是商业许可的,按照每开发者定价,并使用内置的Chromium引擎进行HTML到PDF转换,全面支持CSS3。

IronPDF可以在Linux和Docker上运行吗?

可以。相同的NuGet包可在Ubuntu、Debian、CentOS和基于Alpine的Docker镜像上运行。在Linux上,安装libgdiplus和字体包(例如,fontconfig、libfreetype6)。ironpdf.com/get-started/linux/上的Linux部署指南列出了分布特定的软件包要求。

如何使用IronPDF将图像转换为PDF?

使用ImageToPdfConverter.ImageToPdf(imageFileList)将JPEG、PNG、TIFF、BMP、GIF或WebP文件合并为单个多页PDF。指定IronPdf.Imaging.ImageBehavior.FitToPage或CenterImage来控制缩放行为。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me