PDF的信息表達原理及特色分析

1、PDF概述android

PDF(Portable Document Format)是一種結構化的文檔格式。它由美國著名排版與圖像處理軟件Adobe公司於1993年首次發佈(1.0版),並於同年推出了其相應的支持軟件產品系列AdobeAcrobat1.0版;隨後Adobe公司又對它進行修訂和升級,於1994年發佈了1.1版,並推出了支持軟件產品系列Adobe Acrobat2.0及2.1版。隨後的PDF1.2版又於1996年11月27日發佈,相應的支持軟件產品系列Adobe Acrobat也升級到3.0版。至1997年末,國際標準化組織已經開始醞釀將PDF接納爲國際標準。git

1.PDF與PS的比較github

PS語言(PostScript語言,即頁面描述語言),也是由Adobe公司擁有的一項事實上的印刷工業標準,它能描述精美的版面,在目前的印刷領域中佔據着統治地位。PDF是從PS發展而來,在對頁面的描述方面它們有着幾乎相同的能力和類似的描述方法。PDF採用了與PS相同的着色模型(Imaging Model)來表現文字和圖形,與PS語言同樣,PDF的頁面描述指令也是經過將選定的區域着色來繪製頁面的。着色的區域能夠是字母等的輪廓、直線和曲線定義的區域以及位圖,着色的顏色能夠是任意的,頁面上的任何圖形均可以被裁剪成其餘形狀。頁面開始時是全空的,各類指令將不一樣的圖形繪製到頁面上,而且新的圖形是不透明的,它能夠覆蓋舊的圖形。編程

雖然如此,PDF與PS相比,仍是有很大的不一樣。這主要表如今如下幾個方面:①PDF文件中能夠包含交互對象,如超連接、交互表單等,而PS則沒有。②PDF是一種文件結構,而PS則是一種編程語言,所以,PDF具備比PS更高的處理效率。③PDF的嚴格結構定義容許應用程度對其中的某個對象進行隨機存取,而PS則只能對總體進行順序存取。例如要訪問一個PS文件中的第100頁,那麼就必須在先順序解釋了其前99頁以後,才能找到第100頁,而在PDF中對每一頁的存取則都是同樣快的。④PDF中還包含有字庫的規格尺寸等字庫描述信息,以便在字庫不存在之時,能夠進行字庫仿真(並不是簡單的字庫替代),保證文檔顯示的一致性。安全

2.PDF的特色服務器

PDF的特色能夠概括以下:①可傳遞性。PDF文件支持7位ASCⅡ碼和二進制碼這兩種編碼方式,能夠正確地在各類網絡環境下進行傳輸。②支持交互操做。PDF包含了交互表單和超連接等交互對象。③支持聲音、動畫。④支持對頁面內容的隨機存取,提升了頁面的各類操做速度。⑤支持不斷追加的修改方式,以便於少許修改和提升效率。⑥支持多種壓縮編碼方式,文件結構更加緊湊。⑦字體無關性。PDF文件中能夠自帶字庫描述信息,以便於在用戶系統缺少所需字體的狀況下,仍然可以保證文檔的正確顯示。⑧平臺無關性。PDF文件具備軟、硬件的平臺獨立性。這個特色很是適合於網絡傳遞中的信息交換,以避免除亂碼的苦惱。⑨安全性控制。PDF文件支持各類不一樣級別的安全性控制,這種安全性控制對於保護電子出版物的版權是很是重要的,咱們可根據各類不一樣電子出版物的安全性要求來進行不一樣級別的安全設置。網絡

2、PDF原理結構app

1.PDF文件結構框架

PDF的文件結構(即物理結構)包括四個部分:文件頭、文件體、交叉引用表和文件尾,可參見圖一。編程語言

文件頭指明瞭該文件所聽從的PDF規範的版本號,它出如今PDF文件的第一行。

文件體由一系列的PDF間接對象(IndirectObject)組成。

