THotPDF.RegisterDeviceN Method

 

THotPDF.RegisterDeviceN

THotPDF

 

Top

ユーザー支給の N 個のスポットインキに裏付けられた、PDF 1.3+ の DeviceN カラースペースを宣言します(ISO 32000-1 8.6.6.5)。RegisterSeparation を 1 つの色料から複数へ一般化したもので、6 色印刷、金属 / 蛍光インキ、カスタム PDF/X インキミックス、あるいは任意の N チャネルインキセットに使えます

 

Delphi 構文:

function RegisterDeviceN(const ColorantNames: array of AnsiString; const AlternateCS: AnsiString; const TintC1Matrix: array of Extended): AnsiString;

 

C++ 構文:

AnsiString RegisterDeviceN(const AnsiString* ColorantNames, int ColorantNameCount, const AnsiString& AlternateCS, const Extended* TintC1Matrix, int TintC1MatrixCount);

 

Description

DeviceN は色料ごとに 1 つ、[0..1] の N 個の tint オペランドを受け取り、HotPDF が PostScript 計算機の Function Type 4 として内部構築する線形の加重ブレンド tint 変換を使って、AlternateCS の M 個の出力コンポーネントを計算します。チャネル m の出力は、すべての色料 n にわたる tint[n] * TintC1Matrix[n*M + m] の総和で、レンダリングパイプラインによって [0..1] にクランプされます

 

ColorantNames - N 個のインキ名の配列。各要素は PDF 名として書き込まれ、スペースは PDF 1.7 7.3.5 に従い #20 にエスケープされます。特殊な名前 'None' は未使用の色料スロットを示します。名前リストが、結果のカラースペースの N 入力次元を定義します

AlternateCS - 'DeviceGray'(M = 1)、'DeviceRGB'(M = 3)、'DeviceCMYK'(M = 4)。その他の値は例外を発生させます

TintC1Matrix - 行優先の N * M Extended 配列。行 n 列 m は、他の tint がすべて 0 のときの、色料 n が全強度(tint[n] = 1.0)で AlternateCS チャネル m に与える寄与です。長さは正確に Length(ColorantNames) * M でなければなりません

 

戻り値: 自動生成された名前(DevN1、DevN2、...)。StrictVersionLock がオンで、有効な Version が PDF 1.3 未満の場合は空文字列を返します(それ以外の場合、ドキュメントのバージョンは 1.3 に自動で引き上げられます)

 

コード例

// Two-colorant DeviceN over DeviceRGB. Colorant 0 ('Red') is pure
// red at full strength, colorant 1 ('Blue') is pure blue. Mixing
// (0.5, 0.5) yields a 50/50 blend; (1, 1) saturates to magenta
var
  CSName: AnsiString;
  Mat: array[0..5] of Extended;
begin
  HPDF.Version := pdf14;
  HPDF.BeginDoc;
  Mat[0] := 1.0; Mat[1] := 0.0; Mat[2] := 0.0;  // Red row     -> (1, 0, 0)
  Mat[3] := 0.0; Mat[4] := 0.0; Mat[5] := 1.0;  // Blue row    -> (0, 0, 1)
  CSName := HPDF.RegisterDeviceN(
    ['Red', 'Blue'], 'DeviceRGB', Mat);
  HPDF.CurrentPage.SetFillColorSpace(CSName);
  HPDF.CurrentPage.SetFillColor([0.5, 0.5]);   // mid-purple
  HPDF.CurrentPage.Rectangle(60, 60, 200, 100);
  HPDF.CurrentPage.Fill;
  HPDF.EndDoc;
end;

 

関連項目

RegisterSeparation, RegisterLabColorSpace, Version, PDF Filter Support