0

我正在创建一个应用程序,旨在通过将自定义 XML 元素替换为内容控件来将 Word 2003 的现有 xml 文档转换为 DOCX。为此,我正在使用 Interop 程序集 + Word 2007,因为只有 Word 2007 可以支持自定义 XML 元素和内容控件。

提出的方法如下: 1. 阅读xml文档 2. 另存为DOCX。3. 从 DOCX 文件中识别 XMLNodes(自定义 XML 元素) 4. 将新的内容控件放置在 XMLNodes /将 XMLNodes 映射到内容控件的范围内。5. 移除 XMLNodes。

我在执行上述操作时发现问题。问题是在上面提到的第 4 步中,一旦保存文档,添加到文档的所有内容控件都会被删除。这是因为文档以 Word 2003 兼容模式保存,而 Word 2003 不支持内容控件。

我已经尝试了很多禁用兼容模式但无法实现它。

你们中的任何人都可以建议我一些方法吗?

4

2 回答 2

0

我也一直在努力做你正在做的事情。有人指出可以使用open xml来做

于 2013-02-15T08:02:13.220 回答
0

第1步:在word 2003文档中运行下面的word 2003宏并保存。

'Word 2003 macro
Sub BookmarkUpdate()

  Dim objNode As XMLNode
    For Each objNode In ActiveDocument.XMLNodes
        objNode.Range.Bookmarks.Add (objNode.BaseName)
    Next
End Sub

第 2 步:在 word 2010 中打开同一个文档并运行下面的 word 2010 宏并保存。

' Word 2010 macro
Sub CreateContentControl()
Dim name As String
For Each bk In ActiveDocument.Bookmarks
   Dim objcc As ContentControl
   Dim objRange As Range   
   ' Get the first paragraph as a range object.
   Set objRange = bk.Range
   ' Create a rich text content control.
   Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange)  
   name = bk.name 
   objcc.Title = name
   objcc.Tag = name
 Next
End Sub
于 2015-10-30T18:21:18.503 回答