23. 印刷格物致知
          23.2. PostScript
 23.2.2. PostScript 呈像計算 (Rendering)

PostScript 是一個描述一個或多個頁面內容的語言,要真正使用此說明將之列印到紙上或製作成印版,需要一個程式來解譯(或呈像計算,也有翻譯成光柵化,renders)這些資料,把它轉換成印表機、輸出機或 CtP 系統可以輸出到媒體的東西,這個解譯由一個稱為 RIP(Raster Image Processor,光柵圖像處理器)或是 Renderer(呈像計算器)的系統來完成。

如果市場上的每一個應用程式都使用自己的方式描述頁面的內容的樣子,那就必須為每個應用程式購買各自的 RIP(QuarkXPress 的 RIP、Illustrator 的 RIP、CorelDraw 的 RIP、...);為了避免這個問題需要將輸入的資料編碼成一種標準化的頁描述語言 (Page Description Language, PDL),業界有許多 PDLs,最常見的是:

  • PostScript(主要用於在印刷)
  • PCL(辦公室使用)
  • HPGL(通常用於電腦輔助設計來驅動繪圖機)

本文以下的討論集中於 PostScript RIPs。

硬體式與軟體式 RIPs

本質上,RIP 是一個在某種電腦上運行的軟體程式,二十年前,所有的 RIPs 都是在專屬的硬體上執行,也就是專用設計來只執行 RIP 軟體的電腦,可能根本沒有鍵盤、螢幕或滑鼠,這樣的 RIPs 稱為硬體式 RIPs,現在在雷射印表機何其他較便宜的設備仍然可以找到這類 RIPs,這些內建的 RIPs 也稱為 PostScript 控制器。

現在很多 RIPs 就像任何其他應用程式一樣運行於通用的 PC 或 Mac 電腦上,這些 RIPs 被稱為軟體式 RIPs,它們仍可能包括特殊的硬體,譬如一張連接到輸出設備的介面卡;有時為了防止盜版,軟體式 RIPs 往往包括一個像 Dongle 的保護鎖。

Adobe 和不那麼的 Adobe 的 PostScript RIPs

因為 PostScript 是由 Adobe 所開發,他們自然是創造 PostScript RIPs 的最重要公司,這些 RIPs 在 OEM 市場出售:Adobe 公司創造RIP的核心代碼(即現今所謂的 CPSI 或最新一代的 APPE)然後出售給任何尋找 PostScript 解決方案的公司;輸出機製造商購買此代碼並新增與他們的輸出機的硬體介面,和控制軟體之額外的新增功能。

當然,Adobe 是不是唯一製造 RIPs 軟體的公司,其他公司以跟隨潮流製作所謂的 PostScript 克隆(Clone,相容物),這些 RIPs 都是符合了 Adobe 的 PostScript 標準,其中最重要的是由 Global Graphics 所製做,他們的 RIP 稱為 Harlequin,他們也銷售另一種 RIP,稱為 Jaws RIPGhostscriptAladdin 推出的一個免費的 PostScript 解譯器,其商業版本用於像 BESTColor RIP 的產品。

以輸出歸類 RIPs

另一種歸類 RIPs 的方式是檢視其輸出資料:

  • 某些 RIPs 產生的資料可以直接傳送到一輸出機或繪圖儀,對於輸出機或 CtP 設備,這些資料是像素 (pixel) 告訴機器內的雷射是否要寫點道輸出媒體上
  • 其他 RIPs 生成一個中間資料格式,被發送到輸出設備之前仍然需要另一個系統的處理前,這讓製造商能在 RIP 與輸出機之間處理資料,例如拼大版或是編輯工作站,Scitex 和 Barco 的 RIPs 是這樣一種做法的典型例子(2003 與 2005 年 Scitex 被 Kodak (Scitex Digital Printing, SDP) 與 HP (Scitex Vision) 併掉)

輸入

