|
Ilmoittaa PDF 1.3+ DeviceN -väriavaruuden, jota tukee N käyttäjän toimittamaa lisäväriä (ISO 32000-1 8.6.6.5). Yleistää metodin RegisterSeparation yhdestä väriaineesta moneksi: kuusiväritulostus, metalli- / loistevärit, mukautetut PDF/X-väiseokset tai mikä tahansa N-kanavainen väriainesarja
Delphi syntax:
function RegisterDeviceN(const ColorantNames: array of AnsiString; const AlternateCS: AnsiString; const TintC1Matrix: array of Extended): AnsiString;
C++ syntax:
AnsiString RegisterDeviceN(const AnsiString* ColorantNames, int ColorantNameCount, const AnsiString& AlternateCS, const Extended* TintC1Matrix, int TintC1MatrixCount);
Kuvaus
DeviceN ottaa N sävyoperandia alueella [0..1], yhden väriainetta kohden, ja laskee M ulostulokomponenttia kohteessa AlternateCS käyttäen lineaarista painotettua sekoitussävymuunnosta, jonka HotPDF rakentaa sisäisesti PostScript-laskinohjelmana (Function Type 4). Ulostulo kanavalle m on summa kaikkien väriaineiden n yli kaavalla tint[n] * TintC1Matrix[n*M + m], rajattuna alueelle [0..1] renderöintiputken toimesta
ColorantNames – N mustenimen taulukko. Jokainen merkintä kirjoitetaan PDF-nimenä; välilyönnit korvataan merkeillä #20 standardin PDF 1.7 7.3.5 mukaisesti. Erityisnimi 'None' merkitsee käyttämätöntä väriainepaikkaa. Nimiluettelo määrittää tuloksena olevan väriavaruuden N syöteulottuvuutta
AlternateCS – 'DeviceGray' (M = 1), 'DeviceRGB' (M = 3) tai 'DeviceCMYK' (M = 4). Mikä tahansa muu arvo aiheuttaa poikkeuksen
TintC1Matrix - rivijärjestyksessä oleva N * M Extended-taulukko. Rivi n sarake m on väriaineen n osuus AlternateCS-kanavaan m täydellä vahvuudella (tint[n] = 1.0) kaikkien muiden sävyjen ollessa nolla. Pituuden on oltava tarkalleen Length(ColorantNames) * M
Paluuarvo: automaattisesti luotu nimi (DevN1, DevN2, ...). Palauttaa tyhjän merkkijonon, kun StrictVersionLock on käytössä ja aktiivinen Version on alle PDF 1.3 (muussa tapauksessa dokumentin versio korotetaan automaattisesti arvoon 1.3)
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;
See Also
RegisterSeparation, RegisterLabColorSpace, Version, PDF-suodatintuki
|