「PDF Explained筆記」修訂間的差異

增加 1,629 位元組 、 2023年12月26日 (二) 23:06
無編輯摘要
行 16: 行 16:
* PDF語法包含:文件內容、頁面內容、檔案結構
* PDF語法包含:文件內容、頁面內容、檔案結構


==Ch2 介紹如何製作PDF==
==Ch2 介紹如何製作PDF及以後==
* 個人註:基本上只看了這本書仍然無法製作PDF library,尤其是cross-reference table的offset不好求取。
* 個人註:基本上只看了這本書仍然無法製作PDF library,尤其是cross-reference table的offset不好求取。
* 有檔案內object的cross-reference table、offset,以及一些非ASCII字元,所以光看這本書還是無法寫出PDF-library。加上PDF對裡面的binary等物件大小是敏感的,而且要明文記載在檔案裡面,假設用文字編輯器打開存檔,很容易因為換行符號轉換導致數字兜不起來而故障,所以不要用文字編輯器開PDF。
* pdf 有三種結構
** document
** page content
** file content
*資料型別包含:dict、string、array、real、integer等
* 1 0 R表第一個物件
* 使用逆波蘭表示,函數在後面,類似日語那樣的SOV語序。
* 1 page要有資源和page content(向量圖形、文字)
* header包含非ASCII的字元,避免檔案傳輸時被改變產生問題。
* 檔案內分成Main Objects、Page Objects等多個Object,並有有向圖聯繫。
*需要用PDFtk修飾offset這類的東西。
後來有介紹圖形操作(類似transformation)、文字操作,以及基本的字型、連結、章節綱要、常見pdf軟體等。
其中提到文字表示:小規模的文字列可以輸入,大規模精細的換行排版需要自己指定,是一種折衷的做法,可以使用Kern這種微調字元間距的方式。
==心得==
讀起來有點空虛感,部分是因為太複雜了,就算瞭解他的運作流程,也是很難創作PDF檔案。不如製作擴充的,可以base64內嵌二進位檔的SVG檔案擴充成為新的檔案格式更親民。但是,這也意味著資料更好被篡改(因為規格比較好讀,且比較不容易因為動到哪些地方就出錯,門檻比較低)。


[[category:資訊]]
[[category:資訊]]