一般來說每個 RIP 接收資料(以 PostScript 或 PDF 編碼的頁面)、計算處理他們、然後發送輸出資料到他們的目的地,完成這些作業的 RIP 軟體是相當複雜而龐大的系統;RIP能通過各種方式接收資料,首先檢視這些資料是如何被產生製做出來:

  • 在 InDesign, QuarkXPress, Publisher 或任何軟體製作一個頁面,並決定將它列印出來
  • 在 Mac 上用 Chooser 選擇 LaserWriter 驅動程式,然後選擇要列印的設備,LaserWriter 其實是一個小的應用程式,負責資料傳輸到選定的設備,或是配合應用程式創造 PostScript 資料
  • 在 PC 上,基本上的作法相類似,選擇一台印表機相當於告訴作業系統使用哪個版本的 PostScript 驅動程式可被應用程式呼叫以協助建立 PostScript 列印檔案 (printfile)
  • 某些應用,如 Adobe Illustrator 使用 PostScript 作為其內部格式,這表示在創造一個輸出檔案時他們不必做太多工作,只需再添加一些東西就好,例如:字典、字體資料和設備相關的資料,如輸出線數
  • 大部分的印前應用程式使用了自己獨特的內部資料格式,並自己從這個內部格式轉換頁面到 PostScript 檔案,他們可以依賴 PostScript 驅動程式(作業系統的一部分)來處理一部分的轉換工作
  • 商業應用程式,如 MS Word 或 Excel 中完全依賴於 PostScript 驅動程式創建的 PostScript 資料,這表示通過簡單地切換一個 PostScript 驅動程式到另一個,便可解決淵源自驅動程式問題

一旦 PostScript 的印印檔案產生後,將被傳送到選定的媒體或設備,大多數 RIPs 支援許多不同的輸入通道:

  • AppleTalk:RIP 可以在這個網路上以雷射印表機形式呈現,Mac 使用者在 Chooser 內選取RIP並列印給它,這是列印工作最簡單的方式,但也是一個相當緩慢的作業
  • TCP/IP:RIPs 可以支援任何的 LPR(一個標準的 Unix 通信協定),或 Helios streaming protocol,這表示可以列印到 Helios EtherShare 印表機,然後這個 printspooler 使用快速 TCP/IP 通信協定將檔案傳給RIP
  • 命名管道 (Named pipe):這是一個 Microsoft 處理不同的應用程式之間交換資料的通信協定,它靠 TCP/IP 執行實際的資料傳輸,這個通信協定可以用於從 PC 列印到 RIP
  • Hotfolders:大多數軟體式 RIPs 可以監控的幾個檔案夾並處理任何在裡面找到的 PostScipt 或 PDF 檔案,只要列印頁面到硬碟並把這個 PostScript 檔案放入一個 hotfolder 內,轉眼間幾秒鐘後,RIP 發現這個檔案並完成輸出

這些都是最常見的輸入通道,也有其他的可能通道,PostScript 3 RIPs 可以支援一個稱為 Web Ready Printing 的系統,它允許從網際網路列印到 RIP 內,像雷射印表機模較小的裝置可能提供 USB 連接。

一般來說,傳送資料到 RIP 的方法越多,則更容易被整合入現有(和未來)的工作流程內,靈活的輸入和輸出的渠道與 RIP 的計算效能同等重要。

一但 RIP 接收到 PostScript 檔案或 PDF 檔案後,它開始計算處理該檔案。

事實上,以下的這段說明是不完全正確的:對於 PostScript 資料,RIP 不一定需要整個檔案才能開始處理,只要第一頁資料抵達完成,RIP 就可以開始消化計算該頁面;對於 PDF 檔案,這是不正確的,因為 PDF 檔案的結構,RIP 需要能擷取整個文件後,才可以開始處理它。

計算處理 (Processing)

Adobe RIP 將首先翻譯 PostScript 頁面的內容到一個稱為 display list 的中間格式,display list 包含了更基本的機器等級的頁面說明,因此,display list 內不是用毫米 (millimeters) 或點 (points) 為單位,所有的物件都是以設備像素 (device pixels) 來定位。

