Объединить 2 документа Word с помощью c#

#c# #merge #openxml #document #word

Вопрос:

Я пытаюсь объединить 2 документа Word в двоичном формате, однако он получает только первый документ. В результирующий документ должны быть включены все элементы из каждого исходного документа с форматированием.

Вот код до сих пор. Кстати, используя OpenXML.

 private static byte[] Merge(byte[] dest, byte[] src) {  string altChunkId = "AltChunkId"   DateTime.Now.Ticks.ToString();   var memoryStreamDest = new MemoryStream();  memoryStreamDest.Write(dest, 0, dest.Length);  memoryStreamDest.Seek(0, SeekOrigin.Begin);   using (WordprocessingDocument doc = WordprocessingDocument.Open(memoryStreamDest, true))  {  MainDocumentPart mainPart = doc.MainDocumentPart;   Paragraph para = new Paragraph(new Run((new Break() { Type = BreakValues.Page })));  mainPart.Document.Body.InsertAfter(para, mainPart.Document.Body.LastChild);   //Insert the source file into the target file using AltChunk  AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart(  AlternativeFormatImportPartType.WordprocessingML, altChunkId);   using (MemoryStream mem = new MemoryStream())  {  mem.Write(src, 0, (int)src.Length);  mem.Seek(0, SeekOrigin.Begin);  chunk.FeedData(mem);  }   AltChunk altChunk = new AltChunk();  altChunk.Id = altChunkId;  mainPart.Document.Body.InsertAfter(altChunk, mainPart.Document.Body.Descendantslt;Paragraphgt;().Last());  mainPart.Document.Save();   return memoryStreamDest.ToArray();  } }  

Комментарии:

1. Что именно вы подразумеваете под «слиянием»?

2. Вы также никогда не используете altChunk -предположительно, это непреднамеренно? Вы также неправильно сохраняете документ.

3. Объединение 2 документов Word в один файл.

4. Верно, но как объединить? Должен ли результат содержать все элементы в документе 1, за которыми следуют все элементы в документе 2? Если да, то почему вы возитесь с альтернативными типами форматов? Что произойдет, если документы будут иметь разные стили и т. Д.? Это будет сложно, если в документах также есть списки, так как вам нужно управлять частью нумерации документа.

5. Именно это я и планирую сделать, чтобы оба элемента были включены в форматирование. У вас есть что порекомендовать? Спасибо!