首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C# 示例:批量合并 Word 文档并转为 PDF

C# 示例:批量合并 Word 文档并转为 PDF

原创
作者头像
用户12495000
发布于 2026-07-27 10:53:36
发布于 2026-07-27 10:53:36
2100
举报

将多个 Word 文档合并成一个 PDF 文件,方便分发、打印或存档。本文将介绍如何利用 Spire.Doc for .NET 库,通过几行简洁的 C# 代码,轻松实现将指定文件夹下的所有 Word 文档合并并导出为 PDF。

作为一款专业的 .NET Word 组件,Spire.Doc for .NET 允许开发者在无需安装 Microsoft Office 的情况下,高效地创建、编辑、转换和打印 Word 文档,具有出色的稳定性和可扩展性。

准备工作:安装 Spire.Doc

首先,在你的 .NET 项目中安装 Spire.Doc 库。推荐通过 NuGet 包管理器进行安装,方便快捷。

你可以通过 Visual Studio 的“管理 NuGet 包”搜索 Spire.Doc 并安装,或者在“程序包管理器控制台”中执行以下命令:

代码语言:javascript
复制
PM> Install-Package Spire.Doc

代码实现:合并与转换

核心逻辑很简单:创建一个新的 Document 对象来承载最终合并的内容;读取文件夹下所有 Word 文件;加载第一个文档作为基础;然后循环将后续文档插入其中;最后一步是将其保存为 PDF 格式。

以下是完整的代码示例:

代码语言:javascript
复制
using System.IO;
using System.Linq;
using Spire.Doc;

namespace MergeWordFolder
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 创建目标文档容器
            Document mergedDocument = new Document();

            // 2. 获取指定文件夹下所有的 Word 文档
            string folderPath = @"Documents"; // 请替换为你的文件夹路径
            string[] files = Directory.GetFiles(folderPath, "*.docx")
                                      .OrderBy(f => f)
                                      .ToArray();

            // 检查是否有文件
            if (files.Length == 0)
            {
                Console.WriteLine("文件夹中没有找到 .docx 文件。");
                return;
            }

            // 3. 加载第一个文档作为基础
            mergedDocument.LoadFromFile(files[0], FileFormat.Docx);

            // 4. 依次插入剩余的文档
            for (int i = 1; i < files.Length; i++)
            {
                // InsertTextFromFile 方法可以将一个完整文档的内容追加到当前文档末尾
                mergedDocument.InsertTextFromFile(files[i], FileFormat.Docx);
            }

            // 5. 将合并后的文档保存为 PDF
            mergedDocument.SaveToFile("MergedDocument.pdf", FileFormat.PDF);

            Console.WriteLine("合并完成!已生成 MergedDocument.pdf");
        }
    }
}

代码逐段解析

  1. 创建文档对象 :Document mergedDocument = new Document(); 实例化了一个空白的 Word 文档对象,它将作为合并所有内容后的最终容器。
  2. 获取文件列表 :Directory.GetFiles(folderPath, "*.docx") 会检索指定路径下所有扩展名为 .docx 的文件。.OrderBy(f => f) 确保了文件按名称排序合并,避免了顺序混乱。你可以根据需要调整排序逻辑。
  3. 加载与插入 :
    • mergedDocument.LoadFromFile(files[0], FileFormat.Docx):将第一个 Word 文档加载到我们创建的空白容器中。
    • mergedDocument.InsertTextFromFile(files[i], FileFormat.Docx):这是一个非常高效的方法。在循环中,它将后续每个 Word 文档的全部内容(包括文本、图片、表格、页眉页脚等)直接插入到 mergedDocument 的末尾。
  4. 保存为 PDF :mergedDocument.SaveToFile("MergedDocument.pdf", FileFormat.PDF) 是最后一步,也是最关键的一步。它将合并好的 Document 对象直接输出为一个 PDF 文件,实现了从“合并”到“转换”的一站式操作。

总结与扩展

通过上述简单的代码,我们成功避免了手动打开、复制、粘贴再另存为 PDF 的繁琐流程。Spire.Doc 库在处理此类文档合并任务时非常高效。

除了合并 .docx 文件,这个方法还具备很强的扩展性。例如,如果你需要合并 .doc 文件,只需修改 Directory.GetFiles 的搜索模式,并在 LoadFromFile 和 InsertTextFromFile 方法中指定对应的 FileFormat 即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 准备工作:安装 Spire.Doc
  • 代码实现:合并与转换
    • 代码逐段解析
  • 总结与扩展
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档