2011/07/19

[程式] 使用PHP產生UNICODE中文PDF II - 改良版

這個主題可以寫到第二篇真不容易
第一篇應該是留言最多的一篇文了,所以來加碼一下
最近的回應提到了如何定位,所以我還分享一下我的寫法
(但是因為要支援外字這個寫法已經沒再用了= =)



我把所有範例程式放上網路了,請到 http://dl.dropbox.com/u/193603/pdf.zip 下載
這隻範例程式主要分三部分,請先看圖
pdf_create.jpg
沒框起來的就是基本的API使用,也可以包成Function使用
這隻有兩大功能,產生參考定位點頁 與 生出動態資料的PDF

2011-07-19_230008.jpg
↑參考定位點的範例 數字就是X,Y的位置 (範例PDF)
拿你實際要KEY上去的文件跑一下,抓的速度應該就會快很多

2011-07-19_232032.jpg
產生動態資料的範例( 範例PDF )

===程式碼說明===
預先定義兩個陣列,一為PDF的動態文字內容,另一為該文字所在頁面的座標與文字大小
兩個陣列的索引須相同,不然會找不到資料
我通常拿DB的欄位名稱當索引,動態資料直接從DB撈出來就可以用
只需另外定義該文字的座標即可


座標陣列為二維陣列,格式長這樣
$pos = array( 'index' => array( X座標, Y座標 + 行距 , 字體大小' ), ... );
這樣複製貼上用迴圈跑比較方便;
但要注意的是,字體大小一旦更改後,之後的文字就會保持該設定,需再重設
用陣列的優點就是可以用迴圈重複執行 $pdf->Text() 程式碼看起來也比較簡潔


這樣,應該夠詳細了吧= =

2 則留言:

  1. 請問怎樣把直放變成橫放?
    之前我是用$pdf = new FPDI('l');
    但是在你的範例裡不行

    回覆刪除
  2. 解決問題了
    謝謝!

    回覆刪除