PDFium Delphi Component Docs

Proveedor opcional de transformaciones ICC con LittleCMS 2

CreatePdfLittleCmsColourTransform implementa IPdfColourTransform para búferes con los componentes originales Gray, RGB, CMYK e ICCBased y para el helper de conversión de color del documento

Indique una ruta absoluta explícita a una biblioteca cuya arquitectura coincida con el proceso; debe exponer la API de LittleCMS 2 con cdecl, y el helper de compilación suministrado genera esa ABI a partir de LittleCMS 2.19 con licencia MIT

Una DLL compilada con la configuración stdcall de Microsoft es incompatible con el proveedor Win32; no se puede deducir de forma fiable la convención de llamada a partir de nombres exportados sin decorar

TryCreatePdfLittleCmsColourTransform devuelve diagnósticos de dependencias y deja la transformación en nil si falla, sin modificar la ruta de búsqueda del proceso

Cada llamada posee su propio contexto nativo, perfiles y transformación; el proveedor se puede compartir, pero los búferes de muestras deben permanecer inmutables durante la llamada

Los búferes contienen píxeles completos compactados con 1, 3 o 4 componentes, como bytes de 8-bit o words sin signo de 16-bit en orden nativo; el helper del documento convierte las muestras big-endian de PDF antes de invocar este proveedor

DeviceRGB sin perfil utiliza sRGB y DeviceGray sin perfil un perfil D50 gamma-2.2; DeviceCMYK e ICCBased requieren un perfil ICC de origen explícito, y el espacio de color de cada perfil debe coincidir con el número declarado de componentes

Los destinos son DeviceGray, DeviceRGB o DeviceCMYK con un perfil ICC compatible; solo se puede omitir el perfil de destino al usar los valores predeterminados Gray y RGB del proveedor

Default selecciona intención colorimétrica relativa, compensación de punto negro, 256 MiB de muestras y 16 MiB de datos de perfiles ICC; el límite de perfiles no puede superar 16 MiB

La cancelación se comprueba antes y después de preparar los recursos nativos y entre bloques de como máximo 65,536 píxeles; la apertura nativa de perfiles y cada bloque de transformación no tienen callback de cancelación

Los fallos vacían el búfer de destino y lanzan EPdfColourBackendError; la cancelación conserva EPdfOperationCancelled

Las transformaciones reales con LittleCMS 2.19 y los fixtures PDF con guardado, reapertura y renderizado están verificados con Delphi y FPC en Win32 y Win64

Declaraciones públicas

type
  EPdfColourBackendError = class(EPdfProduction);
  TPdfLittleCmsOptions = record
    RenderingIntent: Cardinal;
    BlackPointCompensation: Boolean;
    MaxSampleBytes: Integer;
    MaxProfileBytes: Integer;
    CancellationToken: IPdfCancellationToken;
    class function Default: TPdfLittleCmsOptions; static;
  end;

function CreatePdfLittleCmsColourTransform(const LibraryPath: string;
  const Options: TPdfLittleCmsOptions): IPdfColourTransform;
function TryCreatePdfLittleCmsColourTransform(const LibraryPath: string;
  const Options: TPdfLittleCmsOptions; out Transform: IPdfColourTransform;
  out ErrorText: string): Boolean;
function CreatePdfLittleCmsGrayProfile(const LibraryPath: string;
  Gamma: Double = 2.2): TBytes;
function CreatePdfLittleCmsSrgbProfile(const LibraryPath: string): TBytes;

CreatePdfLittleCmsGrayProfile acepta una gamma finita de 0.1 a 10; ambos helpers serializan perfiles ICC nativos reales para incorporarlos o reutilizarlos

Compilar la biblioteca nativa opcional

pwsh Native/ColourLittleCms/Build-LittleCms.ps1 -SourceDirectory C:/deps/lcms2.19 -OutputDirectory C:/deps/lcms-bin -Platform Win64

El helper requiere una instalación compatible de MinGW GCC y un checkout existente de LittleCMS 2.19, copia los avisos de licencia nativos aplicables al directorio de salida y no descarga ni instala dependencias