如何使用IronWord在 C# 中将 DOCX 转换为 PDF
IronWord 通过其 ToPdf 方法实现无缝的 DOCX 到 PDF 转换,支持需要标准化 PDF 输出格式的自动化文档工作流、报告分发和归档流程。
快速入门:使用 C# 将 DOCX 转换为 PDF
使用 IronWord,通过单次方法调用即可加载 DOCX 文件并将其转换为 PDF。
最小工作流程(5 个步骤)
- 安装 IronWord C# 库
- 使用 `new WordDocument()` 加载现有的 DOCX 文件
- 调用 `ToPdf()` 方法将文档转换为 PDF
- 使用 `SaveAs()` 保存 PDF 或获取字节数组
- 分发或归档生成的 PDF 文件
如何将 DOCX 文件转换为 PDF?
ToPdf方法在处理所有PDF生成复杂性的同时,完整保留了文档的格式、图片、表格和文本样式。 将您的 DOCX 文件加载到 new WordDocument("file.docx") 中,调用 ToPdf() 并指定输出路径,转换将自动完成。
:path=/static-assets/word/content-code-examples/how-to/word-to-pdf-basic.cs
using IronWord;
// Load existing DOCX file
WordDocument doc = new WordDocument("input.docx");
// Convert to PDF
doc.ToPdf("output.pdf");
Imports IronWord
' Load existing DOCX file
Dim doc As New WordDocument("input.docx")
' Convert to PDF
doc.ToPdf("output.pdf")
这种方法适用于自动报告分发、发票生成或任何需要标准化 PDF 输出的工作流程。 转换后的 PDF 在所有平台和设备上的显示效果完全相同,因此非常适合用于官方文档、法律存档以及对外观一致性要求极高的客户交付物。
如何将多个 DOCX 文件转换为 PDF?
对于大批量文档处理,批量转换会自动处理整个目录。 使用 Directory.GetFiles() 检索所有 DOCX 文件,然后遍历每个文件并应用相同的转换方法。 使用 try-catch 块进行错误处理,可确保损坏的文件不会导致整个批处理操作停止。
:path=/static-assets/word/content-code-examples/how-to/word-to-pdf-batch.cs
using IronWord;
using System;
using System.IO;
// Get all DOCX files from input directory
string[] docxFiles = Directory.GetFiles("input-folder", "*.docx");
foreach (string filePath in docxFiles)
{
try
{
// Load DOCX file
WordDocument doc = new WordDocument(filePath);
// Generate output PDF path
string fileName = Path.GetFileNameWithoutExtension(filePath);
string outputPath = $"output-folder/{fileName}.pdf";
// Convert to PDF
doc.ToPdf(outputPath);
Console.WriteLine($"Converted: {fileName}");
}
catch (Exception ex)
{
Console.WriteLine($"Failed: {Path.GetFileName(filePath)} - {ex.Message}");
}
}
Imports IronWord
Imports System
Imports System.IO
' Get all DOCX files from input directory
Dim docxFiles As String() = Directory.GetFiles("input-folder", "*.docx")
For Each filePath As String In docxFiles
Try
' Load DOCX file
Dim doc As New WordDocument(filePath)
' Generate output PDF path
Dim fileName As String = Path.GetFileNameWithoutExtension(filePath)
Dim outputPath As String = $"output-folder/{fileName}.pdf"
' Convert to PDF
doc.ToPdf(outputPath)
Console.WriteLine($"Converted: {fileName}")
Catch ex As Exception
Console.WriteLine($"Failed: {Path.GetFileName(filePath)} - {ex.Message}")
End Try
Next
以上示例演示了使用控制台日志记录进行进度跟踪的实用批处理方法。 这种模式适用于归档迁移项目、自动化工作流管道或计划报告生成,在这些项目中,需要转换数百个 DOCX 文件而无需人工干预。
处理大批量数据时,转换前请验证源文件是否存在,并保持一致的输出命名约定。 考虑采用并行处理来提高性能,但要监控系统资源,以防止并发操作期间内存耗尽。

