
如何在C#中以编程方式重新排列PDF页面
Aspose.PDF和IronPDF都使您能够在C#中以编程方式创建PDF文档,其中IronPDF提供更简单的HTML到PDF转换,使用Chrome渲染,而Aspose.PDF通过其文档对象模型提供细粒度控制。

需要哪些先决条件?
在开始使用 C# 创建 PDF 文件之前,请确保您已具备以下条件:
- .NET 10或兼容的 .NET 6+ 运行时
- Visual Studio 2022 或兼容的集成开发环境
- 具备 C# 编程基础知识
- NuGet 包管理器已配置
这两个库都支持 Windows、Linux 和 macOS 环境,但每个平台都有特定的安装注意事项。 IronPDF 还支持Docker 容器和所有主流云平台。

如何安装Aspose.PDF和IronPDF?
如何通过包管理器控制台安装Aspose.PDF?
在 Visual Studio 中打开软件包管理器控制台并运行:
Install-Package Aspose.PDF
安装程序会下载 Aspose.PDF 及其依赖项。 该库大约需要 150 MB 的磁盘空间,并包含完整的文档。 对于具有自定义软件包源的高级安装场景,您可能需要手动配置其他依赖项。

如何通过 NuGet 安装 IronPDF?
可以使用程序包管理器控制台或 .NET CLI:
IronPDF 安装程序会自动包含 Chrome 渲染引擎和所有必要的依赖项。 对于 Docker 部署,可能需要额外的 Linux 特定配置来确保正确的渲染功能。

为什么 IronPDF 要内置 Chrome 引擎?
IronPDF 内置 Chrome 引擎,可在 Windows、Linux、macOS 和 Docker 上实现卓越的 HTML 渲染效果。 这确保了像素级的渲染效果与浏览器输出完全匹配,包括对现代 CSS、JavaScript 和网络字体的支持。

如何创建你的第一个PDF文档?
使用这两个库创建 PDF 文件可以发现它们本质上不同的设计理念。 Aspose 通过显式对象模型构建文档,而 IronPDF 使用 Chrome 直接将 HTML 转换为 PDF。 下面的示例并排展示了这些方法,以便您可以评估哪种方法适合您的项目。
Aspose.PDF如何创建文档?
using Aspose.Pdf;
using Aspose.Pdf.Text;
// Create new instance of Document class
var document = new Document();
// Add pages to the document object
var page = document.Pages.Add();
// Create new TextFragment with Hello World text
var textFragment = new TextFragment("Hello World!");
textFragment.TextState.FontSize = 24;
// Add text to paragraphs collection
page.Paragraphs.Add(textFragment);
// Save the generated PDF document
document.Save("output.pdf");Imports Aspose.Pdf
Imports Aspose.Pdf.Text
' Create new instance of Document class
Dim document As New Document()
' Add pages to the document object
Dim page As Page = document.Pages.Add()
' Create new TextFragment with Hello World text
Dim textFragment As New TextFragment("Hello World!")
textFragment.TextState.FontSize = 24
' Add text to paragraphs collection
page.Paragraphs.Add(textFragment)
' Save the generated PDF document
document.Save("output.pdf")此代码通过构建文档对象模型来创建 PDF 文档。 您创建一个新文档,将页面添加到集合中,然后向这些页面添加内容。 Document类提供基础,而段落则容纳您的内容。 该方法需要了解 Aspose 的对象层次结构并显式地管理字体。 Aspose 的官方文档涵盖了其在 aspose.com 上的完整基于 DOM 的 API 。
Aspose.PDF输出是什么样子?

IronPDF是如何创建文档的?
using IronPdf;
// Create new instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF file
var html = "<h1>Hello World!</h1>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Save PDF files using SaveAs method
pdf.SaveAs("output.pdf");Imports IronPdf
' Create new instance of ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Convert HTML string to PDF file
Dim html As String = "<h1>Hello World!</h1>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Save PDF files using SaveAs method
pdf.SaveAs("output.pdf")IronPDF采用了一种不同的方法——它使用Chrome浏览器直接将HTML渲染成PDF格式。 这样,您就可以编写标准的 HTML 标记,并在最终文档中准确地呈现它。 您还可以从本地 HTML 文件或指向实时网页的 URL 进行渲染。
IronPDF 的输出效果如何?