所有這些物件已經不再是 TIFF 檔案或 EPS 或字體:RIP 也處理頁面內的所有資料,如有必要時,轉換它們到一個中間的格式並將之儲存到一個所謂的 source list,舉字體作一個例子:如果在頁面內用了 20 點 Avant Garde,RIP 將擷取該字體的外框資料(Mac 用戶稱之為 printer font),計算每一字元根據其設定的大小和解析度要輸出的資料,並將這些點陣字元存放於字體緩衝區內 (font cache),在 PostScript level 1,這些 font cache 會被永久地儲存在磁盤上,經過數天或數星期後,他們佔據過多空間,RIP 會缺乏空間以儲存其他資料,這將導致各種的 PostScript 錯誤,如 limitcheck 或 VMerror,用戶需要以手動方式刪除 fontcache 以清除這些臨時資料,Adobe 在 PostScript level 2 修復這個問題,它會動態清理 font cache。(很多早期輸出中心的不傳之密就是 delete cache !)

RIP 試圖盡量將 display list 和 source list 保持在主記憶體內,如果他們成長過大時,RIP 會將這些資料存入磁盤上的一個 swapfile 內,包含大量的掃描圖像檔案會產生巨大的 source lists,包含複雜的向量繪圖(Illustrator 或其他程式)的檔案往往會產生巨大的 display lists,當然,如果 RIP 開始使用一個緩慢的硬盤,而不是超快速記憶體時,RIP 的計算速度將急速下降,這就是為什麼 RIPs 的運行系統都建議使用較多記憶體的原因。

一旦 display list 完成後,RIP 將開始呈像計算 (rasterize) 其內容並發送此點陣圖到輸出設備,有些製造商在這個處理程序中添加一個額外的步驟,轉換 display list 到他們自己的中間格式,例如 Scitex 使用的 CT/LW 作為內部格式,和在他們自己的輸出機加入額外的呈像控制板 (rasterboards),以在最後一刻執行光柵化動作。

有一種普遍的趨勢,讓 RIP 除了處理上面所討論的事務外,還處理額外的任務,例如漲邊處理;有些製造商在檔案的解譯與呈像計算之間增加一個拼版 (impositioning) 軟體。

輸出 (Output)

呈像計算過程可能會非常耗時,並產生巨大的檔案要被傳送到輸出設備,某些 RIPs 會分割這些資料成唯一些小區塊,然後再一塊一塊地傳送給輸出機,其他RIPs將整個點陣圖保存到 RAM 或磁盤,然後再將這些資料傳送到輸出設備;這樣一個中間儲存區稱為 frame buffer,所有的雷射印表機都以 RAM 來儲存這樣的緩衝區,這解釋了為何複雜的頁面在有限記憶體的印表機可能產生 PostScript 錯誤:RAM 不足夠來儲存中間資料和 frame buffer。

選擇是使用以區塊輸出或是 frame buffer 的決定因素是連接的設備與工作流程的客戶。

  • 以區塊輸出是 RIP 與輸出引擎之間最簡單的溝通方法
  • 有些輸出機不支援“啟動-停止”,表示他們需要的所有資料要一次傳送到位,不可以有絲毫的中斷(類似 CD 燒錄器),這種系統必須使用 frame buffer
  • Frame buffer 也可以加快輸出過程,因為當曝光引擎進片、裁切或是等待連線沖片機時,RIP 可以繼續處理資料

RIP 與輸出引擎之間的實體連接也很重要,市面上有各種各樣的解決方案。

  • 許多製造商使用自己的通信協定和硬體以連接 RIPs 到輸出機,Agfa 有其類似 SCSI 的 APIS 通信協定,Scitex 使用光纖連接兩邊設備,除了報業市場外,還不存在有真正的標準
  • RIP 與輸出引擎之間如果傳送的速度不超過 10 或 100 Mbit 路線的限制時,可以使用一個標準網路連接兩者,這種類型的連接通常被用於繪圖機
  • 便宜的印表機和打樣機 (proofers) 可以使用 USB

Idea associations
Table of contents