Ms word 将word文档合并到单个文档

Ms word 将word文档合并到单个文档,ms-word,interop,ms-office,Ms Word,Interop,Ms Office,我使用下面提到的链接中的代码将word文件合并到单个文件中 然而,看到输出文件,我意识到它无法复制第一个文档中的标题图像。如何合并保存格式和内容的文档。该代码在每个文件后插入分页符 由于节控制标题,如果第二个或后续文档有标题,您可能希望保留原始节属性,并在第一个文档之后插入这些属性 如果您将原始文档视为docx,您可能会看到您的节是文档级的节属性元素 解决问题的最简单方法可能是在最后一段(包含标题信息)内创建第二个section properties元素。然后,当文档合并时(即在其后面添加其他

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


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

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

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

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

解决问题的最简单方法可能是在最后一段(包含标题信息)内创建第二个section properties元素。然后,当文档合并时(即在其后面添加其他段落),这应该保持不变

这就是理论。另见 但我没有试过;它假定InsertFile的行为与我预期的一样。

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

示例C#代码:

var-configuration=newgroupdocs.merge.Cloud.Sdk.Client.configuration(MyAppSid,MyAppKey);
var apinstance_Document=new GroupDocs.merge.Cloud.Sdk.Api.DocumentApi(配置);
var apinstance_File=new GroupDocs.merge.Cloud.Sdk.Api.FileApi(配置);
var pathToSourceFiles=@“C:/Temp/input/”;
var remoteFolder=“Temp/”;
var joinItem_list=新列表();
尝试
{
DirectoryInfo dir=新的DirectoryInfo(路径到源文件);
System.IO.FileInfo[]files=dir.GetFiles();
foreach(文件中的System.IO.FileInfo文件)
{
var request_upload=new GroupDocs.merge.Cloud.Sdk.Model.Requests.UploadFileRequest(remoteFolder+file.Name,file.Open(file.FullName,FileMode.Open));
var response_upload=apinstance_File.UploadFile(请求_upload);
var item=新的JoinItem
{
FileInfo=newgroupdocs.merge.Cloud.Sdk.Model.FileInfo
{FilePath=remoteFolder+file.Name}
};
joinItem_列表。添加(项目);
}
var options=新的JoinOptions
{
JoinItems=JoinItems\u列表,
OutputPath=remoteFolder+“合并的文档.docx”
};
var请求=新的JoinRequest(选项);
var response=apinstance_Document.Join(请求);
Console.WriteLine(“输出文件路径:+response.path”);
}
捕获(例外e)
{
Console.WriteLine(“合并文档时出现异常:+e.Message”);
}
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);
}