TPdfIccProfileLimits = record
MaxProfileBytes: Int64;
MaxTagCount: Integer;
class function Default: TPdfIccProfileLimits; static;
end;
TPdfIccProfileIssue = (ipiTooLarge, ipiHeaderTruncated, ipiSizeMismatch, ipiSignatureInvalid, ipiUnsupportedColorSpace, ipiTagCountExceeded, ipiTagTableTruncated, ipiTagDataOutOfBounds);
TPdfIccProfileIssues = set of TPdfIccProfileIssue;
TPdfIccProfileInfo = record
Issues: TPdfIccProfileIssues;
ByteSize: Int64;
DeclaredSize: Int64;
Version: string;
VersionBytes: AnsiString;
DeviceClass: string;
DataColorSpace: string;
DataColorSpaceSignature: AnsiString;
Pcs: string;
ComponentCount: Integer;
TagCount: Integer;
Md5: string;
Sha256: string;
ProfileId: string;
ProfileDescription: string;
function IsValid: Boolean;
end;
function InspectPdfIccProfile(const Data: TBytes): TPdfIccProfileInfo;
function InspectPdfIccProfile(const Data: TBytes;
const Limits: TPdfIccProfileLimits): TPdfIccProfileInfo;
function PdfIccProfileDescriptionMatches(const Data: TBytes;
const Expected: string): Boolean;
InspectPdfIccProfile valida l'header di 128 byte, la dimensione del file dichiarata, la firma acsp, il numero di componenti dello spazio colore, il conteggio limitato dei tag, l'estensione della tabella dei tag e ogni intervallo di dati dei tag prima di esporre i metadati
Il risultato include le firme grezze di versione e spazio colore di quattro byte, i valori visualizzabili, i conteggi di componenti e tag, l'ID del profilo, l'MD5 del file completo, lo SHA-256, la classe di dispositivo, il PCS e la prima descrizione valida del profilo
Le firme GRAY, RGB, CMYK e da 2CLR a FCLR sono riconosciute dall'ispettore generale; i validatori specifici di formato possono imporre una policy di colori di processo più ristretta
PdfIccProfileDescriptionMatches controlla il valore desc v2 oppure ogni record locale limitato presente in un profileDescriptionTag mluc v4
| Limit | Default | Purpose |
|---|---|---|
MaxProfileBytes | 64 MiB | Interrompe il parsing e l'hashing dei profili di dimensioni eccessive |
MaxTagCount | 4096 | Limita l'attraversamento della tabella dei tag |
TPdfIccProfileInfo.IsValid è True solo quando l'insieme dei problemi è vuoto