交叉引用表則是爲了能對間接對象進行隨機存取而設立的一個間接對象的地址索引表。

文件尾聲明瞭交叉引用表的地址,即指明瞭文件體的根對象(Catalog),還保存了加密等安全信息。

2.PDF文檔結構

PDF的文檔結構便是PDF文件內容的邏輯組織結構,它反映了文件體中各間接對象間的等級層次關係。PDF的文檔結構是一種樹型結構,如圖二所示。樹的根節點也就是PDF文件的根對象,根節點下面有四個子樹:頁面樹(Pages Tree)、書籤樹(Outline Tree)、線索樹(ArticleThreads)和名字樹(NamedDestination)。

其中,在頁面樹中,全部頁面對象都是該樹的葉子節點,它們將繼承父節點的各屬性值來做爲其相應屬性的缺省值。書籤樹則是按照樹型層次的等級關係來將書籤(Book Mark)組織起來的,書籤創建了某個書籤名與一個具體頁面的位置關聯,它使得用戶能夠按照書籤名來訪問文檔的內容。線索樹則將文章線索以及線索下的各文章塊(Article Bead),按照樹型的結構組織起來進行管理。至於名字樹,它則是創建了一種字符串(即名字)和頁面區域的對應關係,樹中的各葉子節點保存着字符串及其相應的頁面區域,而非葉子節點則只是一種索引,以便讓應用程序可以對葉子節點進行快速存取。名字樹的做用就是讓PDF文件中的其它對象也可以用字符串名字來表明其某一個頁面區域。

3.PDF中的資源

PDF中的頁面內容(如文字、圖形、圖像等)都保存在頁對象的Contents關鍵字所對應的流對象(如下簡稱內容流)中。內容流中用到了不少基本對象(如數字、字符串等),這些都是利用直接對象來表示的。但還有其它一些對象(如字體等),它們自己就是用字典對象(Dictionary)或流對象(Stream)來表示的,沒法用直接對象來表示,而內容流中又不能出現有任何的間接對象(不然就沒法與內容自己的數據區分),因而就將這些對象另外命名,並在內容流中用相應的名字來表示它們。這些用名字來表示的對象就稱做命名資源(Named Resources)。

在頁面對象中有一個資源項(Resources Key),該項列出了內容流中用到的全部資源,而且創建了一個資源名字與資源對象之間的映射表。PDF中的命名資源有:指令集(Proc Set)、字體(Font)、色彩空間(Color Space)、外部對象〔X Object(包括Image、Form和PS Segment)等〕、擴展的圖形狀態(Extended Graphics State)、底紋(Pattern)和用戶擴展標記列表(Property List)等。

非命名資源有:Enc oding、Font De s c-riptor、Halftone、Function和C Map等。因爲非命名資源都是被隱含使用的,所以就沒有命名的須要。

4.PDF頁面描述指令

PDF中共有60個頁面描述指令,這60個頁面描述指令描述了頁面上的一系列的圖形對象。這些圖形對象大體能夠分爲四類,即路徑對象(Path Object)、文本對象(Text Object)、圖像對象(Image Object)和外部對象。它們是構成全部頁面的基本元素。

3、PDF文件生成

目前PDF文件的生成有兩種途徑:

1. 經過打印的方式生成PDF。也就是說經過一個虛擬的PDF打印機將應用程序的文字和圖形等指令(如Windows下的GDI指令、MAC下的Quick-Draw指令等)轉換爲PDF指令,並將其保存在相應的PDF文件中,如圖三所示。在安裝了AdobeAcrobat PDFWriter以後,從理論上來講,全部的只要具備打印功能的應用程序,都應該可以將待打印的內容貯存到PDF文件中。可是,目前生成中文的PDF文件尚有不少問題。

2.由PS轉換到PDF。這是另外一種生成PDF的方法,它是由應用程序先將待打印的內容發排到PS文件中,而後再由Adobe AcrobatDistiller將PS文件轉換成PDF文件,可參見圖四。

