转换word 2003文档与自定义xml到word 2010

本文关键字:word xml 2010 自定义 2003 文档 转换 | 更新日期: 2023-09-27 17:50:56

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

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

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

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

你们谁能给我建议一些做这件事的方法?

转换word 2003文档与自定义xml到word 2010

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

第一步:在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