PDF文件格式解析(1)- 了解PDF的語法格式


PDF文件格式解析(1)- 了解PDF的語法格式

由Adobe Systems Incorporated開發的PDF(便攜式文檔格式)被Adobe描述為一種通用的文檔表示語言。PDF代表格式化的,面向頁面的文檔。這些文檔可以是結構化的或簡單的。它們可能包含文本,圖像,圖形和其他多媒體內容,例如視頻和音頻。支持注釋,元數據,超文本鏈接和書簽。更高版本提供了其他功能,例如,將地理空間信息嵌入到代表地圖或其他地理空間圖像(例如衛星照片)的文檔中。

PDF的核心是源自PostScript頁面描述語言的圖像模型。請參閱后記格式族。該模型可以在完整,精確和專業的級別上以與設備無關和與分辨率無關的方式來描述文本和圖形。與作為編程語言的PostScript不同,PDF基於結構化的二進制文件格式,該格式針對交互式查看的高性能進行了優化


最新的都已經到PDF2.0的格式了,但是PDF2.0的標准還沒有廣泛采用,所以本文的介紹還是以PDF1.7為解析參考藍本。
enter description here

PDF的發展史不做過多介紹,本系列文章就是簡析PDF文件結構。 pdf_reference_1-7是Adobe PDF的參考手冊,可自行從https://www.adobe.com/devnet/pdf/pdf_reference_archive.html下載。

我們看其中的一個例子 TABLE G.2 Objects in simple text string example

  1. %PDF−1.4 
  2. 1 0 obj 
  3. << /Type /Catalog 
  4. /Outlines 2 0 R 
  5. /Pages 3 0 R 
  6. >> 
  7. endobj 
  8. 2 0 obj 
  9. << /Type /Outlines 
  10. /Count 0 
  11. >> 
  12. endobj 
  13. 3 0 obj 
  14. << /Type /Pages 
  15. /Kids [4 0 R] 
  16. /Count 1 
  17. >> 
  18. endobj 
  19. 4 0 obj 
  20. << /Type /Page 
  21. /Parent 3 0 R 
  22. /MediaBox [0 0 612 792] 
  23. /Contents 5 0 R 
  24. /Resources << /ProcSet 6 0 R 
  25. /Font << /F1 7 0 R >> 
  26. >> 
  27. >> 
  28. endobj 
  29. 5 0 obj 
  30. << /Length 73 >> 
  31. stream 
  32. BT 
  33. /F1 24 Tf 
  34. 100 100 Td 
  35. (Hello World) Tj 
  36. ET 
  37. endstream 
  38. endobj 
  39. 6 0 obj 
  40. [/PDF /Text] 
  41. endobj 
  42. 7 0 obj 
  43. << /Type /Font 
  44. /Subtype /Type1 
  45. /Name /F1 
  46. /BaseFont /Helvetica 
  47. /Encoding /MacRomanEncoding 
  48. >> 
  49. endobj 
  50. xref 
  51. 0 8 
  52. 0000000000 65535 f 
  53. 0000000009 00000 n 
  54. 0000000074 00000 n 
  55. 0000000120 00000 n 
  56. 0000000179 00000 n 
  57. 0000000364 00000 n 
  58. 0000000466 00000 n 
  59. 0000000496 00000 n 
  60. trailer 
  61. << /Size 8 
  62. /Root 1 0 R 
  63. >> 
  64. startxref 
  65. 625 
  66. %%EOF 

這段PDF代碼的顯示結果就是Hello World,如下圖。
enter description here

從整體結構來看語法有點類似XML,HTML,基本都有節點控制。每個obj小節都會有個endobj。

enter description here
enter description here

從上面的介紹來看PDF就像變成HTML一樣是有固定格式的,所以接下來幾個章節就圍繞PDF的格式做一個簡要的解析。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM