跳至页脚内容
产品比较

IronPDF与Apryse C#之间的比较

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Apryse PDF on pricing, HTML support, and licensing.

View Full Comparison

为什么比较IronPDF和Apryse C# PDF库?

IronPDF和Apryse C#是著名的.NET PDF库,各自有独特的优势。 IronPDF在HTML到PDF的转换方面表现出色,支持完整的Bootstrap,并具备广泛的编辑功能。 同时,Apryse专注于文档注释和修订,以满足企业合规需求。

作为C#开发者,您在构建生成、编辑或显示文档的应用程序时,通常会遇到与PDF相关的任务。 一个可靠的PDF库对于提高效率至关重要。 这些库提供了内置功能,用于复杂操作,如转换文档编辑文本以及处理PDF中的图像。 没有它们,您将需要从头编写所有功能,这既耗时又容易出错。

此次比较关注两个流行的PDF库:IronPDFApryse C#。 IronPDF提供可靠的功能,简化了在.NET环境中的PDF操作,从HTML转换为PDF到高级文档编辑。 Apryse C#提供了一种简单的PDF操作方法,专注于效率和易用性。 此分析探讨了每个库的特定功能,以帮助您确定最适合您的项目。

什么是Apryse C# PDF库?

Apryse主页展示其文档处理SDK,带有代码编辑器和文档查看器界面显示在计算机屏幕上

Apryse C#是一个完整的.NET应用程序PDF库,旨在简化C#环境中的PDF操作。 以前称为PDFTron SDK,它为开发者提供了广泛的功能和工具,寻求精确的PDF处理能力。

Apryse C#提供了哪些关键功能?

  • 与.NET项目的轻松集成:与.NET的顺利集成,包括ASP.NET Core和传统的.NET Framework应用程序。
  • 文档创建和编辑:从头创建PDF或编辑现有的,包括文本、图像、表单和页面操作——重新排序、合并或拆分
  • HTML到PDF转换:直接将HTML内容转换为PDF格式,用于发票、报告和网页文档。
  • 广泛的表单字段支持:可靠的PDF表单字段创建、编辑和编程填充,以支持自动化工作流。
  • 文本和内容提取:从PDF中提取文本和内容,用于分析、搜索工具和内容管理。
  • 安全和加密:完整的安全性,包括文档加密、权限管理和数字签名。
  • 高级PDF功能:支持注释书签和超链接,用于互动式PDF。

什么是IronPDF C#库?

IronPDF主页显示HTML到PDF转换的C#代码示例,带有NuGet安装命令

IronPDF是为.NET开发者量身定制的多功能PDF库。 它简化了复杂的PDF操作,使得在C#应用程序中直接进行PDF文档的创建编辑转换。 适用于包括Java、Python和C#在内的多种编程语言,IronPDF高效且可靠地满足了多样的PDF处理需求。

IronPDF提供了哪些关键功能?

如何创建C#控制台应用程序?

在Visual Studio中创建控制台应用程序是.NET开发项目的基础,包括使用像IronPDF或Apryse C#这样的PDF库的项目。 请按照以下步骤开始:

如何启动Visual Studio?

在您的计算机上打开 Visual Studio。 如果您尚未安装Visual Studio,请从Microsoft官方网站下载并安装,选择适合您需求的版本。

如何创建新项目?

Visual Studio打开后,从初始仪表板中选择"创建新项目"。

Visual Studio 2022启动屏幕显示开始菜单,提供克隆存储库、打开项目或解决方案、打开本地文件夹或创建新项目的选项

我应该选择哪种项目类型?

在"创建新项目"窗口中,您将看到各种项目模板。 在搜索框中输入"控制台"或从列表中找到"控制台应用程序"。选择C#特定的模板。

Visual Studio的

如何配置我的项目?

选择"控制台应用程序"后,单击"下一步"。配置您的新项目:

  • 项目名称:为您的项目输入一个描述性的名称。
  • 位置:选择您首选的保存位置。
  • 解决方案名称:默认与您的项目名称相同,但可以自定义。

Visual Studio项目配置屏幕显示创建一个名为'IronPDF vs Apryse'的新C#控制台应用程序项目,包含项目位置和解决方案设置。

  • 框架:选择您的.NET版本。 最新版本通常是推荐的,除非有特定要求需要其他版本。

Console应用程序配置屏幕显示.NET 8.0框架选择,提供顶级语句和本机AOT发布选项

如何完成项目创建?

在配置完项目设置后,单击"创建"。Visual Studio会自动创建一个新的控制台应用程序项目,包含一个默认的Program.cs文件。

项目结构是什么?

在解决方案资源管理器中探索生成的项目结构。 您主要将在控制台应用程序中使用Program.cs文件,编写您的C#代码。

如何安装IronPDF库?

将IronPDF集成到您的.NET项目中可以使您使用它完整的PDF处理能力。 多种安装方法可根据您的工作流程偏好提供灵活性。

如何使用NuGet包管理器安装?

NuGet包管理器在Visual Studio中提供了一个图形界面用于管理库。

1.在 Visual Studio 中打开您的项目。

  1. 在解决方案资源管理器中右键单击您的项目,然后选择"管理NuGet包"。
  2. 点击"浏览"选项卡,搜索"IronPdf"。
  3. 从结果中选择IronPDF并点击"安装"。

NuGet包管理器显示IronPDF库搜索结果,版本为2024.2.2及相关包,包括特定平台的Chrome依赖项和IronPdf.Slim。

如何使用命令行安装?

包管理器控制台提供直接的命令行安装。

  1. 打开你的 Visual Studio 项目。
  2. 转到 工具 > NuGet 包管理器 > 包管理器控制台。
  3. 输入以下命令:
Install-Package IronPdf

此命令将最新的IronPDF版本安装到您的项目中。

如何直接从NuGet下载?

您可以在集成之前手动下载包。

1.访问 NuGet 网站,搜索 "IronPDF"。

  1. IronPdf包页面上,点击"下载包"以获取.nupkg文件。

NuGet包页面显示IronPDF版本2024.2.2,显示安装命令、总下载量8.2M和支持的框架,包括.NET 5.0、.NET Core 2.0和.NET Framework 4.6.2

  1. 手动通过解决方案资源管理器添加下载的包 > 右键单击项目 > "添加 > 参考"。

每种方法都能成功集成IronPDF,使您可以使用其高效的PDF处理功能

如何安装Apryse C#?

将Apryse C#集成到您的项目中会根据您的.NET Framework或.NET Core环境有所不同。 以下步骤概述了一般的安装过程:

如何为.NET Framework安装Apryse?

  1. 下载Windows版本的Apryse SDK:您需要访问Apryse SDK for Windows页面以下载适用于.NET Framework应用程序的SDK。

Apryse C# .NET PDF Library下载页面显示SDK下载按钮和商业许可证要求

  1. 解压缩SDK:下载后,将SDK解压缩至您系统的已知位置。
  2. 获取Apryse试用密钥:在Apryse平台上注册以获取试用密钥,您将使用它来激活SDK的试用功能。
  3. 设置您的项目:在Visual Studio中,创建一个新的.NET Framework控制台应用程序。 然后,将提取的 SDK 中的 Lib 文件夹添加到您的项目目录中。
  4. 添加引用:右键单击您的项目中的引用,选择"添加引用",然后导航到您已复制PDFNetLoader.dll和适用于您的架构(x86或x64)的PDFNet.dllLib文件夹。 确保将 PDFNet.dll 的 "复制本地 "属性设置为 false。
  5. 配置App.config:确保您的App.config文件已启用loadFromRemoteSources设置为true。

该SDK包括您可以直接打开并运行的解决方案示例文件夹。## IronPDF的高级功能

HTML 到 PDF 转换

IronPDF在将HTML转换为PDF文档方面非常有效,这是生成报告、发票或网页快照的Web应用的重要特征。 该库准确地呈现HTML、CSS和JavaScript,在生成的PDF中保留网页内容的布局和样式。

将HTML字符串转换为PDF

直接将HTML字符串转换为PDF,允许从应用生成的内容或存储的变量动态创建文档。 此方法对于基于用户输入创建定制报告、收据或文件非常有用。

using IronPdf;

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Define a simple HTML string to convert to PDF
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>My PDF</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        h1 {
            color: #333;
            text-align: center;
        }
        p {
            color: #666;
            text-align: justify;
        }
    </style>
</head>
<body>
    <h1>Welcome to My PDF</h1>
    <p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
    <p>You can add more content here as needed.</p>
</body>
</html>";

// Render the HTML string as a PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the resulting PDF to a file
pdf.SaveAs("output.pdf");
using IronPdf;

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Define a simple HTML string to convert to PDF
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>My PDF</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        h1 {
            color: #333;
            text-align: center;
        }
        p {
            color: #666;
            text-align: justify;
        }
    </style>
</head>
<body>
    <h1>Welcome to My PDF</h1>
    <p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
    <p>You can add more content here as needed.</p>
</body>
</html>";

// Render the HTML string as a PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the resulting PDF to a file
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

将HTML文件转换为PDF

如果您的磁盘上存储了HTML文件,IronPDF可以将这些文件转换为PDF文档。 此方法非常适用于现有的HTML文档、模板或保存在项目或服务器中的报告。

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the HTML file as a PDF
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");

// Save the resulting PDF to a file
pdf.SaveAs("file.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the HTML file as a PDF
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");

// Save the resulting PDF to a file
pdf.SaveAs("file.pdf");
$vbLabelText   $csharpLabel

将 URL 转换为 PDF

IronPDF可以通过提供URL将在线网页转换为PDF文档。 此功能捕获网页的当前状态,包括复杂的布局、CSS和JavaScript生成的内容。

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_100___");

// Save the resulting PDF to a file
pdf.SaveAs("url.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_100___");

// Save the resulting PDF to a file
pdf.SaveAs("url.pdf");
$vbLabelText   $csharpLabel

支持Bootstrap和现代CSS框架

当从现代Web应用程序生成PDF时,完整支持Bootstrap和CSS框架是至关重要的。 企业依赖于Bootstrap用于Web界面,使得准确的PDF转换对报告、发票和文档至关重要。

IronPDF支持的Bootstrap功能

IronPDF:完整的 Bootstrap 支持

  • Bootstrap 5:完全支持flexbox布局、CSS Grid、实用程序类和响应组件
  • Bootstrap 4:完整的卡片系统、导航组件和flex实用工具
  • Tailwind CSS:所有实用程序类都能准确呈现
  • Foundation:完整的网格系统和组件支持
  • 现代CSS3:全面的flexbox、CSS Grid、自定义属性、动画和过渡

IronPDF呈现Bootstrap主页和所有官方示例,具有像素完美的准确性。

代码示例:业务指标仪表板

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapDashboard = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_101___ rel='stylesheet'>
    <style>
        .metric-card { transition: transform 0.2s; }
        .metric-card:hover { transform: translateY(-5px); }
        .trend-up { color: #28a745; }
        .trend-down { color: #dc3545; }
    </style>
</head>
<body>
    <div class='container-fluid py-4'>
        <div class='d-flex justify-content-between align-items-center mb-4'>
            <h1 class='display-5'>Business Performance Dashboard</h1>
            <div class='text-muted'>Last updated: March 2025</div>
        </div>

        <div class='row g-4 mb-4'>
            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-primary border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Total Revenue</h6>
                            <span class='badge bg-primary'>Q1 2025</span>
                        </div>
                        <h2 class='mb-1'>$2.4M</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+18.5%</strong> from last quarter
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-success border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>New Customers</h6>
                            <span class='badge bg-success'>Active</span>
                        </div>
                        <h2 class='mb-1'>1,284</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+24.3%</strong> growth rate
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-warning border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Avg Order Value</h6>
                            <span class='badge bg-warning text-dark'>Updated</span>
                        </div>
                        <h2 class='mb-1'>$1,847</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+5.2%</strong> increase
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-info border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Satisfaction Rate</h6>
                            <span class='badge bg-info'>Excellent</span>
                        </div>
                        <h2 class='mb-1'>94.7%</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+2.1pts</strong> improvement
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-4'>
            <div class='col-md-8'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Revenue Breakdown by Category</h5>
                        <div class='btn-group btn-group-sm' role='group'>
                            <button type='button' class='btn btn-outline-primary active'>Monthly</button>
                            <button type='button' class='btn btn-outline-primary'>Quarterly</button>
                            <button type='button' class='btn btn-outline-primary'>Annual</button>
                        </div>
                    </div>
                    <div class='card-body'>
                        <div class='table-responsive'>
                            <table class='table table-hover mb-0'>
                                <thead class='table-light'>
                                    <tr>
                                        <th>Category</th>
                                        <th>Revenue</th>
                                        <th>Orders</th>
                                        <th>Avg Value</th>
                                        <th class='text-end'>Trend</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td><span class='badge bg-primary me-2'>A</span>Enterprise Solutions</td>
                                        <td><strong>$1,245,000</strong></td>
                                        <td>142</td>
                                        <td>$8,768</td>
                                        <td class='text-end'><span class='badge bg-success'>+12%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-success me-2'>B</span>Professional Services</td>
                                        <td><strong>$687,500</strong></td>
                                        <td>458</td>
                                        <td>$1,501</td>
                                        <td class='text-end'><span class='badge bg-success'>+18%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-info me-2'>C</span>Standard Packages</td>
                                        <td><strong>$412,300</strong></td>
                                        <td>891</td>
                                        <td>$463</td>
                                        <td class='text-end'><span class='badge bg-success'>+8%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-warning me-2'>D</span>Custom Development</td>
                                        <td><strong>$55,200</strong></td>
                                        <td>12</td>
                                        <td>$4,600</td>
                                        <td class='text-end'><span class='badge bg-danger'>-3%</span></td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Quick Actions</h5>
                    </div>
                    <div class='card-body'>
                        <div class='d-grid gap-2'>
                            <button class='btn btn-primary'>Generate Full Report</button>
                            <button class='btn btn-outline-primary'>Export to Excel</button>
                            <button class='btn btn-outline-secondary'>Schedule Email</button>
                            <button class='btn btn-outline-info'>Share Dashboard</button>
                        </div>
                    </div>
                </div>

                <div class='card shadow-sm mt-3'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Key Insights</h5>
                    </div>
                    <div class='card-body'>
                        <div class='alert alert-success mb-2'>
                            <small><strong>Top Performer:</strong> Enterprise Solutions leading revenue growth</small>
                        </div>
                        <div class='alert alert-info mb-2'>
                            <small><strong>Growth Driver:</strong> Professional Services showing strongest customer acquisition</small>
                        </div>
                        <div class='alert alert-warning mb-0'>
                            <small><strong>Attention Needed:</strong> Custom Development segment requires review</small>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard);
pdf.SaveAs("business-dashboard.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapDashboard = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_101___ rel='stylesheet'>
    <style>
        .metric-card { transition: transform 0.2s; }
        .metric-card:hover { transform: translateY(-5px); }
        .trend-up { color: #28a745; }
        .trend-down { color: #dc3545; }
    </style>
</head>
<body>
    <div class='container-fluid py-4'>
        <div class='d-flex justify-content-between align-items-center mb-4'>
            <h1 class='display-5'>Business Performance Dashboard</h1>
            <div class='text-muted'>Last updated: March 2025</div>
        </div>

        <div class='row g-4 mb-4'>
            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-primary border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Total Revenue</h6>
                            <span class='badge bg-primary'>Q1 2025</span>
                        </div>
                        <h2 class='mb-1'>$2.4M</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+18.5%</strong> from last quarter
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-success border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>New Customers</h6>
                            <span class='badge bg-success'>Active</span>
                        </div>
                        <h2 class='mb-1'>1,284</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+24.3%</strong> growth rate
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-warning border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Avg Order Value</h6>
                            <span class='badge bg-warning text-dark'>Updated</span>
                        </div>
                        <h2 class='mb-1'>$1,847</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+5.2%</strong> increase
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-info border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Satisfaction Rate</h6>
                            <span class='badge bg-info'>Excellent</span>
                        </div>
                        <h2 class='mb-1'>94.7%</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+2.1pts</strong> improvement
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-4'>
            <div class='col-md-8'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Revenue Breakdown by Category</h5>
                        <div class='btn-group btn-group-sm' role='group'>
                            <button type='button' class='btn btn-outline-primary active'>Monthly</button>
                            <button type='button' class='btn btn-outline-primary'>Quarterly</button>
                            <button type='button' class='btn btn-outline-primary'>Annual</button>
                        </div>
                    </div>
                    <div class='card-body'>
                        <div class='table-responsive'>
                            <table class='table table-hover mb-0'>
                                <thead class='table-light'>
                                    <tr>
                                        <th>Category</th>
                                        <th>Revenue</th>
                                        <th>Orders</th>
                                        <th>Avg Value</th>
                                        <th class='text-end'>Trend</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td><span class='badge bg-primary me-2'>A</span>Enterprise Solutions</td>
                                        <td><strong>$1,245,000</strong></td>
                                        <td>142</td>
                                        <td>$8,768</td>
                                        <td class='text-end'><span class='badge bg-success'>+12%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-success me-2'>B</span>Professional Services</td>
                                        <td><strong>$687,500</strong></td>
                                        <td>458</td>
                                        <td>$1,501</td>
                                        <td class='text-end'><span class='badge bg-success'>+18%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-info me-2'>C</span>Standard Packages</td>
                                        <td><strong>$412,300</strong></td>
                                        <td>891</td>
                                        <td>$463</td>
                                        <td class='text-end'><span class='badge bg-success'>+8%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-warning me-2'>D</span>Custom Development</td>
                                        <td><strong>$55,200</strong></td>
                                        <td>12</td>
                                        <td>$4,600</td>
                                        <td class='text-end'><span class='badge bg-danger'>-3%</span></td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Quick Actions</h5>
                    </div>
                    <div class='card-body'>
                        <div class='d-grid gap-2'>
                            <button class='btn btn-primary'>Generate Full Report</button>
                            <button class='btn btn-outline-primary'>Export to Excel</button>
                            <button class='btn btn-outline-secondary'>Schedule Email</button>
                            <button class='btn btn-outline-info'>Share Dashboard</button>
                        </div>
                    </div>
                </div>

                <div class='card shadow-sm mt-3'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Key Insights</h5>
                    </div>
                    <div class='card-body'>
                        <div class='alert alert-success mb-2'>
                            <small><strong>Top Performer:</strong> Enterprise Solutions leading revenue growth</small>
                        </div>
                        <div class='alert alert-info mb-2'>
                            <small><strong>Growth Driver:</strong> Professional Services showing strongest customer acquisition</small>
                        </div>
                        <div class='alert alert-warning mb-0'>
                            <small><strong>Attention Needed:</strong> Custom Development segment requires review</small>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard);
pdf.SaveAs("business-dashboard.pdf");
$vbLabelText   $csharpLabel

输出:专业的商业仪表板PDF,具有Bootstrap 5的flexbox网格系统、带有边框实用工具的卡片组件、徽章元素、响应式表格和经过颜色编码的指标——所有这些均呈现出完美的布局保留和排版。

Apryse的CSS框架限制

Apryse 的 HTML2PDF 模块使用自定义渲染引擎(非 Chromium),该引擎的限制已记录在案:

  • 部分flexbox支持:Bootstrap 4/5布局可能渲染不正确
  • 有限的CSS Grid:现代基于网格的设计经常失败
  • JavaScript限制:相对于浏览器环境执行较少
  • 框架兼容性:需要对Bootstrap组件进行广泛测试

HTML2PDF文档明确警告复杂的CSS可能无法如预期般渲染。 开发者报告导航栏、基于flex的卡片布局和响应式实用工具的问题。

开发影响:使用Apryse的团队必须创建平行的"PDF安全"CSS或显著简化Bootstrap布局,增加了开发成本并限制了Web和PDF输出之间的设计一致性。

有关完整的Bootstrap框架支持和完整的CSS3渲染,请参阅Bootstrap & Flexbox CSS Guide

合并和拆分PDF文件

IronPDF使得组合多个PDF文档或将PDF拆分为更小的文件变得简单易行。 此功能对于需要组织化PDF内容结构的文档管理系统至关重要。

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Define HTML content for two PDFs to merge
var htmlA = @"
    <h1>PDF A</h1>
    <p>This is the content of PDF A.</p>
    <p>This is the first page of PDF A.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF A.</p>";

var htmlB = @"
    <h1>PDF B</h1>
    <p>This is the content of PDF B.</p>
    <p>This is the first page of PDF B.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF B.</p>";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the HTML content as separate PDF documents
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);

// Merge the two PDFs into one
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);

// Save the merged PDF to a file
mergedPdf.SaveAs("Merged.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Define HTML content for two PDFs to merge
var htmlA = @"
    <h1>PDF A</h1>
    <p>This is the content of PDF A.</p>
    <p>This is the first page of PDF A.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF A.</p>";

var htmlB = @"
    <h1>PDF B</h1>
    <p>This is the content of PDF B.</p>
    <p>This is the first page of PDF B.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF B.</p>";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the HTML content as separate PDF documents
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);

// Merge the two PDFs into one
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);

// Save the merged PDF to a file
mergedPdf.SaveAs("Merged.pdf");
$vbLabelText   $csharpLabel

向PDF添加水印

IronPDF允许您向PDF页面添加水印,用于品牌标识或将文档标记为机密。 该库负责处理文本和图像水印的复杂性,提供应用和显示的灵活性。

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render a URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_102___");

// Apply a watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

// Save the watermarked PDF to a file
pdf.SaveAs("Watermarked.pdf");
```### How Do I Work with PDF Forms?

IronPDF supports complete [interactive PDF form handling](https://ironpdf.com/how-to/create-forms/). You can create, fill, and submit PDF forms programmatically, which is particularly useful for automating form processing or integrating form data collection into your workflows.

```csharp
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Define HTML content with form elements
const string formHtml = @"
    <html>
        <body>
            <h2>Employee Information Form</h2>
            <form>
                First name: <br> 
                Last name: <br> 
                <br>
                <p>Please select your department:</p>
                <select name='department'>
                    <option value='HR'>HR</option>
                    <option value='Finance'>Finance</option>
                    <option value='IT'>IT</option>
                    <option value='Marketing'>Marketing</option>
                </select>
                <br>
                <br>
                <p>Please select your employment status:</p>
                <label for='fulltime'>Full-time</label> <br>
                <label for='parttime'>Part-time</label> <br>
                <br>
                <p>Please select your skills:</p>
                <label for='skill1'> Programming</label><br>
                <label for='skill2'> Design</label><br>
                <label for='skill3'> Marketing</label><br>
            </form>
        </body>
    </html>";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

// Render the HTML form content as a PDF
renderer.RenderHtmlAsPdf(formHtml).SaveAs("EmployeeInfoForm.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render a URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_102___");

// Apply a watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

// Save the watermarked PDF to a file
pdf.SaveAs("Watermarked.pdf");
```### How Do I Work with PDF Forms?

IronPDF supports complete [interactive PDF form handling](https://ironpdf.com/how-to/create-forms/). You can create, fill, and submit PDF forms programmatically, which is particularly useful for automating form processing or integrating form data collection into your workflows.

```csharp
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Define HTML content with form elements
const string formHtml = @"
    <html>
        <body>
            <h2>Employee Information Form</h2>
            <form>
                First name: <br> 
                Last name: <br> 
                <br>
                <p>Please select your department:</p>
                <select name='department'>
                    <option value='HR'>HR</option>
                    <option value='Finance'>Finance</option>
                    <option value='IT'>IT</option>
                    <option value='Marketing'>Marketing</option>
                </select>
                <br>
                <br>
                <p>Please select your employment status:</p>
                <label for='fulltime'>Full-time</label> <br>
                <label for='parttime'>Part-time</label> <br>
                <br>
                <p>Please select your skills:</p>
                <label for='skill1'> Programming</label><br>
                <label for='skill2'> Design</label><br>
                <label for='skill3'> Marketing</label><br>
            </form>
        </body>
    </html>";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

// Render the HTML form content as a PDF
renderer.RenderHtmlAsPdf(formHtml).SaveAs("EmployeeInfoForm.pdf");
$vbLabelText   $csharpLabel

交互式PDF表单生成,显示包括文本字段、下拉菜单、单选按钮和复选框在内的各种表单元素——展示表单创建能力。

如何确保PDF文件的安全和加密?

IronPDF提供可靠的功能来保护PDF文件,包括加密、权限设置和数字签名。 这些确保了敏感信息的保护和文档完整性的维护。

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Load an existing PDF file
var pdf = PdfDocument.FromFile("invoice.pdf");

// Set document security settings
pdf.SecuritySettings.OwnerPassword = "top-secret"; // Password to edit the PDF
pdf.SecuritySettings.UserPassword = "sharable";   // Password to open the PDF

// Save the secured PDF to a file
pdf.SaveAs("secured.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Load an existing PDF file
var pdf = PdfDocument.FromFile("invoice.pdf");

// Set document security settings
pdf.SecuritySettings.OwnerPassword = "top-secret"; // Password to edit the PDF
pdf.SecuritySettings.UserPassword = "sharable";   // Password to open the PDF

// Save the secured PDF to a file
pdf.SaveAs("secured.pdf");
$vbLabelText   $csharpLabel

密码输入对话框,带有文本字段和两个按钮,分别标记为

有哪些高级编辑选项可用?

IronPDF提供高级编辑能力,不仅仅是基本修改。 包括添加页眉和页脚自定义页面布局嵌入图像和字体。 这些功能使动态PDF生成和定制以满足特定的应用程序要求。

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new IronPdf.ChromePdfRenderer();

// Define multi-page HTML content with page breaks
var multiPageHtml = @"
    <p> This is 1st Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 2nd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 3rd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 4th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 5th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 6th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 7th Page</p>";

// Render the HTML content as a PDF
var pdfDoc = renderer.RenderHtmlAsPdf(multiPageHtml);

// Create a header for the first page only
var firstPageHeader = new HtmlHeaderFooter();
firstPageHeader.HtmlFragment = "This is the First Page Header";
pdfDoc.AddHtmlHeaders(firstPageHeader, 1);

// Save the resulting PDF with headers to a file
pdfDoc.SaveAs("PagesWithHeaders.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new IronPdf.ChromePdfRenderer();

// Define multi-page HTML content with page breaks
var multiPageHtml = @"
    <p> This is 1st Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 2nd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 3rd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 4th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 5th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 6th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 7th Page</p>";

// Render the HTML content as a PDF
var pdfDoc = renderer.RenderHtmlAsPdf(multiPageHtml);

// Create a header for the first page only
var firstPageHeader = new HtmlHeaderFooter();
firstPageHeader.HtmlFragment = "This is the First Page Header";
pdfDoc.AddHtmlHeaders(firstPageHeader, 1);

// Save the resulting PDF with headers to a file
pdfDoc.SaveAs("PagesWithHeaders.pdf");
$vbLabelText   $csharpLabel

PDF查看器显示一个两页文档,第一页的页眉写着

Apryse C#提供了哪些高级功能?

如何添加批注和标记?

Apryse C#使您可以通过编程方式向PDF文档添加批注和标记。 这包括文本批注、突出显示、下划线和形状——对于文档审阅流程或添加补充信息至关重要。

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library with your license key
        PDFNet.Initialize("License");

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Access the first page of the document
            Page page = doc.GetPage(1);

            // Create a text annotation on the document
            Text txt = Text.Create(doc, new Rect(10, 20, 30, 40));
            txt.SetIcon("UserIcon");
            txt.SetContents("It's an annotation!");
            page.AnnotPushBack(txt);

            // Save the modified document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library with your license key
        PDFNet.Initialize("License");

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Access the first page of the document
            Page page = doc.GetPage(1);

            // Create a text annotation on the document
            Text txt = Text.Create(doc, new Rect(10, 20, 30, 40));
            txt.SetIcon("UserIcon");
            txt.SetContents("It's an annotation!");
            page.AnnotPushBack(txt);

            // Save the modified document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
$vbLabelText   $csharpLabel

PDF查看器显示一个文档,其中有一个文本注释,内容为

如何将文档转换为PDF?

Apryse C#能够将多种文档格式转换为PDF,包括Office文件图像和HTML。 此功能确保文档格式的统一,便于归档、分享或展示。

using pdftron;
using pdftron.PDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Create a new PDF document
        PDFDoc pdfdoc = new PDFDoc();

        // Convert a Word document to PDF and add it to the PDF document
        Convert.ToPdf(pdfdoc, "input.docx");

        // Save the newly created PDF document
        pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
    }
}
using pdftron;
using pdftron.PDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Create a new PDF document
        PDFDoc pdfdoc = new PDFDoc();

        // Convert a Word document to PDF and add it to the PDF document
        Convert.ToPdf(pdfdoc, "input.docx");

        // Save the newly created PDF document
        pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
    }
}
$vbLabelText   $csharpLabel

如何从PDF中提取内容?

Apryse C#擅长从PDF文档中提取文本、图像和其他内容。 此能力支持内容分析、数据提取和信息检索应用,实现高效的PDF内容处理。

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Iterate through each page of the document
            PageIterator itr = doc.GetPageIterator();
            for (; itr.HasNext(); itr.Next())
            {
                Page page = itr.Current();

                // Extract text from the page
                TextExtractor txt = new TextExtractor();
                txt.Begin(page);

                // Print the extracted text to the console
                Console.WriteLine(txt.GetAsText());
            }
        }
    }
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Iterate through each page of the document
            PageIterator itr = doc.GetPageIterator();
            for (; itr.HasNext(); itr.Next())
            {
                Page page = itr.Current();

                // Extract text from the page
                TextExtractor txt = new TextExtractor();
                txt.Begin(page);

                // Print the extracted text to the console
                Console.WriteLine(txt.GetAsText());
            }
        }
    }
}
$vbLabelText   $csharpLabel

Console output showing extracted invoice text data including invoice number INV-001, date February 14 2024, customer John Doe, and product details with prices totaling $35.00

如何使用Apryse保护PDF文件?

Apryse C#提供完整的工具用于保护PDF文件。 您可以应用密码保护、加密文档,并管理用户权限以保障敏感信息。

using pdftron;
using pdftron.SDF;
using pdftron.PDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Initialize the security handler
            doc.InitSecurityHandler();

            // Create a new security handler
            SecurityHandler newHandler = new SecurityHandler();

            // Set the user password for the document
            newHandler.ChangeUserPassword("new_password");

            // Grant permission to print the document
            newHandler.SetPermission(SecurityHandler.Permission.e_print, true);

            // Apply the security handler to the document
            doc.SetSecurityHandler(newHandler);

            // Save the secured document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
using pdftron;
using pdftron.SDF;
using pdftron.PDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Initialize the security handler
            doc.InitSecurityHandler();

            // Create a new security handler
            SecurityHandler newHandler = new SecurityHandler();

            // Set the user password for the document
            newHandler.ChangeUserPassword("new_password");

            // Grant permission to print the document
            newHandler.SetPermission(SecurityHandler.Permission.e_print, true);

            // Apply the security handler to the document
            doc.SetSecurityHandler(newHandler);

            // Save the secured document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
$vbLabelText   $csharpLabel

如何编辑和加密敏感信息?

Apryse C#支持从PDF文档中编辑敏感信息——这是确保合规和隐私问题的关键。 此功能允许永久删除或遮盖PDF中的文本和图像。

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Define redaction areas on specific pages
            Redactor.Redaction[] redactions = {
                new Redactor.Redaction(1, new Rect(100, 100, 200, 200), false, "redacted"),
            };

            // Apply redactions to the document
            Redactor.Redact(doc, redactions);

            // Save the redacted document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Define redaction areas on specific pages
            Redactor.Redaction[] redactions = {
                new Redactor.Redaction(1, new Rect(100, 100, 200, 200), false, "redacted"),
            };

            // Apply redactions to the document
            Redactor.Redact(doc, redactions);

            // Save the redacted document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
$vbLabelText   $csharpLabel

有哪些文档和支持可用?

IronPDF提供了哪些支持?

文档:IronPDF提供完整的文档,涵盖从入门指南到高级功能,如HTML转PDFPDF编辑合并拆分安全性。 文档提供易于遵循的内容,配有详尽的代码示例和解释,引导您实现各种PDF功能。

支持:IronPDF通过多个渠道提供支持,包括电子邮件支持、工单支持和实时工程支持聊天,您可以与他们的技术团队联系以解决具体问题。 您的应用程序可以立即从他们的反馈系统中受益。

Iron Support Team聊天界面,提供与工程支持或许可销售团队连接的选项

Apryse C#提供了哪些支持?

文档:Apryse C#(前身为.NET的PDFTron)提供详细文档,包括完整的API参考、开发者指南和用于多样的PDF操作任务的示例代码。

支持:Apryse通过与其技术团队的直接电子邮件通信提供开发者支持,用于疑难解答和实施问题。 您也可以在 Stack Overflow 上提问。

有哪些许可证选项和定价?

IronPDF的许可证选项有哪些?

IronPDF为不同项目需求提供多种许可证选项。 定价从$799一个Lite许可证起。 这些许可证根据开发者数量、地点和项目覆盖范围各不相同。 IronPDF还提供免版税再分发选项,以及特定定价的附加支持。

IronPDF的永久许可证选项包括:

  • Lite版:价格为$799,适合1个开发者、1个位置和1个项目,包括电子邮件支持。
  • Plus版:价格$1,199,覆盖最多3个开发者、3个地点和3个项目,提供24小时电子邮件和聊天支持,以及电话支持。
  • 专业版:价格$2,399,此版本适用于最多10个开发者、10个地点和10个项目,提供全面的支持,包括电子邮件、聊天、电话和屏幕共享支持。

他们还提供价格为$500的月度订阅,包括10,000次API调用,额外调用每次$0.02。 对于无限使用,IronPDF提供基于报价的企业解决方案。 此解决方案包括无限的永久许可证和API调用等其他功能。

IronPDF pricing page showing three perpetual license tiers: Lite ($749), Plus ($1,499), and Professional ($2,999), with the Plus option selected and showing a total of $2,498 including extended support.

Apryse C#的许可证选项有哪些?

Apryse C#提供基于特定项目需求的定制定价,包括功能、文档量和部署场景。 您必须联系他们的销售团队以获取Apryse定价信息

Apryse定价询价表格包含联系信息和应用用途详细信息的字段

我应该选择哪个PDF库?

无论是IronPDF还是Apryse C#,两者都为处理PDF的.NET开发者提供了有效的能力。 IronPDF凭借其广泛的PDF操作功能具备优势。 其杰出的功能包括广泛的编辑使用IronPDF合并PDF。 通过Iron Suite包,您可以以具有成本效益的价格访问多种工具,为您的开发提供可靠的多种需求的实用工具。

IronPDF 因其在大多数 PDF 处理场景中的整体通用性和价值主张而脱颖而出。 您最终的决定应与您的项目需求和开发所需的特定功能相一致。

{i:(Apryse C# 是其各自所有者的注册商标。 本网站与 Apryse C# 无关,也未得到 Apryse C# 的支持或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。)}]

常见问题解答

IronPDF和Apryse C#在PDF操作方面的主要区别是什么?

IronPDF以其与.NET的无缝集成以及在HTML到PDF转换、表单处理和安全特性方面的先进能力而闻名。Apryse C#,前称为PDFTron SDK,专注于内容提取和文档转换,提供如注释和涂销等高级特性。

如何在.NET应用程序中将HTML转换为PDF?

可以使用IronPDF库的RenderHtmlAsPdf方法将HTML字符串直接转换为PDF文档。这对从网页内容或HTML模板生成PDF非常有用。

在.NET项目中安装IronPDF的步骤是什么?

IronPDF可以通过Visual Studio中的NuGet包管理器轻松安装。您也可以使用包管理器控制台执行命令Install-Package IronPDF或直接从NuGet网站下载。

IronPDF如何处理PDF安全和加密?

IronPDF提供全面的安全选项,包括加密文档、设置用户权限和管理数字签名的能力。这确保PDF受到保护并符合安全标准。

IronPDF提供哪些高级PDF编辑功能?

IronPDF支持一系列高级编辑功能,包括合并和拆分文档、添加水印,以及自定义页眉和页脚。它还提供版面定制选项以便更个性化地创建文档。

IronPDF用户有哪些支持和资源可用?

IronPDF提供广泛的文档、电子邮件支持、基于工单的支持和实时工程师聊天,以协助开发者实施和排查问题。这确保用户拥有进行有效PDF操作所需的资源。

IronPDF有哪些许可选项?

IronPDF提供多种许可选项,包括Lite、Plus和Professional许可证,以满足不同的支持和开发者需求。还提供月度订阅模式和企业解决方案以供更广泛使用。

如何使用Apryse C#从PDF中提取文本?

Apryse C#提供强大的文本提取功能,允许开发者通过编程方式从PDF中提取内容。该功能对需要数据分析或内容操作的应用程序至关重要。

Apryse C#可以将哪些文档格式转换为PDF?

Apryse C#支持将各种文档格式,包括Office文档、图像和HTML文件,转换为PDF。这一功能对于在不同平台上保持文档展示的一致性至关重要。

IronPDF对.NET开发者的主要特性是什么?

IronPDF以其先进的功能而闻名,如HTML到PDF转换、全面的表单处理和文档安全。因其性能、可扩展性及与.NET的无缝集成而广受赞誉,使其成为广泛PDF处理场景的理想选择。

Curtis Chau
技术作家

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

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

Apryse Logo

厌倦了昂贵的续订和过时的产品更新?

借助我们的技术迁移支持和更优惠的方案,轻松从Apryse切换而来。

IronPDF Logo

Iron Support Team

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