RecolorDocument
色彩
描述
把文件的每一頁轉換到單一色彩空間
語法
Delphi
Function TPDFlib.RecolorDocument(TargetSpace: Integer): Integer;參數
| TargetSpace | 1 grey, 2 RGB, 3 CMYK. |
|---|
傳回值
| Count | 整份文件共轉換了多少顏色。 |
|---|---|
| 0 | 沒有需要轉換的內容,或 TargetSpace 超出 1 到 3。顏色已在目標空間的頁面保持原位元組。 |
備註
這裡的轉換是一般的設備算術,不是色彩管理轉換:只標 DeviceRGB 的文件沒有設定檔可循。RGB 依 ITU-R BT.601 的亮度權重轉成灰階;CMYK 按 ISO 32000-1 §8.6.4.4 的方式轉換——檢視器在螢幕上顯示 CMYK 文件時本來就是這麼做的。
透過 ICCBased、Separation、Indexed 或 Pattern 色彩空間設定的顏色保持原樣。沒有設定檔就解讀這些成分會改變頁面外觀而不是保持外觀,因此這類文件只轉換直接指定設備色彩空間的部分。
頁面繪製的影像若符合條件也會一併轉換:每成分 8 位元、設備色彩空間、無壓縮或單純 Flate。JPEG 或傳真影像得重新編碼,那與轉換顏色是兩回事,所以保持原位元組不動
索引式影像改走它的色彩表轉換,樣本仍保有原本的索引值。這條路徑不在乎樣本怎麼打包或壓縮,所以調色盤截圖或圖表即使樣本無法改寫也能轉換
漸層會連同背後的函式一起轉換,色彩空間與色標永遠一致。由取樣函式或 PostScript 函式構成的漸層保留自己的顏色;mesh 著色類型也一樣,它們的顏色放在串流裡而不是函式裡
軟性遮罩與 stencil 遮罩保持原樣。兩者都被當成 coverage 而不是顏色來解讀,若轉換會讓頁面把遮罩當成圖片顯示
幾何、文字、裁剪與所有其他運算子都原樣寫回
呼叫返回時會還原所選頁面
範例
// Send a mixed-colour document to a press that expects CMYK
PDF.LoadFromFile('brochure.pdf', '');
Converted := PDF.RecolorDocument(3);
PDF.SaveToFile('brochure-cmyk.pdf');