PDF檔案在創立初始主要是面向印刷出版領域的,透過提供平臺無關的成像模型來保證頁面的精確描述,可以理解為一種固定版式(Fixed Layout)技術,隨著後續在越來越多的領域產生應用需求,又加入了互動式表單、多媒體、數字簽名、Tagged PDF等內容,使得PDF規範變得越來越臃腫和複雜。
PDF首次由Adobe公開是1993年,而XML技術的出現是1995年,所以一直以來PDF使用的是二進位制文字流作為描述語言,而非XML這樣的標記語言,在文件結構的魯棒性設計上是比較糟糕的,而且有各種各樣的資料描述方式,可讀性很差,編輯起來自然也不太容易。
所以,如果只是將PDF頁面渲染出來,那還是相對比較容易的一件事情,頂多就是有些不相容或者渲染結果錯誤而已,經過這麼多年的發展,無論是開源的還是自主研發的程式碼,基本上可以滿足大多數PDF檔案的渲染要求。但是要說編輯,就不是那麼簡單了,比如段落資訊,PDF裡面基本都不會有,如果希望做到像Word檔案那樣編輯,就會涉及到一個版面理解領域的難題,編輯器必須透過演算法來確定段落邊界,比如:
如果不能很好的確定段落邊界和文字順序,你想進行文字的插入和刪除操作的話,體驗就會非常差,另外,PDF進行文字編輯時的字型匹配演算法也是非常複雜的,因為很多PDF文件使用了內嵌字型技術,甚至在編輯器所在的系統環境中,根本沒有安裝對應的字型,那麼好一點的編輯器也許會匹配一個近似的字型,通常的編輯器那就只能呵呵了。
這還僅僅是文字編輯領域,如果加上圖形影象、表格表單,甚至於掃描PDF之類的,情況當然會更加複雜,因此一個好的PDF編輯器,技術門檻是比較高的。
對於推薦PDF編輯器,這裡也做一個利益宣告,我自己目前重回數字文件領域,負責PDFelement這個產品的開發,雖然目前距離Adobe Acrobat還有不小的差距,但也有自身的特色,下個月全新的PDFelement 6即將釋出,希望給大家帶來驚喜。:)
PDF檔案在創立初始主要是面向印刷出版領域的,透過提供平臺無關的成像模型來保證頁面的精確描述,可以理解為一種固定版式(Fixed Layout)技術,隨著後續在越來越多的領域產生應用需求,又加入了互動式表單、多媒體、數字簽名、Tagged PDF等內容,使得PDF規範變得越來越臃腫和複雜。
PDF首次由Adobe公開是1993年,而XML技術的出現是1995年,所以一直以來PDF使用的是二進位制文字流作為描述語言,而非XML這樣的標記語言,在文件結構的魯棒性設計上是比較糟糕的,而且有各種各樣的資料描述方式,可讀性很差,編輯起來自然也不太容易。
所以,如果只是將PDF頁面渲染出來,那還是相對比較容易的一件事情,頂多就是有些不相容或者渲染結果錯誤而已,經過這麼多年的發展,無論是開源的還是自主研發的程式碼,基本上可以滿足大多數PDF檔案的渲染要求。但是要說編輯,就不是那麼簡單了,比如段落資訊,PDF裡面基本都不會有,如果希望做到像Word檔案那樣編輯,就會涉及到一個版面理解領域的難題,編輯器必須透過演算法來確定段落邊界,比如:
如果不能很好的確定段落邊界和文字順序,你想進行文字的插入和刪除操作的話,體驗就會非常差,另外,PDF進行文字編輯時的字型匹配演算法也是非常複雜的,因為很多PDF文件使用了內嵌字型技術,甚至在編輯器所在的系統環境中,根本沒有安裝對應的字型,那麼好一點的編輯器也許會匹配一個近似的字型,通常的編輯器那就只能呵呵了。
這還僅僅是文字編輯領域,如果加上圖形影象、表格表單,甚至於掃描PDF之類的,情況當然會更加複雜,因此一個好的PDF編輯器,技術門檻是比較高的。
對於推薦PDF編輯器,這裡也做一個利益宣告,我自己目前重回數字文件領域,負責PDFelement這個產品的開發,雖然目前距離Adobe Acrobat還有不小的差距,但也有自身的特色,下個月全新的PDFelement 6即將釋出,希望給大家帶來驚喜。:)