2011-08-08 29 views
2

我正在嘗試創建PDF格式的優惠券/優惠券。PHP,PDF - 替換字

我有一個帶有佔位符的PDF文件,像{first},{last},{date}等等。我想要做的就是用內容替換佔位符。

我希望我需要替換字符串中正確的字節數,也許有點像十六進制編輯。

我只需要解決如何解壓縮pdf中的內容,替換內容中的文本,然後再次壓縮它。所以這是真正的問題。


我嘗試過其他方法,如DOMPDF,使從HTML字符串的PDF格式,但一切都出來全亂了,所以我想這將使它更容易。

感謝如果有人能幫助我,

理查德

+0

是否有可能以相反的方式做到這一點?與其打開已存在的PDF並替換其中的佔位符,不如使用包含佔位符的純文本或HTML(並更輕鬆地替換它們)並將其寫入新的PDF? – Mike

+0

@Mike是啊,這是我用domPDF嘗試的,但是當我將html轉換爲pdf時,一切都變得混亂了。 – Drahcir

+0

對不起,我一定誤解了你所說的。出於某種原因,我以爲你以某種方式從PDF中提取HTML。 – Mike

回答

3

PDF可以只是一個明文PostScript代碼塊。如果沒有壓縮,你可能會加載原始內容並做簡單的字符串替換。但請注意,您的佔位符不作爲postscript代碼的其他部分使用。

一個更強大的系統會使用類似PDFlib的塊模板系統,這使得插入文本/圖像到預先製作的模板瑣碎。缺點是pdflib許可證相當昂貴。

+0

文件流被詛咒,這也是我想要的。有關如何解壓縮此PDF的任何提示? –

0

我可以建議使用LiveDocx來做到這一點嗎?它對光的使用免費:http://www.livedocx.com/

基本上,您使用Microsoft Word創建模板,並使用PHP填寫模板項目。模板加上數據被髮送到LiveDocx服務器,並且您獲取PDF。

2

有創建PDF的庫,但據我所知沒有庫來編輯PDF的。 PDF文件格式基本上非常簡單,但另一方面由於許多可能性而非常複雜。 格式定義了每個都有自己標題的數據容器。爲了保持文件的小,壓縮被應用到外部(LZW,我相信),但解壓後的文件,你還沒有完成。每個容器都指定了它的長度,所以你不能僅僅替換文件中的文本而不會破壞它。

你可以嘗試創建一個庫來爲你做這件事,但是我希望你好運,因爲PDF文件格式描述(可以從Adobe.com下載)超過1200頁。

另一種選擇是使用可以創建PDF並使用代碼設計模板的庫。