2012-04-20 34 views
0

我正在研究PresentationML解析器,並試圖實現對字體顏色方面的主題支持。我使用SDK,我也困惑了這個怪物:如何從演示主題獲取run/txbody /段的字體顏色?

Slide.SlidePart.SlideLayoutPart.SlideMasterPart.SlideMaster.SlideMasterPart.ThemePart.Theme.ThemeElements.ColorScheme 

但它仍然不清楚的地方我去得到它一直沒有它的另外指定顏色的運行顏色。任何幫助,將不勝感激。

TIA。

更新:剛剛通過xml涉水後,它看起來像我上面張貼的怪物調用可能是正確的...它會產生一個「val」屬性匹配我尋找的十六進制代碼。但我不清楚如何解決顏色映射中的特定方案(本例中爲「Light1」)。我認爲如果有人能夠用邏輯來幫助我瞭解哪種方案適用於跑步,我認爲這就是我所需要的。

回答

3

免費電子書Open XML Explained可能會提供一些見解,以幫助您的理解。根據PresentationML中節,文檔內容結構它談論如何主題和主佈局是用來給默認值:86

頁 - 第2款:

DrawingML主題化可用於創建字體的默認值,佈局和其他品牌相關數據,並允許將其與演示文稿的主體分開。主題可在所有Open XML標記語言中重複使用。在PresentationML包內使用各種主題。默認情況下,每個單獨的主,滑動,筆記和派發主人引用一個單獨的主題部分。演示文稿本身也引用了在演示文稿中使用的默認主題。這個默認主題通過引用包中的相同部分與幻燈片母版共享。

因此,在演示文稿SlideMaster的theme1.xml中,您將找到用於幻燈片母版和演示文稿的主題定義。顏色名稱Light1,Dark1等映射到每個主題的主題元素的配色方案中所需的12種顏色。詳情請見schema

所以在運行中,您會看到Light1,它映射到主題中定義的數字。如果作者更改了主佈局和/或主題,則Light1在運行中不會更改,但主題中的值可能會從您獲取新值的位置。

上頁121,12種顏色以開放XML提到的解釋:

你需要創建它包含所有主題的數據themeElements節點的主題元素中。在此級別,您還可以應用額外的信息或覆蓋主題元素中現有的信息。主題元素使用一組子節點構建,每個節點標識特定數據項(如字體或顏色)。 clrScheme元素定義了一系列顏色。主題顏色列表僅限於'accent1'或'visited鏈接'等項目。每種主題顏色都使用單獨的XML元素,其中節點名稱標識主題顏色。在這個元素的內部,您可以使用前面討論的使用DrawingML着色形狀的着色機制。在標記樣本157中,定義了兩種主題顏色,即'暗色1'和'口音1'顏色。標記樣本不完整。 您需要爲所有十二種主題顏色定義值。

希望這有助於...

相關問題