THotPDF.RegisterDeviceN Método

 

THotPDF.RegisterDeviceN

THotPDF

 

Arriba

Declara un espacio de color DeviceN PDF 1.3+ respaldado por N tintas spot suministradas por el usuario (ISO 32000-1 8.6.6.5). Generaliza RegisterSeparation de un colorant a muchos: impresión de seis colores, tintas metálicas / fluorescentes, mezclas de tinta PDF/X personalizadas o cualquier conjunto de tinta N-channel

 

Sintaxis Delphi:

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

 

Sintaxis C++:

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

 

Descripción

DeviceN toma N operandos tint en [0..1], uno por colorant, y calcula M componentes de salida en AlternateCS mediante una transformación tint de mezcla lineal ponderada que HotPDF construye internamente como Function Type 4 de calculadora PostScript. La salida del canal m es la suma sobre todos los colorants n de tint[n] * TintC1Matrix[n*M + m], limitada a [0..1] por la canalización de renderizado

 

ColorantNames - array de N nombres de tinta. Cada entrada se escribe como nombre PDF; los espacios se escapan a #20 según PDF 1.7 7.3.5. El nombre especial 'None' marca una ranura de colorant sin usar. La lista de nombres define las N dimensiones de entrada del espacio de color resultante

AlternateCS - 'DeviceGray' (M = 1), 'DeviceRGB' (M = 3) o 'DeviceCMYK' (M = 4). Cualquier otro valor lanza una excepción

TintC1Matrix - array Extended N * M en orden row-major. La fila n columna m es la contribución del colorant n al canal m de AlternateCS a intensidad completa (tint[n] = 1.0) con todos los demás tints en cero. La longitud debe ser exactamente Length(ColorantNames) * M

 

Valor devuelto: un nombre generado automáticamente (DevN1, DevN2, ...). Devuelve una cadena vacía cuando StrictVersionLock está activado y la Version activa está por debajo de PDF 1.3 (en caso contrario, la versión del documento sube automáticamente a 1.3)

 

Ejemplo de código

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

 

Véase también

RegisterSeparation, RegisterLabColorSpace, Version, Soporte de filtros PDF