THotPDF.RegisterDeviceN metódus

 

THotPDF.RegisterDeviceN

THotPDF

 

Tetejére

Deklarál egy PDF 1.3+ DeviceN színtért, amelyet N darab felhasználó által megadott spot festék támogat (ISO 32000-1 8.6.6.5). Általánosítja a RegisterSeparation metódust egyetlen színezékről több színezékre: hat színű nyomtatásra, fémes / fluorescent tintákra, egyedi PDF/X tintakeverékekre vagy bármely N-csatornás tintakészletre

 

Delphi szintaxis:

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

 

C++ szintaxis:

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

 

Leírás

DeviceN N darab tintaparamétert fogad a [0..1] tartományban, színezékenként egyet, és kiszámít M darab kimeneti komponenst az AlternateCS színtérben egy lineáris súlyozott-keverési árnyalati transzformáció (tint transform) segítségével, amelyet a HotPDF belsőleg egy PostScript-kalkulátor Function Type 4-ként épít fel. Az m csatorna kimenete az összes n színezékre számított tint[n] * TintC1Matrix[n*M + m] összege, a renderelő pipeline által a [0..1] tartományra korlátozva

 

ColorantNames - N darab tintanév tömbje. Minden bejegyzés PDF névként kerül beírásra; a szóközök a PDF 1.7 7.3.5 szerint #20-ra vannak kódolva. A speciális 'None' név egy használaton kívüli színezékhelyet jelöl. A névlista határozza meg a keletkező színtér N bemeneti dimenzióját

AlternateCS - 'DeviceGray' (M = 1), 'DeviceRGB' (M = 3) vagy 'DeviceCMYK' (M = 4). Bármely más érték kivételt vált ki

TintC1Matrix - sorfolytonos N * M méretű Extended tömb. Az n-edik sor m-edik oszlopa az n színezék hozzájárulása az AlternateCS m-edik csatornájához teljes erősségnél (tint[n] = 1.0), ha minden más árnyalat nulla. A hosszának pontosan Length(ColorantNames) * M értéknek kell lennie

 

Visszatérési érték: egy automatikusan generált név (DevN1, DevN2, ...). Visszatérési érték egy üres karakterlánc, ha a StrictVersionLock be van kapcsolva, és az aktív Version a PDF 1.3 alatt van (egyébként a dokumentum verziója automatikusan 1.3-ra növekszik)

 

Code Example

// 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;

 

Lásd még

RegisterSeparation, RegisterLabColorSpace, Version, PDF Filter Support