如何创建实际使用的发票 PDF 文件?
发票生成是商业应用中最常见的 PDF 用例之一。 以下示例演示了带有明细表的简单发票。 对比这两种方法,可以清楚地看出对象模型控制和 HTML 驱动的简洁性之间的权衡。
如何使用Aspose.PDF构建发票?
using Aspose.Pdf;
using Aspose.Pdf.Text;
// Create new Document instance
var document = new Document();
var page = document.Pages.Add();
// Add title text
var title = new TextFragment("INVOICE");
title.TextState.FontSize = 28;
title.HorizontalAlignment = HorizontalAlignment.Center;
page.Paragraphs.Add(title);
// Create table object for invoice items
var table = new Table();
table.ColumnWidths = "200 100 100";
// Add header row to table
var headerRow = table.Rows.Add();
headerRow.Cells.Add("Description");
headerRow.Cells.Add("Quantity");
headerRow.Cells.Add("Price");
// Add data rows
var dataRow = table.Rows.Add();
dataRow.Cells.Add("Product A");
dataRow.Cells.Add("2");
dataRow.Cells.Add("$50.00");
// Add table to page paragraphs
page.Paragraphs.Add(table);
document.Save("invoice.pdf");Imports Aspose.Pdf
Imports Aspose.Pdf.Text
' Create new Document instance
Dim document As New Document()
Dim page As Page = document.Pages.Add()
' Add title text
Dim title As New TextFragment("INVOICE")
title.TextState.FontSize = 28
title.HorizontalAlignment = HorizontalAlignment.Center
page.Paragraphs.Add(title)
' Create table object for invoice items
Dim table As New Table()
table.ColumnWidths = "200 100 100"
' Add header row to table
Dim headerRow As Row = table.Rows.Add()
headerRow.Cells.Add("Description")
headerRow.Cells.Add("Quantity")
headerRow.Cells.Add("Price")
' Add data rows
Dim dataRow As Row = table.Rows.Add()
dataRow.Cells.Add("Product A")
dataRow.Cells.Add("2")
dataRow.Cells.Add("$50.00")
' Add table to page paragraphs
page.Paragraphs.Add(table)
document.Save("invoice.pdf")Aspose.PDF .NET API需要以编程方式构建每个元素。 您创建文档对象,添加页面,然后将内容添加到段落集合中。 这种方法在需要精确控制时具有明显的优势,但需要编写更多代码才能实现复杂的布局。 要添加页眉和页脚或设置自定义边距,必须先初始化其他配置对象,然后再保存。
如何使用 IronPDF 创建发票?
using IronPdf;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
// HTML string with invoice content
var html = @"
<html>
<head>
<style>
table { width: 100%; }
th, td { padding: 8px; }
</style>
</head>
<body>
<h1>INVOICE</h1>
<table>
<tr><th>Description</th><th>Quantity</th><th>Price</th></tr>
<tr><td>Product A</td><td>2</td><td>$50.00</td></tr>
</table>
</body>
</html>";
// Generate PDF from HTML
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
' HTML string with invoice content
Dim html As String = "
<html>
<head>
<style>
table { width: 100%; }
th, td { padding: 8px; }
</style>
</head>
<body>
<h1>INVOICE</h1>
<table>
<tr><th>Description</th><th>Quantity</th><th>Price</th></tr>
<tr><td>Product A</td><td>2</td><td>$50.00</td></tr>
</table>
</body>
</html>"
' Generate PDF from HTML
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")using IronPDF,您只需编写标准的 HTML 代码,渲染引擎会自动处理其余部分。您的应用程序可以立即引用外部样式表、添加图像和包含链接。 渲染选项可对输出进行精细控制,包括自定义纸张尺寸和页面方向。
发票输出格式是什么样的?

有哪些高级功能可用?
这两个库的功能都远远超出了基本的PDF创建功能。 了解这些高级功能有助于您确定哪个库最符合您的需求。
如何将网页转换为PDF?
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("website.pdf");Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("website.pdf")IronPDF 擅长 URL 转 PDF,能够处理带有 JavaScript、cookie 和身份验证的复杂网站。 Chrome 引擎可确保现代 Web 应用程序的精确渲染,包括使用 Angular 或 React 构建的单页应用程序。
如何为PDF文件添加安全保护?
using IronPdf;
var renderer = new ChromePdfRenderer();
var html = "<h1>Confidential Report</h1>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Apply password protection and print rights
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<h1>Confidential Report</h1>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Apply password protection and print rights
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.SaveAs("secured.pdf")IronPDF 提供直观的方法,为您的 PDF 文档添加安全性和数字签名。 您还可以合并或拆分文件,并提取文本和图像以进行后续处理。
加密的 PDF 文件是什么样子的?

