2013-01-08 172 views
0

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

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

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

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

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

回答

0

我也一直试图做你在做什么。有人指出你可以使用open xml来做

0

步骤1:在单词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:在2010年Word中打开同一个文档,然后运行下面的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