兩種生成PDF的方法各有利弊。經過打印的方式生成PDF的優勢就是,它和應用程序可以緊密地結合,在用戶看來它是從應用程序中直接生成PDF的,但缺點是因爲GDI指令集和Quick-Draw指令集自己的侷限,難以生成高精度的PDF。然而從PS轉換到PDF雖然多了一道工序,可是因爲PS自己具備高精度的描述能力,所以生成的PDF能夠達到印刷級的質量和精度。在生成了PDF文件以後,用戶就能夠用AcrobatReader來進行閱讀和打印,並且還能夠具體地使用AcrobatExchange來給PDF文件增長如頁面縮略圖、超連接、書籤(或目錄)、註釋等一系列的交互屬性。在採用Adobe提供的工具來生成PDF之時,目前都存在着中文支持方面的問題,如不支持中文字庫的下載、中文顯示依賴操做系統等等。

4、PDF在數字流程中的應用及其前景展望

正是因爲PDF具備諸多適合電子出版的特性,因此目前它在現代數字化工做流程中的應用日益增多。其中,具體應用能夠分爲三種狀況:製做CD-ROM電子出版物、與HTML混合使用來發布信息、獨立採用PDF來製做主頁及發佈信息。

用PDF製做CD-ROM電子出版物是目前應用最多的狀況,如廣爲流傳的《黃金書屋》光盤,以及中國大百科全書出版社出版的《中國大百科全書·光盤版》等,都是採用PDF來進行光盤出版物製做的,它們都是PDF成功應用於數字流程中的例子。

因爲如今只有少許的WWW服務器支持PDF,所以單獨採用PDF來製做主頁及發佈信息在將來的一段時間內還不太現實。可是已有大量的WWW站點開始採用HTML和PDF混合的方式來進行信息發佈了,如在HTML的框架中嵌入PDF,二者就能夠實現無縫結合了。對於支持PDF的WWW站點,用戶從上面閱讀PDF和HTML是等效的,也能夠來邊傳邊讀。而從那些不支持PDF的WWW站點上閱讀PDF時,則只能等PDF文件徹底下載到了本地以後,用戶才能進行閱讀。目前,已經有大量的電子雜誌開始採用PDF來在因特網上發行了。

如今,愛克發又推出了兼容JDF的第三代ApogeePDF工做流程解決方案,進一步擴展和簡化了整個工做流程。它擁有更高的自動化程度、可控制性、開放性和可升級性,並且也更加易用。該套ApogeePDF解決方案能夠支持基於頁面的工做流程和基於整個大版的工做流程,使得工做更加靈活,也知足了不一樣的工做方式和生產需求,真正地把自動化帶到了另外一個層次。經過PDF和JDF的配合,用戶能夠開始將商業與生產工序結合起來了,以真正作到工做流程的整合和終端至終端的自動化。JDF是一套開放的、可擴展的、以XML爲基礎的工做定義格式,它爲客戶從接到定單到最終發貨的整個工做流程,提供了一個靈活而全面的解決方案,這比之前的任何一種工做形式都要更加完整和有效。

PDF的出現對傳統的數字化印刷流程產生了巨大的衝擊,傳統的以PS爲中心的印刷將面臨着PDF的挑戰,將來的PDF RIP(RasterImage Processor)也將會逐步地取代PS RIP,從而真正地實現「一次製做、屢次使用」的思想。(做者單位:湖北武漢大學)

 

 

Pdf viewer project:

http://www.mupdf.com/
https://code.google.com/p/apv/
http://code.google.com/p/vudroid/
http://code.google.com/p/droidreader/
http://code.google.com/p/apdfviewer/

http://www.jansenfelipe.com.br/android-ler-pdf-aplicativo/
https://github.com/jansenfelipe/AndroidMuPDF

相關文章
相關標籤/搜索