PDF格式分析(五)文件結構之檔案頭

2021-08-25 14:19:50 字數 800 閱讀 6952

一般情況下,檔案頭,即,pdf檔案的第一行,它用來定義pdf的版本,從而確定該pdf遵循的哪個版本的pdf規範。

pdf版本是向下相容的,即高版本的規範,相容低版本的規範。

目前我見過的版本有:

%pdf-1.0

%pdf-1.1

%pdf-1.2

%pdf-1.3

%pdf-1.4

%pdf-1.5

%pdf-1.6

%pdf-1.7(最常見)

%pdf-1.8(在標準文件裡沒有,只是遇到一些客戶特殊的檔案中會出現,非常少見)

以上都是常見的版本號,還有乙個特殊的版本,如pdf/x、pdf/e 和 pdf/a,pdf/vt等,它們在pdf檔案中表現為檔案頭版本+outputintent相結合來標識版本。

在catalog字典中,存在version屬性,它的值也是pdf版本號,該版本號如果高與檔案頭版本號,則採用這裡的版本號,否則忽略。這裡的version屬性是可選的,通常是在pdf增量寫的情況下用到。因為原pdf檔案進過編輯後,新增或修改的內容需要遵循的版本比原本更高,而增量寫的方式要求原pdf檔案內容不修改,所以,通過修改catalog物件中version,只要增量部分寫入catalog物件,就可以改變pdf的版本號。

pdf檔案頭有些情況下,並不只儲存了版本號,還可能在版本號前面加一下使用者自定義的內容,用來滿足使用者的特殊需求。當遇到這種情況時,對檔案頭的讀取演算法就要寫的靈活一點,不然取值會發生錯誤,同時還會影響到間接物件讀取的問題,這個問題,在後面介紹間接物件讀取方法的時候,會介紹。

關於pdf版本,會單獨起一章專門討論。

mongodb學習心得(五)文件查詢

查詢文件 查詢行資料 查詢所有 語法 db.collection.find query,projection 引數query 可選,使用查詢操作符指定查詢條件 projection 可選,使用投影操作符指定返回的鍵。查詢時返回文件中所有鍵值,只需省略該引數即可 預設省略 如果想格式化返回資料,使用如...

文字挖掘學習(五) 文件相似度 文件聚類

基於詞袋模型的基本思路 余弦相似度 文字相似度 基於詞袋模型計算 countvec countvectorizer min df 5 在5個以上章節 現才保留 words vec countvec.fit transform words list 得到乙個稀疏矩陣,詞頻矩陣 from sklearn...

HTML5文件結構分析

html5規範將元素分為三大類 元資料元素,流元素和短語元素 指示 web 瀏覽器關於頁面使用哪個 html 版本進行編寫的指令。html版本有 html 5,html 4.01 strict,html 4.01 transitional,html 4.01 frameset,xhtml 1.0 s...