跳至页脚内容
使用IRONPDF

如何使用C# PDFWriter创建PDF

用 C# 创建 PDF 文档曾经是一件令人头痛的事情。 大多数 C# PDFWriter 解决方案涉及复杂的 API 和大量的样板代码才能生成一个简单的 PDF 文件。如果您尝试过较旧的开源库,您就会知道它有多令人沮丧。

IronPDF 改变了这一切。 只需几行代码,您就可以创建 PDF 文档,添加新页面、段落、图像、页眉和页码,并保存它们,而无需处理底层细节。

在本文中,我们将向您展示如何使用 IronPDF 的文档对象、ChromePdfRenderer 和 PDF 生成方法在 .NET Framework 或 .NET Core 中直接从 Visual Studio 创建专业的 PDF 文档。 最后,您将准备好生成自己的 PDF 文件,无论是快速的“Hello World”测试还是完整的发票。

什么是 C# 中的 PDFWriter?

PDFWriter 是一个文档对象,允许开发人员以编程方式生成 PDF 文档、添加段落、图像、页眉并操作页面。 传统库通常需要手动定位、复杂的计算和明确的资源管理。

IronPDF 简化了这一切。 您可以使用 HTML 内容、CSS 从熟悉的 C# 环境中使用简单代码创建 PDF 文档,例如使用 static void Main(string[] args) 或使用类似 MemoryStream 的标准类。

一些库(如 iTextSharp)有一个名为 PdfWriter 的类,但在 C# 中,术语 PDFWriter 通常指的是任何以编程方式生成 PDF 文档的组件或库。

从低级操作转到高级生成可以提高生产力。 在 Visual Studio 或您的 IDE 中使用一个新的 PDFDocument 实例,您可以使用最少的代码创建 PDF。

如下所示,传统的 PDFWriter 库如 iTextSharp 需要大量样板代码,而 IronPDF 只需几行就能生成相同的 PDF 文档——更快、更简单、错误更少。

如何在您的 C# 项目中安装 IronPDF?

开始使用 IronPDF 不到一分钟。 最简单的安装方法是使用 NuGet 包管理器:

Install-Package IronPdf

或者,在 Visual Studio 中:

1.在解决方案资源管理器中右键单击您的项目 2.选择 "管理 NuGet 软件包"。

  1. 搜索“IronPDF”
  2. 点击安装

有关详细的平台特定安装,请查看 IronPDF 安装指南

如何使用 IronPDF 创建您的第一个 PDF?

与传统的 PDFWriter 实现不同,在 IronPDF 中,您不需要单独的 PDFWriter writer 类变量。 渲染器和 PdfDocument 对象内部处理所有写入任务。 这里是一个完整的工作示例:

using IronPdf;
// Instantiate the PDF renderer
var renderer = new ChromePdfRenderer();
// Create PDF from HTML string
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is my first PDF!</p>");
// Save the PDF
pdf.SaveAs("output.pdf");
using IronPdf;
// Instantiate the PDF renderer
var renderer = new ChromePdfRenderer();
// Create PDF from HTML string
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is my first PDF!</p>");
// Save the PDF
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ChromePdfRenderer 内部处理所有复杂性,将您的内容精确渲染到一个新文档中。

注意:您可以在几行中轻松添加图像、新页面、页眉和新段落,利用 IronPDF 的方法和文档对象功能。

如何将 HTML 转换为 PDF 文档

IronPDF 的真正力量在于生成复杂的 PDF 文档。 无论是从现有网页将 HTML 转换为 PDF还是创建动态报告,HTML 到 PDF 的转换都保持完整的保真度:

// Convert a URL to PDF
var urlPdf = renderer.RenderUrlAsPdf("https://example.com");
urlPdf.SaveAs("website.pdf");
// Convert an HTML file with IronPDF's PDF writer
var filePdf = renderer.RenderHtmlFileAsPdf("example-invoice.html");
filePdf.SaveAs("invoice.pdf");
// Use advanced rendering options for your C# PDF generator
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.EnableJavaScript = true;
// Convert a URL to PDF
var urlPdf = renderer.RenderUrlAsPdf("https://example.com");
urlPdf.SaveAs("website.pdf");
// Convert an HTML file with IronPDF's PDF writer
var filePdf = renderer.RenderHtmlFileAsPdf("example-invoice.html");
filePdf.SaveAs("invoice.pdf");
// Use advanced rendering options for your C# PDF generator
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.EnableJavaScript = true;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

