我使用下面提到的链接中的代码将单词文件合并到一个文件中
然而,看到输出文件我意识到它无法在第一个文档中复制标题图像。我们如何合并保留格式和内容的文档。
答案 0 :(得分: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);
}
答案 1 :(得分:0)
该代码在每个文件后插入分页符。
由于部分控制标题,如果第二个或后续文档有标题,您可能希望保留原始部分属性,并在第一个文档之后插入它们。
如果您将原始文档视为docx,您可能会看到您的部分是文档级别部分属性元素。
解决问题的最简单方法可能是在最后一个段落(包含标题信息)中创建第二个section属性元素。然后,当文档合并时(即在其后添加其他段落),这应该保持在那里。
这就是理论。另见http://www.pcreview.co.uk/forums/thread-898133.php 但我没有尝试过;它假设InsertFile的行为与我预期的一样。