转换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不支持内容控件。
我尝试了很多禁用兼容模式,但无法实现它。
你们谁能给我建议一些做这件事的方法?我也一直在努力做你正在做的事情。有人指出你可以使用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