簡體   English   中英

OpenXML 將兩個 Docx 模板中的所有內容復制到一個 Docx 文件 C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM