23.3. PDF

搞印刷的人幾乎都聽過 PDF,也是某些人朗朗上口的術語,不過了解的有多少就可能少一些了,這裡希望提供一些應該知道,但是不好意思開口問的 PDF 基本知識。

PDF 的影響不在於它推出那天有立即改寫什麼印刷的歷史,但卻幾年後整個顛覆改變了印刷的生態,雖然它只是一種檔案格式,不過卻因為能:

  • 包含大部份印刷所需的資料
  • 高度壓縮能力
  • 網路檢閱可行性
  • 主要的統一性規格,引導出真正的開放標準軟/硬體
  • 表格能力讓政府機構願意使用,成為辦公室主力檔案格式

這些因素使得 PDF 逐漸成為印刷與數位列印的主角,另一方面在使用繁體中文的台灣之 PDF 應用上多了一層語言的隔閡,包含相關資訊知識軟體RIPPDF 本身;前面兩項是因為使用人口過低導致翻譯量、深度與速度的不足;軟體與 RIP 的中文相容性來自於台灣市場太小與本地分公司或代理商之無知與無能,到現在還有 RIP 與中文不相容,一面廣告吹噓 PDF 工作流程,一面卻要大家將中文轉外框字;至於 PDF 本身則可能是來自於 Adobe 內部的不同工作群組,例如 InDesign, Illustrator 匯出的 PDF 有時都無法被自己公司的 Adobe RIP 正確地解讀。

因此造就了不少 PDF 在台灣應用上的混亂與不同理解,例如:

  • 廠商:用我們的 Normalizer 產生的 PDF 才是正確的印刷用 PDF
  • PDF 1.X 版有問題要換到 PDF 1.Y 版才沒問題
  • 這個 PDF 檔案內嵌字有問題
  • Windows 的細明體字型內嵌輸出有問題
  • PDF 中的文字應該都要轉成外框字
  • 製作印刷用的 PDF 檔案時圖像要使用無損失式壓縮或不壓縮
  • PDF 不可使用透明度、Alpha Channel、特效、...
  • PDF 印刷品質比較差
  • 廣告來稿不可使用 PDF
  • PDF 不可以搞色彩管理,RGB 一定要事先轉成 CMYK

林林總總的不同認知,大部份的原因可能是為了要配合自己產品的限制,有的可能是因為認知問題,有的可能是人云亦云,...然而這是一個普遍性的問題,舉例來說就連跨足數位印刷的電腦科技業龍頭 HP 網站上中文內容的 PDF 檔案就有不少可斟酌之處,例如:HP 雷射印表機紙張規格簡介 這個供人以網頁檢視的 PDF 檔案(2009 年 5 月 20 日還在),不可思議之處包含:

  • 8 頁文字為主的檔案大小是 8.08 MB
  • 所有的文字居然都描成外框線條
  • 所有的圖檔居然都是以 ZIP+ASCII 85 壓縮
  • 居然是用 Adobe Illustrator 8.0.1 存成的 PDF 1.3 版
  • 居然沒有 Fast Web View 處理
  • PDF 的說明標題居然是中文亂碼

所以雖然已經有十多年的歷史,PDF 的知識與中文應用即使到了 2009 年的今天還是需要不少的理解,因此有了這一大段的 PDF 格物致知。





PDF 的快速基本 Q & A


PDF - Portable Document Format 可攜式文件格式

  • 設計目標是以電子形式傳輸『最終形式文件』的檔案格式
  • Adobe 於 1992-1993 開發,是 Acrobat 產品系列的一部份
  • PDF 是一個開放的公開檔案格式,其規格可於 Adobe 網站內 <http://partners.adobe.com/public/developer/en/pdf/PDFReference16.pdf> 取得,也於 2008 年 1 月成為國際標準 ISO/DIS 32000

PDF - 裡面有些什麼?

  • PostScript/Adobe 的圖像模型 (Imaging model)
    • 以與設備和解析度無關的方式呈現的文字和繪圖
  • 點陣式影像
  • 印前特色(補漏白 (trapping)、出血 (bleed)、...等)
  • 瀏覽工具(書籤 (bookmarks)、超連結( hyperlinks)、...等)
  • 註解 (Annotations)
    • 文字註解、標線 (MarkUp)、視訊、聲音
  • 表格 (Forms)
  • 保全與驗證 (Security & Authentication)
  • 其他更多...

PDF - 裡面沒有些什麼?

  • PDFs 不是 PostScript!
    • 包含不可列印的元素(例如:超連結)
    • 沒有程式語言的概念與結構
    • 精確嚴謹的檔案結構能隨意取用資料
    • 存在字型資料以能有精確檢視能力
  • 雖然轉換 PDF 頁面說明到 PS 很容易,但 PS 解譯器無法直接解譯 PDF

一點小歷史

  • PDF 1.0 - Acrobat 1.0
    • PostScript 的圖像模型 (Imaging model)
  • PDF 1.1 - Acrobat 2.0
    • 保全、註解、二進制編碼檔案
  • PDF 1.2 - Acrobat 3.0
    • 互動功能、視訊/聲音、表格、CJK、網頁
  • PDF 1.3 - Acrobat 4.0
    • 結構、數位簽名、內嵌、JavaSCript、RTL、分色、PS3
  • PDF 1.4 - Acrobat 5.0
    • 透明度
    • XML 與 Metadata、Tagged PDF(標籤式PDF)
    • JBIG2 壓縮
  • PDF 1.5 - Acrobat 6.0
    • 壓縮的物件
    • 選擇性內容(層 - Layers)
    • JPEG2000 壓縮
  • PDF 1.6 - Acrobat 7.0
    • 3D
    • 物件的 medatata
    • 頁面與檢視的縮放
    • NChannel 色彩

PDF 檔案內的排列

  • Header
    • 指示PDF版本
  • Body
    • 一系列的物件
  • XREF
    • 各物件的位置指示表
  • Tailer
    • 指示 XREF 的位置

最小的 PDF

  • %PDF-1.1
    %âãÏÓ
    1 0 obj
    <<
    /Pages 3 0 R
    /Type /Catalog
    >>
    endobj
    2 0 obj
    <<
    /Type /Page
    /Parent 3 0 R
    >>
    endobj
    3 0 obj
    <<
    /Kids [ 2 0 R ]
    /Count 1
    /Type /Pages
    /MediaBox[ 0 0 612 792 ]
    >>
    endobj
    xref
    0 5
    0000000000 65535 f
    0000000015 00000 n
    0000000085 00000 n
    0000000136 00000 n
    0000000227 00000 n
    trailer
    <<
    /Size 5
    /Root 1 0 R
    /ID[<5181383ede94727bcb32ac27ded71c68><5181383ede94727bcb32ac27ded71c68>]
    >>
    startxref
    277
    %%EOF

PDF 的特性

  • Adobe 的圖像模型 (Imaging model)
    • 與PostScript相同的模型,在一選定的區域內置放圖項來建構頁面
      • 圖項可以是字元物件,由線條、曲線或是材切圖像定義的區域
      • 繪圖可使用任何色彩(以各式色彩空間指示)
      • 圖項可使用任何其他圖項或是形狀裁剪
      • 依據頁面描述的順序,圖項可疊放於其他物件之上
    • 加上透明度與不透明性(PDF 1.4)
  • 可攜性 (Portability)
    • PDF檔案內容是二進制格式,所有 8 位元都被使用,但也支援使用 7 位元的檔案內容
      • 使用 7 位元時要使用 ASCII-85 編碼
    • 不論任何平台都使用單一文件格式
    • 透過標準編碼(SJIS, KCS7, BIG5, 等)與 Unicode 支援非羅馬式語言
  • 壓縮/編碼 (Compression/Encryption)
    • 支援多種業界標準演算法
      • JPEG 壓縮(彩色與灰階影像)
      • CCITT Group 3 & 4 與 RLE 壓縮(單色影像)
      • LZW & Flate (ZIP) 無損失壓縮(文字、繪圖等)
      • JBIG2, JPEG2000 壓縮
      • RC4 編碼
        • 40 位元 (4.0)
        • 56 位元 (4.05)
        • 128 位元 (5.0 與以後)
      • RSA 公開鑰匙密碼 (Public Key Cryptography) 作為數位簽署 (Digital SIgnatures)
      • AES (7.0)
  • 字體無關 (Font Independence)
    • 使用字體說明器 (Font Descriptors)
      • 名稱、字元矩陣資料(寬、高、...等)
    • 支援字體內嵌 (Font embedding)
      • 完整/部份內嵌字體
    • 要確保在所有平台與 PDF 檢視器都能正確顯示,應該內嵌字體
      • 不過 Adobe Acrobat 提供字體替代機制
  • 任意讀取 (Random Access)
    • 交互參照表維護各頁面、頁面內物件、...等的參照位置
    • XREF存放於檔案的後面,讓檔案容易一次產生,也容易定位
      • 除了設計作為位元組服務(透過網頁的動態服務)的線性化 (linearized) 檔案
  • 遞增式更新 (Incremental Update)
    • 修改部份寫於檔案尾部,原始資料維持不動
    • 寫入一個新的 XREF 表,包含新與修改的物件連結資料,與舊 XREF 的參照位置
    • 因為原始資料依然存在,儲存後的多重 Undos 可行
  • 擴充性 (Extensibility)
    • 從 PDF 1.0 以後雖然加入各式新功能,但卻不曾破壞回溯相容性
    • PDF 檢視器對於他不了解的物件只需忽略即可

PDF 檔案的結構

PDF 內容 (Content)

  • 頁面上所有的[標記]物件稱為內容
  • 內容只能放置於一畫布上,稱為一個頁面 (Page)

PDF - 裡面有些什麼?

PDF 的座標系統

  • 一個座標系統定義 PDF 畫布上所有繪製的
    • 位置
    • 旋轉方向
    • 大小
  • 設備空間
    • 輸出設備的設備空間(螢幕、印表機、...等)
      • 解析度不同(72 dpi 與 600 dpi)
      • 原點不同 (左上 與 左下)
  • 用戶空間 
    • 與輸出設備無關,永遠保持相同的座標系統
    • 現用轉換矩陣 (CTM, Current Transformation Matrix) 定義用戶空間到設備空間的轉換
    • 預設的用戶空間為每英吋 72 單位,原點在左下角

PDF - 轉換 (Transformations) 

  • 矩陣對應 (如 2x3)
  • 平移 (Translation)
    • [1 0 0 1 /x /y]
  • 縮放 (Scaling)
    • [sx0 0 sy0 0]
  • 旋轉 (Rotation)
    • [cosθ sinθ–sinθcosθ 0 0]
  • 偏斜 (Skew)
    • [1 tanαtanβ1 0 0]

Idea associations
Table of contents