IronPDF还支持哪些其他高级功能?
IronPDF 支持多种其他应用场景,包括:
*符合 PDF/A 标准,可长期存档
IronPDF和Aspose.PDF如何进行并行对比?
下表总结了IronPDF和Aspose.PDF之间的主要区别,以帮助您快速做出决定:
| 特征 | IronPDF | Aspose.PDF |
|---|---|---|
| HTML到PDF渲染 | 是的——基于Chrome浏览器,像素级完美。 | 数量有限 |
| URL 转 PDF | 是的——支持 JavaScript 和 Cookie | 无 |
| 文档对象模型 API | 部分的 | 是的——完全的逐元素控制 |
| 跨平台支持 | Windows、Linux、macOS、Docker | Windows、Linux、macOS |
| 数字签名 | 是 | 是 |
| PDF/A 合规 | 是 | 是 |
| 许可证起价 | $999(包含技术支持) | 1199 美元(另加支持费用) |
| 免费试用 | 是的——所有功能均已加水印 | 是的——评估版 |
对比结果显示,如果您的工作流程以 HTML 内容、网页或现代前端技术为中心,那么 IronPDF 是更强大的选择。 Aspose.PDF在纯编程文档构建方面保持竞争力,其中细粒度的每个元素控制是优先考虑。
你应该选择哪个库?
何时应该使用 IronPDF?
当您需要以下服务时,IronPDF 是您的理想之选:
使用熟悉的网络技术将 HTML 转换为 PDF
- 渲染包含 JavaScript 驱动内容的完整网页
- 部署到 Docker 或云环境,例如 Azure 或 AWS
- 通过更简单的 API 实现更快的开发周期
- 生成与浏览器渲染完全一致的输出。

何时应该使用Aspose.PDF?
Aspose.PDF for .NET适用于当您:
- 通过程序化文档对象模型从头开始创建 PDF 需要对布局进行精细的逐元素控制。
- 构建以文档为中心的应用程序,而不是从 HTML 源代码开始。
- 要求符合特定的 PDF 格式规范,与任何渲染引擎无关
关于Aspose.PDF功能的详细分解可在Microsoft NuGet注册表条目中找到。
性能考虑因素有哪些?
IronPDF的Chrome引擎在HTML渲染方面提供优异表现,而Aspose.PDF在没有任何HTML源的纯编程生成方面表现可能更好。 对于异步操作,这两个库都提供了基于任务的 API。在规划大规模批量部署时,请考虑内存使用情况和渲染超时时间;在扩展规模时,请参考 IronPDF 的性能故障排除指南。
这些许可证有何异同?
IronPDF提供简单的许可,起价为$999,并包含支持和更新。 免费试用版包含所有功能,但带有用于开发和测试的水印。 许可证部署简单,提供多种配置选项。

Aspose.PDF从$1,199开始,支持和更新单独收费。 这两个库都提供试用版,供用户在购买前进行测试。 IronPDF 提供更灵活的选择,包括基于项目和 SaaS 的许可模式,使不断壮大的团队更容易进行预算。
接下来该怎么做?
这两个库都能有效地用 C# 创建 PDF 文档。 Aspose.PDF通过其文档对象模型提供细粒度控制,而IronPDF在使用熟悉的网络技术方面出色的HTML到PDF转换。
对于大多数现代 .NET 10 应用程序而言,IronPDF 凭借其直观的 API、卓越的 HTML 渲染和内置支持,提供了更高的价值。 无论您需要加载网页、添加图像还是构建复杂的布局,IronPDF 基于 Chrome 的方法都能大大简化这一过程。 该库的功能集涵盖了从基本的PDF 创建到高级签名和安全的所有方面。
IronPDF 支持多种部署方案,包括 Azure Functions、AWS Lambda 和 Blazor 应用程序。 如有疑问,可向工程支持团队咨询并查阅 API参考文档。
首先使用 IronPDF 的免费试用版,评估它是否能满足您的 PDF 生成需求。 您可以在 .NET 解决方案中使用所有功能来创建、转换和操作 PDF 文件,而无需任何前期投入。
要将IronPDF与其他流行替代方案进行对比,请参阅IronPDF与iText和IronPDF与PDFSharp的指南。

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


