C# PDF转换(开发者教程)
C# 中的 PDF 转换(开发者教程)
IronPDF 允许您在 C# 应用程序中仅用几行代码即可将文档转换为 PDF。 它可在 Windows、Linux 和 macOS 平台上无缝处理 HTML 转 PDF 及图片转 PDF 的转换。
本文将向您展示如何使用 IronPDF(一款适用于 .NET 和 .NET Core 的 PDF 库)进行 PDF 转换。 无论您使用的是 Windows、Linux 还是 macOS,IronPDF 都能为您的所有 PDF 需求提供跨平台支持。 该库提供了全面的文档和教程,助您快速入门。
什么是 IronPDF?
- PDF 生成:通过 C# 编程,可轻松从各种来源(包括 HTML、图像、文本和现有文件)创建 PDF 文档。
- HTML 转 PDF:将 HTML 内容(包括网页或 HTML 模板)转换为高质量的 PDF 文件,并可完全控制样式和格式。
- 图像到PDF转换: 将图像文件(如JPEG、PNG或BMP)转换为PDF文档,方便图像集成到PDF报告和文档中。
- PDF 操作:全面的 PDF 编辑功能,包括从 PDF 中提取文本、合并和拆分 PDF、旋转 PDF,以及添加、修改或删除内容和注释。
- PDF 表单:创建、填写并从 PDF 表单中提取数据,适用于需要交互式表单和数据收集的应用程序。
无论您需要从头生成 PDF、将 HTML 页面、图像或现有文档转换为 PDF 格式,还是需要处理现有 PDF,IronPDF 都提供简便的 API 来完成这些任务。 该库采用 Chrome 渲染引擎,确保您的 HTML 转换效果与预期完全一致。 如需查看完整功能列表,请访问 IronPDF 功能概览网站。
- PDF 生成:通过编程方式从 HTML、图像、文本和文件创建 PDF。 支持自定义纸张尺寸、页面方向和页边距。 也支持多种国际语言。
- HTML 转 PDF:将 HTML 转换为完整保留样式的 PDF。 支持 CSS 媒体查询、JavaScript 和网络字体。 支持 WebGL 和响应式设计。
- 图片转 PDF:将 JPEG、PNG 或 BMP 文件转换为 PDF。 支持 TIFF 格式转换和 SVG 图形。 支持使用 DataURI 嵌入图片。
- PDF 处理:支持文本提取、合并/拆分及注释功能,用于编辑 PDF 文件。 此外,还需对文本进行遮盖处理、添加水印以及管理元数据。
- PDF 表单:创建并填写 PDF 表单。 支持创建和编辑表单。 可将 PDF 文件转换为静态内容。
如何创建一个新的 Visual Studio 项目?
在深入代码之前,让我们先创建一个新的 C# 控制台应用程序项目。 如果您是 .NET 开发的新手,快速入门指南中的额外设置技巧可能会对您有所帮助。 F# 开发者也可以使用 IronPDF 结合函数式编程方法进行开发。
-
打开 Visual Studio,点击"文件">"新建">"项目"以创建一个新项目。
Visual Studio 文件菜单已展开,显示各种选项,包括新建项目、克隆存储库、打开文件/项目和保存选项以及键盘快捷键。 Visual Studio 中的"文件"菜单提供了对关键项目管理功能的快速访问,从创建新项目到从版本控制系统克隆仓库。
-
此时会弹出一个新窗口。 选择"控制台应用程序"模板,然后点击底部的"下一步"。 此模板非常适合在转向 Blazor 应用程序或 ASP.NET MVC 等复杂项目类型之前,学习 PDF 基础知识。
Visual Studio 的"创建新项目"对话框显示已选择控制台应用程序模板,用于创建支持 Windows、Linux 和 macOS 的 .NET Core 命令行应用程序。 Visual Studio 中的"控制台应用程序"模板为使用 .NET Core 创建跨平台命令行应用程序提供了起点。
-
在下一窗口中,为项目命名并选择保存位置,然后单击"下一步"。 建议将项目整理到专用文件夹中,以便于访问代码示例和样例文件。
Visual Studio 的"配置新项目"对话框显示了名为"PDF 转换"的控制台应用程序的设置,包括项目位置和解决方案设置。 步骤 2:配置新的控制台应用程序项目,为 PDF 转换应用程序设置适当的命名和位置。
-
选择目标框架,然后点击"创建"。 对于现代应用程序,建议使用 .NET 6 或更高版本以获得最佳性能和支持。 最新版本提供了更优的性能和异步处理能力。
Visual Studio 项目创建对话框显示"附加信息"页面,其中已选择 .NET 5.0 作为控制台应用程序的目标框架。 在 Visual Studio 中创建新控制台应用程序的最后一步,即选择目标框架。 请注意,.NET 5.0 已被标记为"不再受支持"——建议在当前项目中使用 .NET 6.0 或 .NET 8.0。
您的项目已准备就绪。 让我们安装 IronPDF。
如何安装 IronPDF?
IronPDF 提供了多种安装方法。 这里我们将使用 NuGet 包管理器。 您可以探索适用于特定场景的高级安装方法,包括 Windows 安装程序选项和 Linux 配置。
- 在 Visual Studio 中,打开"工具"菜单,将鼠标悬停在"NuGet 包管理器"上。
-
点击"管理解决方案的 NuGet 包"。
Visual Studio 工具菜单已展开,显示 NuGet 包管理器子菜单,其中包含"包管理器控制台"、"管理解决方案的 NuGet 包"和"包管理器设置"等选项。 Visual Studio 中的"工具"菜单提供了 NuGet 包管理器的功能,这些功能对于管理 .NET 项目中的外部库和依赖项至关重要
- 此时会弹出一个新窗口。 点击"浏览"选项卡,搜索"IronPDF"。
- 选择 IronPDF 并点击"安装"。 对于小型部署,建议考虑 IronPdf.Slim。
-
您也可以通过包管理器控制台进行安装:
Install-Package IronPdf
或直接从 IronPDF NuGet 页面下载。 关于容器,请参阅 Docker 部署指南,或将 IronPDF 作为远程容器运行。
如何使用 IronPDF 将文件转换为 PDF?
让我们来探讨如何将不同文档格式转换为 PDF。 IronPDF 提供了丰富的渲染选项以供自定义输出,包括自定义日志记录和性能监控。
- HTML文件到PDF文档
- 图像到PDF文档
如何将 HTML 文件转换为 PDF?
使用 IronPDF 将 HTML 转换为 PDF 非常简单。 该库支持页眉和页脚、分页以及自定义 CSS 等高级功能。 您可以处理 Bootstrap 布局,并为经过身份验证的内容实现 Cookie 管理。
以下是将 HTML 文件转换为 PDF 的方法:
using IronPdf;
// Create an instance of the ChromePdfRenderer class.
var renderer = new ChromePdfRenderer();
// Optional: Configure rendering options for better output
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
// Set print CSS media type for proper formatting
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Add custom headers for authenticated content
renderer.RenderingOptions.CustomCssUrl = "___PROTECTED_URL_142___";
// Configure viewport for responsive design
renderer.RenderingOptions.ViewPortWidth = 1024;
// Render the HTML file as a PDF document.
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
// Optional: Add metadata
pdf.MetaData.Author = "Your Company";
pdf.MetaData.Keywords = "invoice, pdf, conversion";
pdf.MetaData.CreationDate = System.DateTime.Now;
// Save the PDF document as an output file.
pdf.SaveAs("output.pdf");
// Alternative: Save with compression
pdf.CompressImages(80);
pdf.SaveAs("compressed-output.pdf");
using IronPdf;
// Create an instance of the ChromePdfRenderer class.
var renderer = new ChromePdfRenderer();
// Optional: Configure rendering options for better output
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
// Set print CSS media type for proper formatting
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Add custom headers for authenticated content
renderer.RenderingOptions.CustomCssUrl = "___PROTECTED_URL_142___";
// Configure viewport for responsive design
renderer.RenderingOptions.ViewPortWidth = 1024;
// Render the HTML file as a PDF document.
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
// Optional: Add metadata
pdf.MetaData.Author = "Your Company";
pdf.MetaData.Keywords = "invoice, pdf, conversion";
pdf.MetaData.CreationDate = System.DateTime.Now;
// Save the PDF document as an output file.
pdf.SaveAs("output.pdf");
// Alternative: Save with compression
pdf.CompressImages(80);
pdf.SaveAs("compressed-output.pdf");
Imports IronPdf
' Create an instance of the ChromePdfRenderer class.
Dim renderer As New ChromePdfRenderer()
' Optional: Configure rendering options for better output
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
' Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = True
' Set print CSS media type for proper formatting
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
' Add custom headers for authenticated content
renderer.RenderingOptions.CustomCssUrl = "___PROTECTED_URL_142___"
' Configure viewport for responsive design
renderer.RenderingOptions.ViewPortWidth = 1024
' Render the HTML file as a PDF document.
Dim pdf = renderer.RenderHtmlFileAsPdf("invoice.html")
' Optional: Add metadata
pdf.MetaData.Author = "Your Company"
pdf.MetaData.Keywords = "invoice, pdf, conversion"
pdf.MetaData.CreationDate = System.DateTime.Now
' Save the PDF document as an output file.
pdf.SaveAs("output.pdf")
' Alternative: Save with compression
pdf.CompressImages(80)
pdf.SaveAs("compressed-output.pdf")
这段代码将 HTML 文件("invoice.html")转换为 PDF 文档。 通过创建 ChromePdfRenderer,您正在使用 Chromium 引擎来确保准确转换,从而保持网页的外观。 渲染选项允许您设置自定义边距和纸张大小。生成的 PDF 文件将以"output.pdf"格式保存,只需调用"SaveAs"即可。 这一简化的流程使 C# 中的 HTML 转 PDF 操作变得简单直观。
对于复杂场景,可探索将 URL 转换为 PDF、处理 HTML 字符串,或在 ASP.NET MVC 应用程序中转换 CSHTML 文件。 您还可以渲染 JavaScript 图表并处理 Angular 应用程序。
HTML转PDF的输出效果如何?
PDF 查看器界面显示了一个示例发票模板,其中包含占位符公司信息、总计 190.00 美元的两项商品以及导航控件。 在 PDF 阅读器中查看的基本发票模板示例,展示了标准发票要素,包括发件人/收件人详细信息、服务明细及价格计算
如何将图片转换为 PDF?
让我们将图片转换为 PDF 文档。 只需少量代码,即可转换 JPEG、PNG、BMP 和 SVG 文件。 该库还支持绘制线条和矩形,或在现有 PDF 中添加文本和位图等高级功能。
我可以转换哪些图像格式?
IronPDF 主页截图,展示了 C# PDF 库在 .NET 应用程序中创建、编辑和读取 PDF 的关键功能。 IronPDF 提供了一个功能全面的 C# PDF 库,支持 HTML 转 PDF 转换、跨平台兼容性,并为 .NET 应用程序提供了 50 多项 PDF 操作功能。
using IronPdf;
using System.IO;
using System.Linq;
// Enumerate all PNG files from the specified directory.
var imageFiles = Directory.EnumerateFiles("assets").Where(f => f.EndsWith(".png"));
// Create an instance of ImageToPdfConverter
var imageToPdf = new ImageToPdfConverter();
// Optional: Set rendering options for better control
imageToPdf.ImageBehavior = ImageBehavior.CropPage;
imageToPdf.PaperSize = IronPdf.Imaging.PdfPaperSize.A4;
// Set margins for professional appearance
imageToPdf.PaperMargins = new IronPdf.Imaging.PdfPaperMargins(25);
// Control image quality and compression
imageToPdf.ImageQuality = 90; // 0-100 quality scale
// Convert the images to a PDF document.
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("composite.pdf");
// Alternative: Convert a single image with custom settings
var singleImagePdf = imageToPdf.ImageToPdf("assets/logo.png");
singleImagePdf.SaveAs("single-image.pdf");
// Advanced: Add metadata to image PDF
singleImagePdf.MetaData.Title = "Company Logo";
singleImagePdf.MetaData.Subject = "Brand Assets";
singleImagePdf.MetaData.CreationDate = DateTime.Now;
singleImagePdf.SaveAs("logo-with-metadata.pdf");
using IronPdf;
using System.IO;
using System.Linq;
// Enumerate all PNG files from the specified directory.
var imageFiles = Directory.EnumerateFiles("assets").Where(f => f.EndsWith(".png"));
// Create an instance of ImageToPdfConverter
var imageToPdf = new ImageToPdfConverter();
// Optional: Set rendering options for better control
imageToPdf.ImageBehavior = ImageBehavior.CropPage;
imageToPdf.PaperSize = IronPdf.Imaging.PdfPaperSize.A4;
// Set margins for professional appearance
imageToPdf.PaperMargins = new IronPdf.Imaging.PdfPaperMargins(25);
// Control image quality and compression
imageToPdf.ImageQuality = 90; // 0-100 quality scale
// Convert the images to a PDF document.
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("composite.pdf");
// Alternative: Convert a single image with custom settings
var singleImagePdf = imageToPdf.ImageToPdf("assets/logo.png");
singleImagePdf.SaveAs("single-image.pdf");
// Advanced: Add metadata to image PDF
singleImagePdf.MetaData.Title = "Company Logo";
singleImagePdf.MetaData.Subject = "Brand Assets";
singleImagePdf.MetaData.CreationDate = DateTime.Now;
singleImagePdf.SaveAs("logo-with-metadata.pdf");
Imports IronPdf
Imports System.IO
Imports System.Linq
' Enumerate all PNG files from the specified directory.
Dim imageFiles = Directory.EnumerateFiles("assets").Where(Function(f) f.EndsWith(".png"))
' Create an instance of ImageToPdfConverter
Dim imageToPdf = New ImageToPdfConverter()
' Optional: Set rendering options for better control
imageToPdf.ImageBehavior = ImageBehavior.CropPage
imageToPdf.PaperSize = IronPdf.Imaging.PdfPaperSize.A4
' Set margins for professional appearance
imageToPdf.PaperMargins = New IronPdf.Imaging.PdfPaperMargins(25)
' Control image quality and compression
imageToPdf.ImageQuality = 90 ' 0-100 quality scale
' Convert the images to a PDF document.
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("composite.pdf")
' Alternative: Convert a single image with custom settings
Dim singleImagePdf = imageToPdf.ImageToPdf("assets/logo.png")
singleImagePdf.SaveAs("single-image.pdf")
' Advanced: Add metadata to image PDF
singleImagePdf.MetaData.Title = "Company Logo"
singleImagePdf.MetaData.Subject = "Brand Assets"
singleImagePdf.MetaData.CreationDate = DateTime.Now
singleImagePdf.SaveAs("logo-with-metadata.pdf")
此代码展示了两种方法:批量转换多个 PNG 文件以及单张图片转换。 它会在 assets 文件夹中找到所有 PNG 文件,并使用 ImageToPdfConverter.ImageToPdf 将它们转换为 PDF。 ImageBehavior 属性控制图像在页面上的位置。 最后,它使用 SaveAs 保存 PDF。
如需进行高级图像处理,可探索从 Azure Blob 存储中嵌入图像或处理 Base64 编码图像的方法。 您还可以将 PDF 文件栅格化为图像,以便进行反向转换。
图像转 PDF 的输出效果如何?
! IronPDF 文档网页截图,显示了 C# PDF 库主页,其中包含用于在 .NET 应用程序中创建和编辑 PDF 的功能 IronPDF 库的主页展示了其关键功能,包括 HTML 转 PDF 转换、对 .NET Framework 的跨平台支持,以及醒目的"免费 30 天试用"按钮
有哪些高级 PDF 转换功能可用?
除了基本的 HTML 和图像转换外,IronPDF 还提供了许多高级功能,可满足全面的 PDF 处理需求。 该库支持异步操作和并行处理,适用于高性能场景。
哪些文档类型可以转换为 PDF?
IronPDF 支持多种格式的转换:
- 支持邮件合并功能的 DOCX 转 PDF 工具
- RTF 转 PDF(适用于富文本格式文件)
- 使用 XSLT 转换将 XML 转换为 PDF
- 将 Markdown 转换为 PDF 用于文档编制
- 在 MAUI 应用程序中将 XAML 转换为 PDF
- 包含多个资源的 HTML ZIP 文件
如何优化生成的 PDF 文件?
将文档转换为 PDF 后,请通过以下方式进行优化:
如何优化 PDF 转换性能?
为了提升应用程序的性能:
关于平台特有的考虑因素?
IronPDF 提供全面的平台支持:
- 移动应用的 Android 部署
- Web 服务器的 IIS 配置
- Azure 应用服务优化
- AWS Lambda 函数
- 本地引擎与远程引擎选项
主要收获是什么?
本文探讨了在 C# 中进行 PDF 转换以实现文档管理和共享。 借助 C# 和 IronPDF,您可以轻松地将 PDF 功能集成到您的应用程序中。 从生成 PDF 到转换 HTML、图像和现有文档,IronPDF 提供了全面的功能。 代码示例展示了如何以极少的操作将 HTML 文档和图像转换为 PDF。
IronPDF 的优势在于其全面的功能:
- 支持 Windows、Linux、macOS 及云端环境
- 支持多种转换格式,包括 HTML、图像、DOCX、RTF 等
- 数字签名、加密、表单和注释等高级功能
- 通过异步操作和并行处理实现性能优化
- 采用 Chrome 渲染引擎实现像素级精准渲染
- 包含 API 参考和故障排除指南的全面文档
如上所述,IronPDF 简化了复杂的 PDF 任务,对于希望增强 .NET 应用程序文档处理能力的开发者而言极具价值。 无论是构建 Web 应用程序、桌面软件还是云服务,IronPDF 都能提供 Professional 级别的 PDF 生成工具。 该库的功能集包括创建、编辑、转换和保护 PDF 文档。
要下载PDF转换库,请访问IronPDF的NuGet包。 此外,还可查看使用 IronPDF 进行 HTML 转 PDF 的教程。 如需实践学习,请查阅我们的代码示例和全面教程。 IronPDF 开发者可根据自身需求选择多种许可协议。 提供免费试用。 如需完整的定价和许可信息,请访问 IronPDF 许可信息页面。 请查看更新日志以了解最新更新和改进。
常见问题解答
如何在C#中将HTML转换为PDF?
你可以使用IronPDF的RenderHtmlAsPdf方法将HTML字符串转换为PDF。你还可以使用RenderHtmlFileAsPdf将HTML文件转换为PDF。
在 Visual Studio 项目中设置 IronPDF 包含哪些步骤?
要在 Visual Studio 项目中设置 IronPDF,使用 NuGet 包管理器搜索 'IronPDF' 并安装最新包。此过程将 IronPDF 集成到您的项目中,使您可以访问其 PDF 功能。
IronPDF 的 PDF 操作功能有哪些?
IronPDF 提供全面的 PDF 操作功能,包括文本提取、合并和拆分 PDF、旋转页面以及修改内容和注释。
我可以使用 IronPDF 将图像转换为 PDF 吗?
是的,您可以使用 IronPDF 的 ImageToPdfConverter 方法将图像转换为 PDF,此方法支持 JPEG、PNG 和 BMP 等图像格式。
IronPDF 如何在 PDF 转换过程中保持格式?
IronPDF 通过准确地将 HTML 和图像内容呈现为 PDF 格式,确保在转换过程中保留原始文档格式,这要归功于其强大的渲染引擎。
IronPDF 是否提供试用版本?
是的,可以免费试用 IronPDF。有关详细的定价和许可,您可以参考 IronPDF 许可信息页面。
IronPDF 支持哪些编程语言?
IronPDF 支持与 C#、VB.NET 和 F# 应用程序集成,为在 .NET 生态系统中工作的开发人员提供了广泛的可能性。
在哪里可以找到更多关于使用 IronPDF 的教程或支持?
在 IronPDF 网站和文档页面上提供了额外的教程和支持,包括 HTML 到 PDF 转换和其他功能的指南。
IronPDF 是否完全兼容 .NET 10?
是的——IronPDF 完全兼容 .NET 10,无需任何特殊配置即可无缝运行。它支持 .NET 10 的最新运行时和语言特性,包括跨平台部署和现代化的异步友好型 API。



