THotPDF.RegisterDeviceN Methode

 

THotPDF.RegisterDeviceN

THotPDF

 

Boven

Declareert een PDF 1.3+-DeviceN-kleurruimte die wordt ondersteund door N door de gebruiker geleverde steunkleuren (ISO 32000-1 8.6.6.5). Generaliseert RegisterSeparation van één colorant naar meerdere: zes-kleurenafdruk, metallic / fluorescerende inks, aangepaste PDF/X-inktmixen of elke N-kanaals inktset

 

Delphi-syntaxis:

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

 

C++-syntaxis:

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

 

Beschrijving

DeviceN neemt N tintoperanden in [0..1], één per colorant, en berekent M uitvoercomponenten in AlternateCS met een lineaire, gewogen tinttransformatie die HotPDF intern opbouwt als een PostScript-calculator Function Type 4. De uitvoer voor kanaal m is de som over alle colorants n van tint[n] * TintC1Matrix[n*M + m], begrensd op [0..1] door de renderingpipeline

 

ColorantNames - array met N inktnamen. Elk item wordt als een PDF-naam geschreven; spaties worden volgens PDF 1.7 7.3.5 ge-escaped naar #20. De speciale naam 'None' markeert een ongebruikte colorant-sleuf. De namenlijst definieert de N invoerdimensies van de resulterende kleurruimte

AlternateCS - 'DeviceGray' (M = 1), 'DeviceRGB' (M = 3) of 'DeviceCMYK' (M = 4). Elke andere waarde veroorzaakt een uitzondering

TintC1Matrix - rijgewijze N * M-Extended-array. Rij n, kolom m is de bijdrage van colorant n aan kanaal AlternateCS m bij volle sterkte (tint[n] = 1.0) met alle andere tints op nul. De lengte moet exact Length(ColorantNames) * M zijn

 

Retourwaarde: een automatisch gegenereerde naam (DevN1, DevN2, ...). Geeft een lege tekenreeks terug wanneer StrictVersionLock aan staat en de actieve Version lager is dan PDF 1.3 (anders wordt de documentversie automatisch opgehoogd naar 1.3)

 

Codevoorbeeld

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

 

Zie ook

RegisterSeparation, RegisterLabColorSpace, Version, PDF-filterondersteuning