IRONSOFTWAREHOME

How to Create a PDF in C#

Curtis Chau
Curtis Chau
Updated: 2026年4月24日

以编程方式创建 PDF 通常会带来重大挑战,无论是添加页眉和页脚,还是处理兼容性问题。 幸运的是,Iron Software 通过将各种 PDF 创建功能整合为直观易懂的方法,简化了这一过程,让开发人员可以直接投入到他们的项目中。 using IronPDF,您可以无缝地添加形状、文本、图像、页眉和页脚。 您还可以灵活设置文档的方向、大小和元数据,并导出到 PDF/UA 和 PDF/A 等多个标准。 此外,将 IronPDF 集成到现有应用程序中以用于 PDF 查看或以编程方式打印文档非常简单。

在本教程中,我们将探索每个功能并展示 IronPDF 如何提升开发体验。 它可以让您创建可阅读和可重用的代码组件,这些组件可以部署在任何受支持的环境和平台上。

在本文结束时,您将对如何使用 IronPDF 创建符合您需求的风格化和独特的 PDF 拥有扎实的理解。

要开始安装 IronPDF 并按照本文所列的教程示例,请查看这个快速安装指南,它将帮助您顺利设置。

快速入门:使用IronPDF创建您的第一个 PDF

仅需几行代码即可使用 IronPDF 在 C# 中轻松创建您的第一个 PDF。 本快速指南将向您展示如何初始化 PDF 文档、添加内容并保存它,从而确保新库开发人员的顺利开始。 在几秒钟内深入 PDF 创建并轻松扩展您的 C# 应用程序功能。

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2复制并运行这段代码。

    new IronPdf.PdfDocument(500, 500).SaveAs("output.pdf");
    C#
  3. 3部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF
    arrow pointer
目录

设计您的完美 PDF

创建空白 PDF

using IronPDF 创建空白 PDF 既直观又简单,仅需几行代码。 我们首先初始化一个新的SaveAs方法保存。 TextHeaderFooter

using IronPdf;

PdfDocument pdf = new PdfDocument(270, 270);

pdf.SaveAs("blankPage.pdf");

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

添加页眉和页脚

using IronPDF 轻松在 PDF 的顶部或底部添加页眉和页脚。 IronPDF 允许您添加两种类型的页眉和页脚。 "{page} of {total-pages}" HtmlHeaderFooter。 同时,HtmlHeaderFooter是一个更高级的变体,其允许开发人员自定义他们放置的HTML内容。

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

HTML 页眉和页脚

通过设置span标签中,并添加图像资源以确保文档是独特的。

using IronPdf;

string headerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>";

string footerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>";

// Instantiate renderer and create PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Create header and footer
HtmlHeaderFooter htmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = headerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = footerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

// Add to PDF
pdf.AddHtmlHeaders(htmlHeader);
pdf.AddHtmlFooters(htmlFooter);

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

文本页眉和页脚

下面的示例使用TextHeaderFooter和占位符值表示页码、URL和日期。

using IronPdf;

// Instantiate renderer and create PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter
{
    CenterText = "This is the header!",
};

// Create text footer
TextHeaderFooter textFooter = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

// Add text header and footer to the PDF
pdf.AddTextHeaders(textHeader);
pdf.AddTextFooters(textFooter);

pdf.SaveAs("addTextHeaderFooter.pdf");

除了上面显示的字段,我们还提供了以下占位符值,在渲染时可用并会被替换:{pdf-title}

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

添加页码

类似于上面的例子,我们可以使用HtmlHeaderFooter通过在页眉或页脚中放置占位符值来显示页码,文档渲染时将会显示。

using IronPdf;

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};

// Create html footer
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render a new PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Add header and footer
pdf.AddTextHeaders(textHeader);
pdf.AddHtmlFooters(htmlFooter);

pdf.SaveAs("pdfWithPageNumber.pdf");

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

使用 DataURIs 内嵌图像

有时候依赖资产目录过慢且低效,因此我们可以使用数据 URI 内嵌图像作为解决办法。 以下是关于如何做到这一点的简要代码示例。

using IronPdf;
using System;

// Read byte from image file
var pngBinaryData = System.IO.File.ReadAllBytes("My_image.png");

// Convert bytes to base64
var ImgDataURI = @"data:image/png;base64," + Convert.ToBase64String(pngBinaryData);

// Import base64 to img tag
var ImgHtml = $"<img src='{ImgDataURI}'>";

ChromePdfRenderer Renderer = new ChromePdfRenderer();

// Render the HTML string
var pdf = Renderer.RenderHtmlAsPdf(ImgHtml);

pdf.SaveAs("datauri_example.pdf");

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

OpenAI for PDF

IronPDF 通过支持 OpenAI 模型用于快速摘要、查询和记忆,利用 Microsoft Semantic Kernel,提升了效率和可扩展性。 以下是如何使用 OpenAI 快速总结 PDF 内容的简要代码示例。

using IronPdf;
using IronPdf.AI;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Connectors.OpenAI;
using Microsoft.SemanticKernel.Memory;
using System;
using System.Threading.Tasks;

// Setup OpenAI
var azureEndpoint = "<<enter your azure endpoint here>>";
var apiKey = "<<enter your azure API key here>>";
var builder = Kernel.CreateBuilder()
    .AddAzureOpenAITextEmbeddingGeneration("oaiembed", azureEndpoint, apiKey)
    .AddAzureOpenAIChatCompletion("oaichat", azureEndpoint, apiKey);
var kernel = builder.Build();

// Setup Memory
var memory_builder = new MemoryBuilder()
    // optionally use new ChromaMemoryStore("http://127.0.0.1:8000") (see https://github.com/microsoft/semantic-kernel/blob/main/dotnet/notebooks/09-memory-with-chroma.ipynb)
    .WithMemoryStore(new VolatileMemoryStore())
    .WithAzureOpenAITextEmbeddingGeneration("oaiembed", azureEndpoint, apiKey);
var memory = memory_builder.Build();

// Initialize IronAI
IronDocumentAI.Initialize(kernel, memory);

License.LicenseKey = "<<enter your IronPdf license key here";

// Import PDF document
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");

// Summarize the document
Console.WriteLine("Please wait while I summarize the document...");
string summary = await pdf.Summarize(); // optionally pass AI instance or use AI instance directly
Console.WriteLine($"Document summary: {summary}\n\n");

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

全面的 PDF 自定义

方向和旋转

方向

来自PaperOrientation属性允许您指定PDF的方向如何渲染。 在此示例中,我们将其设置为PdfPaperOrientation.Landscape以渲染PDF方向为横向模式。


ChromePdfRenderer renderer = new ChromePdfRenderer();

// Change paper orientation
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;

PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

pdf.SaveAs("landscape.pdf");

旋转

要设置PDF页面的旋转,我们可以使用PdfPageRotation枚举作为输入来旋转页面。

using IronPdf;
using IronPdf.Rendering;
using System.Collections.Generic;

PdfDocument pdf = PdfDocument.FromFile("landscape.pdf");

// Set all pages
pdf.SetAllPageRotations(PdfPageRotation.Clockwise90);

// Set a single page
pdf.SetPageRotation(1, PdfPageRotation.Clockwise180);

// Set multiple pages
List<int> selectedPages = new List<int>() { 0, 3 };
pdf.SetPageRotations(selectedPages, PdfPageRotation.Clockwise270);

pdf.SaveAs("rotatedLandscape.pdf");

有关设置 PDF 的方向和旋转的详细说明,以及探索其附加功能,请参阅我们的全面 操作指南

自定义纸张大小

通过方法height,来设定PDF的尺寸。 IronPDF还支持设置标准尺寸如A4,通过将PaperSize属性设置为可用枚举列表。

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

以厘米为单位的自定义纸张大小

using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Set custom paper size in cm
renderer.RenderingOptions.SetCustomPaperSizeinCentimeters(15, 15);

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Custom Paper Size</h1>");

pdf.SaveAs("customPaperSize.pdf");

标准纸张大小

在此示例中,我们还将属性PdfPaperSize.A4的枚举。

using IronPdf;
using IronPdf.Rendering;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Set paper size to A4
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Standard Paper Size</h1>");

pdf.SaveAs("standardPaperSize.pdf");

有关支持的标准化尺寸列表,请点击此处

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic

微软MVP

查看案例研究

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle

首席技术官,OPYN

查看案例研究

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones

首席软件工程师,Agorus Build

