RecolorDocument

颜色

描述

将文档的每一页移入同一颜色空间

语法

Delphi

Function TPDFlib.RecolorDocument(TargetSpace: Integer): Integer;

参数

TargetSpace1 灰度,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 色彩空间设置的颜色保持不变,在没有其配置文件的情况下读取其分量会改变页面外观而非保持原貌,因此此类文档仅直接命名设备色彩空间的部分会被转换

页面绘制的图像也会转换,只要图像每个分量为八位、使用设备色彩空间,且未压缩或使用普通 Flate。JPEG 或传真图像必须重新编码,这与转换其颜色是不同操作,因此会保留自身字节

索引图像则会通过其颜色表转换,因此其样本保留原有索引。该路径不关心样本如何打包或压缩,因此即使无法重写样本,调色板截图或图表仍可转换

渐变会与其背后的函数一起转换,因此颜色空间和色标始终一致。由采样或 PostScript 函数构建的渐变保留自身颜色,网格着色类型也是如此,它们在流中而非函数中携带颜色

软蒙版和模版蒙版保持不变。两者都会作为覆盖度而非颜色读取,转换其中任何一个都会使页面将蒙版显示为图片

几何、文本、裁剪及其他所有运算符都会原样写回

调用返回时会恢复所选页面

示例

// Send a mixed-colour document to a press that expects CMYK
PDF.LoadFromFile('brochure.pdf', '');
Converted := PDF.RecolorDocument(3);
PDF.SaveToFile('brochure-cmyk.pdf');

另请参阅

RecolorPage, SetFillColor, SetFillColorCMYK