2013-01-08 219 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