PDFium Delphi Component Docs

Provider opzionale di trasformazioni ICC LittleCMS 2

CreatePdfLittleCmsColourTransform implementa IPdfColourTransform per buffer di componenti originali Gray, RGB, CMYK e ICCBased, anche tramite l'helper di conversione dei colori del documento

Fornire un percorso assoluto esplicito a una libreria con la stessa architettura del processo; la libreria nativa deve esportare l'API cdecl di LittleCMS 2 e l'helper di compilazione fornito produce questa ABI dai sorgenti LittleCMS 2.19 con licenza MIT

Una DLL compilata con la configurazione Microsoft stdcall è incompatibile con il provider Win32; non si può dedurre in modo affidabile la convenzione di chiamata dai nomi degli export senza decorazione

TryCreatePdfLittleCmsColourTransform restituisce la diagnostica delle dipendenze e lascia la trasformazione a nil in caso di errore, senza modificare il percorso di ricerca del processo

Ogni chiamata possiede il proprio contesto nativo, i profili e la trasformazione; il provider può essere condiviso, ma i buffer dei campioni devono restare immutabili per tutta la chiamata

I buffer contengono pixel interi contigui con 1, 3 o 4 componenti, in byte a 8 bit o word senza segno a 16 bit nell'ordine nativo; l'helper del documento converte i campioni immagine PDF big-endian prima di invocare il provider

DeviceRGB senza profilo usa sRGB e DeviceGray senza profilo usa un profilo D50 con gamma 2.2; DeviceCMYK e ICCBased richiedono un profilo ICC sorgente esplicito e lo spazio colore dei dati di ogni profilo deve corrispondere al numero di componenti dichiarato

Le destinazioni sono DeviceGray, DeviceRGB o DeviceCMYK con un profilo ICC corrispondente; il profilo di destinazione può essere omesso solo per i valori predefiniti Gray e RGB del provider

Default seleziona l'intento colorimetrico relativo, la compensazione del punto nero, 256 MiB di campioni e 16 MiB di profili ICC; il limite dei profili non può superare 16 MiB

L'annullamento viene controllato prima e dopo la preparazione nativa e tra blocchi di al massimo 65,536 pixel; l'apertura nativa dei profili e la trasformazione di un singolo blocco non prevedono Callback di annullamento

Una trasformazione fallita svuota il buffer di destinazione e solleva EPdfColourBackendError; l'annullamento mantiene EPdfOperationCancelled

Le trasformazioni reali LittleCMS 2.19 e i casi PDF di salvataggio, riapertura e rendering sono verificati con Delphi e FPC su Win32 e Win64

Dichiarazioni pubbliche

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 accetta un gamma finito da 0.1 a 10; entrambi gli helper dei profili serializzano veri profili ICC nativi da incorporare o riutilizzare

Compilare la libreria nativa opzionale

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

L'helper richiede un'installazione MinGW GCC compatibile e un checkout esistente dei sorgenti LittleCMS 2.19, copia gli avvisi di licenza nativi pertinenti nella directory di output e non scarica né installa dipendenze