[英]OpenXML Copy Everything from two Docx templates into a single Docx File C#
我們有兩個 Docx 文件,一個具有帶有頁眉和頁腳部分的標題模板(信頭)和標題,第二個文件具有正文。 我們需要將兩個 Docx 文件合並為一個 Docx 文件。 是否可以將 docx 文件的所有部分和正文部分復制到新文檔中。
我們嘗試了以下代碼,但在第二個文檔 App Parts Method 上出現異常:
此父級只允許該類型的一個實例。
using (WordprocessingDocument firstDocument = WordprocessingDocument.Open(fileName, false))
using (WordprocessingDocument document = WordprocessingDocument.Open(source1, false))
using (WordprocessingDocument secondDocument = WordprocessingDocument.Create(destination, WordprocessingDocumentType.Document))
{
MainDocumentPart mainPart = secondDocument.MainDocumentPart;
foreach (var part in firstDocument.Parts)
{
secondDocument.AddPart(part.OpenXmlPart, part.RelationshipId);
}
foreach (var part in document.Parts)
{
secondDocument.AddPart(part.OpenXmlPart, part.RelationshipId);
}
}
您是否嘗試為第三個主文檔添加單獨的標題部分,嘗試在循環中添加 AddNew 標題部分,如下所示
MainDocumentPart mainDocumentPart1 = secondDocument.MainDocumentPart;
if (mainDocumentPart1 != null)
{
mainDocumentPart1.DeleteParts(mainDocumentPart1.HeaderParts);
HeaderPart headPart1 = mainDocumentPart1.AddNewPart<HeaderPart>();
IEnumerable<SectionProperties> sectPrs = mainDocumentPart1.Document.Body.Elements<SectionProperties>();
foreach (var sectPr in sectPrs)
{
sectPr.RemoveAllChildren<HeaderReference>();
sectPr.PrependChild<HeaderReference>(new HeaderReference() { Id = rId });
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.