OpenOffice 之:死屍還魂
上星期才說封印 OpenOffice,今天就已經忍不住要再開一次。為甚麼?死不心息。在寫上一篇 blog 時,其實想到一個方法,將 background 圖片硬塞進 template 裏面,但並未實證過;經我那些低級 luser-wannabe skillz 實戰一次:
作為將來取笑自己用的笑料,完整方法記錄如下:
這裏有一些名稱在不同的地方都要使用,例如 template 檔案名稱、圖片名稱等等,而且每個人所用的名稱都有不同;這些部份全部會用顏色標示。
- 先製作一個空白的資料夾,然後進入資料夾。
- 將 template 解壓:
unzip abcxyz.otp
- 將背景圖片放進
Pictures/資料夾:cp 0123456789.png Pictures/ - 然後用文字編輯器修改
styles.xml。沒錯,是文字編輯器。不過因為styles.xml的內容完全不換行,基本上無法編輯,所以先用tidy整理一下:tidy -m -i -raw -xml styles.xml怕有甚麼問題的話,最好先備份。
- 文字編輯器出動。我用的是 vim。
LC_CTYPE=C vim styles.xml
(因為有時 xml 會含有不正確編碼的內容,尤其是從 Microsoft Office 轉換至 OpenOffice 那些,所以用 LC_CTYPE=C 強制保留。)要改的地方有三處:
- 在第 26 行左右,會有一行:
<office:styles>;在那一行下面加 4 行,指定 template 有甚麼背景圖片:<draw:fill-image draw:name="Background1" xlink:href="Pictures/0123456789.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" /> - 尋找類似如下的 4 行內容:
<style:style style:name="abcxyz-background" style:family="presentation"> <style:graphic-properties draw:stroke="none" draw:fill="bitmap" style:repeat="stretch" />這裏最重要的關鍵字是 template 檔案名稱加上 “-background”,但要小心,有幾個地方都有同一個關鍵字,但要改的地方只有一處。找到後,將上面 4 行的最後一行換成:
draw:fill="bitmap" draw:fill-image-name="Background1" draw:fill-image-width="100%" draw:fill-image-height="100%" /> - 尋找含有
style:name="dp1"的內容,應該只有一處,類似如下:<style:style style:name="dp1" style:family="drawing-page"> <style:drawing-page-properties draw:background-size="border" draw:fill="bitmap" style:repeat="stretch" /> </style:style>將那 4 行的第 3 行換成:
draw:fill="bitmap" draw:fill-image-name="Background1" draw:fill-image-width="100%" draw:fill-image-height="100%" />(我無法理解為甚麼指定一個 background 要改兩處!)
- 在第 26 行左右,會有一行:
- 改好
styles.xml後,再將所有檔案打包:zip -r ../somethingelse.otp ./
嘿,OpenOffice 真的使用了我指定的背景圖片耶!我真是要跪地叩謝 OpenOffice,竟然還允許我完成工作,太感謝了。終於死得眼閉。
開始為 Wily 用那麼多時間四出奔走聯絡感到惋惜。