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 valide l’en-tête de 128 octets, la taille de fichier déclarée, la signature acsp, le nombre de composants de l’espace colorimétrique, le nombre borné de tags, l’étendue de la table de tags et chaque plage de données de tags avant d’exposer les métadonnées
Le résultat inclut les signatures brutes de version et d’espace colorimétrique sur quatre octets, les valeurs d’affichage, les comptages de composants et de tags, l’ID de profil, le MD5 du fichier complet, le SHA-256, la classe de périphérique, le PCS et la première description de profil valide
Les signatures GRAY, RGB, CMYK et 2CLR à FCLR sont reconnues par l’inspecteur général ; les validateurs spécifiques à un format peuvent imposer une politique de couleurs primaires plus étroite
PdfIccProfileDescriptionMatches vérifie la valeur desc v2 ou chaque enregistrement de locale borné dans un profileDescriptionTag mluc v4
| Limit | Default | Purpose |
|---|---|---|
MaxProfileBytes | 64 MiB | Arrête l’analyse et le hachage des profils surdimensionnés |
MaxTagCount | 4096 | Borne le parcours de la table de tags |
TPdfIccProfileInfo.IsValid est True uniquement lorsque l’ensemble de problèmes est vide