查看案例研究

标准合规

Export PDF/A Format Docs in C#

通过使用SaveAsPdfUA方法创建并导出与PDF/UA标准合规的PDF。

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.PdfA3b);

有关此代码片段的更详细解释以及探索其附加功能,请参阅我们的综合如何指南

Export PDF/UA Format Docs in C#

要在C#中将PDF转换为PDF/A,我们也可以使用IronPDF库,它支持最新的PDF/A标准,以确保您文件的完整性; 类似于上面的示例,我们调用SaveAsPdfA保存PDF为PDF/A标准。

using IronPdf;

// Open PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");

// Export as PDF/UA. Pass the document's natural language so assistive
// technologies announce the correct pronunciation.
pdf.SaveAsPdfUA("pdf-ua-wikipedia.pdf", NaturalLanguage: NaturalLanguages.English);
C#

在此示例中,我们将PDF保存为PDF/A-3变体,使用PdfAVersions的枚举。

有关支持的 PDF/A 版本的完整列表,请点击此处

结论

上面分享的简要示例展示了使用 IronPDF 创建 PDF 时可以解锁的卓越能力和突出功能。

如果您想请求一个功能或对 IronPDF 或许可有一般性问题,请联系我们的支持团队。 我们将非常乐意为您提供帮助。

常见问题解答

如何使用 IronPDF 在 C# 中创建 PDF 文档?

您可以通过初始化一个新的 PDF 文档对象并添加例如文本、图像和表格等内容,然后保存文件,来在 C# 中使用 IronPDF 创建 PDF 文档。

IronPDF 提供了哪些功能来编辑 PDF?

IronPDF 提供了用于编辑 PDF 的功能,包括添加水印、页眉、页脚和背景。它还支持合并、拆分和压缩 PDF。

我可以使用 IronPDF 将表单添加到 PDF 文档吗?

可以,IronPDF 允许您将交互式表单添加到 PDF 文档中。您可以创建表单字段,例如文本输入、复选框和单选按钮。

using IronPDF 可以用密码保护 PDF 吗?

当然可以,您可以使用 IronPDF 用密码保护您的 PDF 文档。它允许您设置用户和所有者密码,以控制访问和权限。

如何使用 IronPDF 向 PDF 应用水印?

要使用 IronPDF 应用水印,可以使用 PDF 编辑功能叠加文本或图像作为水印在 PDF 文档的每一页上。

IronPDF 可以压缩 PDF 文件以减小其大小吗?

是的,IronPDF的CompressAndSaveAs方法可以压缩嵌入的图像,并可选择性地移除PDF结构树,减少文件大小同时保持质量。只需调用CompressAndSaveAs(outputPath, quality, removeStructureTree)即可实现一步压缩和保存。

如何使用 IronPDF 向 PDF 添加页眉和页脚?

您可以通过指定要包含在每一页顶部或底部的文本或图像,使用 IronPDF 为您的 PDF 文档添加页眉和页脚。

IronPDF 是否支持 PDF 页面背景定制?

IronPDF 支持背景定制,允许您设置图像或颜色作为 PDF 页面背景,增强文档设计。

我可以使用 IronPDF 将 HTML 转换为 PDF 吗?

可以,IronPDF 提供将 HTML 转换为 PDF 的功能。您可以将包括 CSS 和 JavaScript 的复杂 HTML 内容渲染为 PDF 文档。

在 C# 项目中使用 IronPDF 的系统要求是什么?

IronPDF 兼容 .NET Framework 和 .NET Core。它需要 Windows、macOS 或 Linux 操作系统,并且与使用 Visual Studio 的 C# 项目无缝集成。

IronPDF 是否完全兼容 .NET 10?

是的——IronPDF 完全兼容 .NET 10。它可与最新的运行时环境无缝集成,充分利用 .NET 10 的性能改进和语言增强功能。它支持 Windows、macOS、Linux 和容器环境下的 .NET 版本 10、9、8、7、6、5、.NET Standard 2.0+ 和 .NET Framework 4.6.2+。

Curtis Chau
技术作家

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

...
阅读更多

准备开始了吗?

Nuget Downloads 20,667,543版本:2026.7刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.7

立即下载

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999

Key in blue circle

立即获取免费的 30 天试用版密钥

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户