|
Erklærer et PDF 1.3+ DeviceN-farverum understøttet af N brugerleverede spot-blæk (ISO 32000-1 8.6.6.5); generalisererRegisterSeparationfra ét farvestof til mange: sekssfarvetryk, metallisk/fluorescerende blæk, tilpassede PDF/X-blækforbindelser eller ethvert N-kanals blæksæt
Delphi-syntaks:
function RegisterDeviceN(constColorantNames:array of AnsiString; constAlternateCS: AnsiString;constTintC1Matrix:array ofExtended): AnsiString;
C++-syntaks:
AnsiString RegisterDeviceN(const AnsiString* ColorantNames, int ColorantNameCount, const AnsiString& AlternateCS, const Extended* TintC1Matrix, int TintC1MatrixCount);
Beskrivelse
DeviceN tager N nuanceoperander i[0..1], én pr. farvestof, og beregnerMoutputkomponenter iAlternateCSved hjælp af en lineær vægtet-blandings nuance-transformation, som HotPDF bygger internt som en PostScript-beregner Funktion Type 4; outputtet for kanalmer summen over alle farvestoffern of tint[n] * TintC1Matrix[n*M + m], fastklemt til[0..1]af gengivelsespipelinen
ColorantNames - array af N blæknavne; hver post skrives som et PDF-navn; mellemrum escaper til#20pr. PDF 1.7 7.3.5; det specielle navn'None'markerer en ubrugt farvestofplads; navnelisten definerer de N inputdimensioner for det resulterende farverum
AlternateCS - 'DeviceGray'(M = 1),'DeviceRGB'(M = 3) eller'DeviceCMYK'(M = 4); enhver anden værdi udløser en undtagelse
TintC1Matrix - række-størst (row-major)N * MExtended array; rækken column mer farvestofns bidrag tilAlternateCS channel mved fuld styrke (tint[n] = 1.0) med alle andre nuancer på nul; længden skal være nøjagtigLength(ColorantNames) * M.
Returværdi: et autogenereret navn (DevN1, DevN2, ...); returnerer en tom streng, nårStrictVersionLocker slået til og den aktiveVersioner under PDF 1.3 (ellers opgraderes dokumentversionen automatisk til 1.3)
Kodeeksempel
// 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;
Se også
RegisterSeparation, RegisterLabColorSpace, Version, PDF-filterunderstøttelse
|