【问题标题】:merge word documents to a single document将word文档合并为一个文档
【发布时间】:2010-12-01 15:02:32
【问题描述】:

我使用下面提到的链接中的代码将word文件合并为一个文件

http://devpinoy.org/blogs/keithrull/archive/2007/06/09/updated-how-to-merge-multiple-microsoft-word-documents.aspx

但是,看到输出文件后,我意识到它无法在第一个文档中复制标题图像。我们如何合并保留格式和内容的文档。

【问题讨论】:

    标签: ms-word interop ms-office


    【解决方案1】:

    我建议使用GroupDocs.Merger Cloud 将多个word 文档合并为一个word 文档,它保留了源文档的格式和内容。它是一个独立于平台的 REST API 解决方案,不依赖任何第三方工具或软件。

    示例 C# 代码:

    var configuration = new GroupDocs.Merger.Cloud.Sdk.Client.Configuration(MyAppSid, MyAppKey);
    var apiInstance_Document = new GroupDocs.Merger.Cloud.Sdk.Api.DocumentApi(configuration);
    var apiInstance_File = new GroupDocs.Merger.Cloud.Sdk.Api.FileApi(configuration);
    
    var pathToSourceFiles = @"C:/Temp/input/";
    var remoteFolder = "Temp/";
    var joinItem_list = new List<JoinItem>();
    try
    {
    
        DirectoryInfo dir = new DirectoryInfo(pathToSourceFiles);
        System.IO.FileInfo[] files = dir.GetFiles();
        foreach (System.IO.FileInfo file in files)
        {
            var request_upload = new GroupDocs.Merger.Cloud.Sdk.Model.Requests.UploadFileRequest(remoteFolder + file.Name, File.Open(file.FullName, FileMode.Open));
            var response_upload = apiInstance_File.UploadFile(request_upload);
            var item = new JoinItem
            {
                FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
                { FilePath = remoteFolder + file.Name }
            };
            joinItem_list.Add(item);
        }
    
        var options = new JoinOptions
        {
            JoinItems = joinItem_list,
            OutputPath = remoteFolder + "Merged_Document.docx"
        };
    
        var request = new JoinRequest(options);
        var response = apiInstance_Document.Join(request);
    
        Console.WriteLine("Output file path: " + response.Path);
    
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while Merging Documents: " + e.Message);
    }
    

    【讨论】:

      【解决方案2】:

      该代码在每个文件后插入一个分页符。

      由于节控制标题,如果第二个或后续文档有标题,您可能希望保留原始节属性,并在第一个文档之后插入这些属性。

      如果您将原始文档视为 docx,您可能会看到您的部分是文档级别的部分属性元素。

      解决您的问题的最简单方法可能是在最后一段(包含标题信息)内创建第二个部分属性元素。然后,当文档合并时(即在其后添加的其他段落),它应该只保留在那里。

      这就是理论。另见http://www.pcreview.co.uk/forums/thread-898133.php 但我还没有尝试过;它假定 InsertFile 的行为符合我的预期。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-23
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多