渲染器支持完整的 CSS3、JavaScript 执行和响应式布局。 这确保您的 PDF 看起来完全如预期。 有关渲染选项的更多详细信息,请参阅 IronPDF 文档

HTML 文件输出

如何用 C# PDFWriter 创建 PDF:图 5 - HTML 文件在渲染为 PDF 文档前后的对比

实际使用案例:使用 IronPDF 生成 PDF 文档

在 C# 中生成实际的 PDF 通常涉及动态数据。 这是如何使用 IronPDF 的PDF 创建 API创建专业发票的方法。 下面的代码是一个示例发票模板。

string invoiceHtml = $@"
    <html>
    <head>
        <style>
            body {{ font-family: Arial; }}
            .header {{ background: #f0f0f0; padding: 20px; }}
            .total {{ font-weight: bold; font-size: 18px; }}
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #{invoiceNumber}</h1>
            <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
        </div>
        <table>
            <tr><td>Product</td><td>Quantity</td><td>Price</td></tr>
            {GenerateLineItems()}
        </table>
        <p class='total'>Total: ${totalAmount:F2}</p>
    </body>
    </html>";
// Use IronPDF's C# PDF writer to create the document
var invoicePdf = renderer.RenderHtmlAsPdf(invoiceHtml);
invoicePdf.SaveAs($"invoice-{invoiceNumber}.pdf");
string invoiceHtml = $@"
    <html>
    <head>
        <style>
            body {{ font-family: Arial; }}
            .header {{ background: #f0f0f0; padding: 20px; }}
            .total {{ font-weight: bold; font-size: 18px; }}
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #{invoiceNumber}</h1>
            <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
        </div>
        <table>
            <tr><td>Product</td><td>Quantity</td><td>Price</td></tr>
            {GenerateLineItems()}
        </table>
        <p class='total'>Total: ${totalAmount:F2}</p>
    </body>
    </html>";
// Use IronPDF's C# PDF writer to create the document
var invoicePdf = renderer.RenderHtmlAsPdf(invoiceHtml);
invoicePdf.SaveAs($"invoice-{invoiceNumber}.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这种方法结合了 HTML 模板的灵活性和 PDF 输出的可靠性,非常适合生成发票、报告、证书和其他业务文档。 了解更多关于在 ASP.NET 中创建 PDF 报告的信息。

输出

如何用 C# PDFWriter 创建 PDF:图 6 - 生成的 PDF 发票输出

哪些高级功能增强了您的 PDFWriter?

IronPDF 不仅限于基本的 PDF 创建,还提供企业级功能:

  • 页眉和页脚:使用 HtmlHeaderFooter 添加页码和品牌标识
  • 数字签名:使用加密签名保护文档
  • 水印:使用 ApplyStamp() 添加新图像或自定义文字水印
  • 加密:使用密码安全保护敏感内容
  • 表单字段:创建带有交互元素的可填写 PDF 表单
  • 页面操作:轻松合并、拆分、创建自定义页面大小和旋转页面

这是一个向您的 C# PDF 文档添加带页码的页眉的实际示例:

// Configure headers for your .NET PDF writer
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
    MaxHeight = 25
};
// Add page numbers to PDF programmatically
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
// Configure headers for your .NET PDF writer
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
    MaxHeight = 25
};
// Add page numbers to PDF programmatically
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

当我们使用这个时,可以在页脚生成带页码的 PDF 文件,并有一个自定义的页眉。 为了演示,我将从 HTML 字符串创建一个简单的多页 PDF:

// Generate long HTML content to create multiple pages for demonstration
// Multi-page HTML with explicit page breaks
string multiPageHtml = "";
for (int i = 1; i <= 5; i++) // 5 pages
{
    multiPageHtml += $@"
            <div style='page-break-after: always;'>
                <h1>Section {i}</h1>
                <p>This is section {i} of the report. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
                This content will appear on its own page thanks to the CSS page-break.</p>
            </div>";
}
//render HTML string a PDF
var multipagePdf = renderer.RenderHtmlAsPdf(multiPageHtml);
//save PDF
multipagePdf.SaveAs("multiPageReport.pdf");
// Generate long HTML content to create multiple pages for demonstration
// Multi-page HTML with explicit page breaks
string multiPageHtml = "";
for (int i = 1; i <= 5; i++) // 5 pages
{
    multiPageHtml += $@"
            <div style='page-break-after: always;'>
                <h1>Section {i}</h1>
                <p>This is section {i} of the report. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
                This content will appear on its own page thanks to the CSS page-break.</p>
            </div>";
}
//render HTML string a PDF
var multipagePdf = renderer.RenderHtmlAsPdf(multiPageHtml);
//save PDF
multipagePdf.SaveAs("multiPageReport.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出 with Page Numbers

如何用 C# PDFWriter 创建 PDF:图 7 - 上述代码示例生成的 PDF 输出

为什么选择 IronPDF 来满足您的 C# PDF 生成需求?

IronPDF 使在 C# 中生成 PDF 变得直观且可靠。 您无需专用的 PdfWriter 类,而是通过 IronPDF,渲染器和 PdfDocument 对象处理从 HTML 内容到页面大小、页眉和页脚的所有内容。 无论您是在为 Microsoft Office 集成创建发票、报告还是证书,IronPDF 都能帮助您在几行代码内完成任务。

凭借良好的文档、强大的支持选项和免费试用版,开始使用非常简单。 您可以轻松地试验新的 PDF 文档,添加图像或调整字体大小和页面布局而不费力。 IronPDF 将 PDF 创建从一项技术任务变成了一个顺畅、高效的工作流程。

立即开始使用 IronPDF。
green arrow pointer

准备好现代化您的 C# PDF writer 工作流程了吗? 开始您的免费试用并体验IronPDF如何简化 .NET 中的 PDF 创建。 凭借全面的文档和响应迅速的支持,您将在几分钟内生成专业的 PDF,而不是几个小时。

立即使用 IronPDF 改变您的文档创建方式,加入已经转向现代 PDF 生成的成千上万名开发者。

常见问题解答

什么是C# PDFWriter?

C# PDFWriter是一种允许开发人员使用C#编程语言以编程方式创建PDF文档的工具。

为什么开发人员应该选择C# PDFWriter?

开发人员应该选择C# PDFWriter,因为它简化了创建PDF的过程,减少了对复杂API和样板代码的需求。

IronPDF如何增强C#中的PDF创建?

IronPDF提供了一个简化的API,使开发人员更容易在他们的C#应用程序中生成、操作和自定义PDF文档。

旧版开源库存在哪些挑战?

旧版开源库通常具有复杂的API,需要大量样板代码,使PDF创建变得繁琐且耗时。

IronPDF能否处理复杂的PDF创建任务?

是的,IronPDF被设计成可以高效地处理简单和复杂的PDF创建任务,提供了大量的自定义和自动化功能。

使用IronPDF相对于其他PDF库有什么好处?

IronPDF提供了用户友好的API,全面的文档和强大的功能,减少了开发时间并提高了PDF输出的质量。

IronPDF适合C#开发的初学者吗?

是的,IronPDF适合初学者,因为它通过简单的代码示例和广泛的支持资源简化了PDF的创建。

IronPDF如何与.NET应用程序集成?

IronPDF与.NET应用程序无缝集成,允许开发人员在他们的项目中直接使用C#来整合PDF功能。

开发人员使用IronPDF可获得什么支持?

使用IronPDF的开发人员可以获得全面的文档、社区论坛和技术支持,以帮助解决任何开发挑战。

IronPDF可用于网络和桌面应用程序吗?

是的,IronPDF可以用于网络和桌面应用程序,提供了在不同平台上生成和管理PDF的灵活性。

IronPDF 是否支持最新的 .NET 10 版本?

是的,IronPDF 完全支持 .NET 10,以及 .NET 9、.NET 8、.NET 7、.NET 6、.NET Core 和 .NET Framework,使开发人员能够在现代 .NET 10 应用程序中使用 C# PDFWriter 和相关 API。

Curtis Chau
技术作家

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

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