我正在使用该altChunkId
元素合并 DOCX 文档文件,但无法查看控制 XML 元素的内容。
我认为这是因为要获取 XML 内容的引用来自它合并到的文件夹,而不是文件夹本身。
在 Word 2007 中,该文件显示内容控件的内容,而在 Word 2010 中,该文件为空白。
重现步骤:
- 开放词 2010。
- 转到开发人员选项卡。
- 添加“纯文本内容控件”。
- 另存为
a.docx
- 使用Word 2007 内容控制工具包创建 XML 绑定
- 复制
a.docx
到一个新文件b.docx
。 合并代码:
using System; using System.Collections.Generic; using System.IO; using System.IO.Packaging; using System.Linq; using System.Text; using System.Xml; using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Spreadsheet; using DocumentFormat.OpenXml.Wordprocessing; class Class1 { static void Main(string[] args) { string doc2 = @"b.docx"; string doc1 = @"a.docx"; using (var myDoc = WordprocessingDocument.Open(doc2, true)) { string altChunkId = "AltChunkId1"; var mainPart2 = myDoc.MainDocumentPart; var chunk = mainPart2.AddAlternativeFormatImportPart( AlternativeFormatImportPartType.WordprocessingML, altChunkId); using (var fileStream = File.Open(doc1, FileMode.Open)) { chunk.FeedData(fileStream); AltChunk altChunk = new AltChunk(); altChunk.Id = altChunkId; mainPart2.Document.Body.InsertAfter(altChunk, mainPart2.Document.Body.Elements<Paragraph>().Last()); mainPart2.Document.Save(); } } } }
用 Word 2010打开
b.docx
,你会看到纯文本内容控件是空的。- 用 Word 2007打开
b.docx
,你会看到纯文本内容控件不是空的。