iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 25
1
Modern Web

30天實作線上簡報播放機制系列 第 26

26 - 仔細確認Powerpoint的樣板機制

  • 分享至 

  • twitterImage
  •  

為了避免不斷修改,還是先仔細確認Powerpoint中,投影片與版面配置的圖形如何匹配。

Placeholder的使用方式確認

母片、版面配置、投影片的結構很像,大部分的資料在p:cSld中,都是圖形。要知道他們的樣板機制,需要知道這些圖形如何匹配,這樣投影片才有辦法把資料對應到版面配置中。

本來想說可以透過圖形的p:ph(Placeholder)中的類型(type)來做匹配,但是仔細觀察之後,發現似乎不是這麼回事XD,因為把幾個版面配置資料檢查過一次就會發現,實際上有的版面配置中,同樣類型的圖形可能就出現不只一次,所以用類型來匹配會有問題。

p:ph裡面還有另一個屬性,就是idx。在版面配置中,除了標題,每個要讓投影片套用的圖形樣板,都會有一個idx,這個idx在個別的版面配置中是唯一的。以slideLayout5.xml為例,他看起來是這樣:

26-001.png

可以看出,有兩個子標題及兩個內容文字。如果整理一下裡面圖形的Placeholder資訊,會發現:

  1. 兩個子標題根本沒有type,但是有idx,而且idx都是唯一的數字
  2. 有兩個type是body的圖形,可以對應到內容文字,idx同樣是唯一的

其實有一個圖形沒有idx屬性,但是這個圖形的type永遠是title,所以可以推測投影片的標題圖形,就是沒有idx的這個。透過「空白投影片」這個版面配置的資料可以發現,裡面既沒有type是title,也沒有無idx的圖形。所以應該可確認,type是title且無idx的圖形就是投影片的標題。

母片與版面配置

母片中的圖形,可以分成幾個部分

  1. 沒有帶p:ph的圖形,確認過都是投影片的背景
  2. 有帶p:ph的圖形,除了title與body,其他就是投影片編號、日期、header/footer欄位使用的。

母片的圖形也有部分有idx,但是基本上跟slideLayout沒有關連。母片中另外有一個重要資料是txStyles,裡面有三種文字列表樣式,分別是titleStyle、bodyStyle及otherStyle。看起來在處理版面配置時,不太需要額外處理母片中的圖形,只要根據type把這幾個資訊丟給版面配置就可以。

需要的剖析流程修改

  1. 母片依照原本的方式處理
  2. 版面配置也依照原本的方式處理,只額外
    1. 沒有設定Placeholder資訊的圖形及圖片,就是背景圖形,也把他們塞進版面配置
    2. 根據圖形的type從母片複製對應的txStyle
    3. 除了圖形的type,另外要剖析幾個東西
      1. idx
      2. sz(size)
      3. vert(垂直文字)
  3. 投影片剖析
    1. 版面配置中沒有Placeholder資訊的圖形及圖片,就是背景,所以把他們塞進投影片
    2. 根據type及idx的對應,找出版面配置中對應的圖形資訊,把圖形資訊整合起來
    3. 投影片中沒有Placeholder資訊的圖形及圖片,依照預設的方式剖析,這些圖形及圖片,會帶有足夠的繪製資訊

大致上就是這樣了。今天是例假,明天再來改程式...


上一篇
25 - 目前碰到的資料剖析問題
下一篇
?? - 目前的簡單成果
系列文
30天實作線上簡報播放機制31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言