2010-08-10 110 views
3

我需要使用已定義的內容控件創建Building Block庫,以便其他人創建準備好接受我的數據的Word文檔。我試圖儘可能使用戶無痛苦。MS Word:如何高效創建Building Block?

我想確保所有這些都會專業完成,看起來不錯,所以我不想確保所有的內容控件基本上都與不同的名稱/標籤和原創內容相同。在Word中做這件事並不容易,需要一些時間。有時當我更改內容中的內容時,它會從灰色文本變爲標準文件,有時卻不會(不知道爲什麼,認爲它與我如何覆蓋「在此處放置文本」相關)。所以我認爲以編程方式進行工作是可行的。

然後我讀了一些OpenXML常見問題,這是不可能的。有些事我不明白。如果我將Building Block存儲在一個.dotx文件中,它就在XML內部的某個地方嗎?我應該可以訪問它。它存儲在哪裏?

我對這裏的指針非常感興趣,主要是問題的答案如何在自定義Building Block庫中創建多個內容控件。

回答

2

內容控件可以存在於構建塊內部。實際上,Word 2007附帶的大多數內置構建塊都包含其中的內容控件。

航運積木存儲:

  • 在Word 2007中: 「%APPDATA%\微軟\文檔構建塊\ 1033 \ 12 \構建Blocks.dotx」
  • 在Word 2010中:「% appdata%\ Microsoft \ Document Building Blocks \ 1033 \ 14 \ Built-In Building Blocks.dotx「。

我認爲你可以創建自己的.dotx文件(帶有自己的構建塊)並將它放在同一個文件夾中,以便在啓動時加載Word。

在.dotx文件本身中,它存儲在\ word \ glossary \ document.xml下。

至少,如果您無法創建手動創建內容控件的building block條目,我會感到驚訝。我不知道OpenXML SDK是否可以做到這一點 - 當提到它不可能的時候,它可能只是它沒有這樣做的能力,而不是技術上不可能的。

+0

檢查出來後我自己似乎有可能,但也許沒有建議,似乎沒有給它自己的ID,這可能會導致一些問題。我想我會在Word中創建一個我需要的數量,然後使用OpenXML或XML將它們更改爲我不想要的數量。然後他們也會包含Id。順便說一句,它似乎存儲在文檔的詞彙表部分。 – 2010-08-16 09:46:47

0

我知道這是一個老問題,但在其他情況下,人們都在尋找或者原來的海報仍然在乎...

在VBA(VSTO和),您可以創建構建模塊(可有內容控制) 。您可以將樣式設置爲相同,以及其他屬性保持一致(用於專業質量外觀)。

然後,您可以將它們保存在Build Blocks模板中%appdata%\ Microsoft \ Document Building Blocks \ 1033 \ 14 \ Custom Building Blocks.dotx「其中1033是該語言的編號,14是該編號Office的版本(13 = Office 2007中,14 == Office 2010中,15 ==辦公室2013等)。

我覺得這種方法會比編輯的Open Office XML更容易。