試了好幾天沒有進度,好吧聯絡請教了hami老師。hami 老師二話不說馬上幫忙解惑幫我改寫了相關程式碼,不但讓我可以解決我的需求也讓我多學了幾招。這兩天自已好好研究了hami老師修改的程式碼我發現又有新的解法,我的解決方法可以跳脫樣板的限制,改用外部相片插入報表。
我現在的做法是這樣的:
- 使用libreoffice設計好使用的樣板,在文件中安排的相片上快點兩下,在類型 / 圖定標記 項目中將其設定為當做字元。
- 將設計好的odt檔解壓縮,修改解壓縮後META-INF資料匣中的manifest.xml檔,將其中記錄圖檔路徑的那一行(manifest:file-entry manifest:media-type="image/jpeg" manifest:full-path="Pictures/10000000000000660000006A129905F2.jpg"/)刪掉,這一行是用來記錄圖檔儲存位置。
- 將解壓後的Pictures資料匣中的圖檔刪除,因為之後我們要用的是外部資料匣中的圖片所以留著也沒用。
- 修改content.xml,搜尋Pictures字串將Pictures/1…006A129905F2.jpg取代為變數 {photo}
- 有關圖檔的部份就準備就緒了,剩下來的就是組合我們要的{photo}變數,弄個圖片的url給{photo}變數,這樣在產生odt檔時就會把圖檔帶進去了。
- 這樣做有個風險就是下載下來的odt檔的圖片會採用連結的方式連到遠方的網站,如果網路有問題圖片也就跟著出不來。我變通的做法是,如果要永久保存這個檔案的話就把他另存為pdf一勞永逸。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。