PDFium Delphi Component Docs

FPdfIccProfile 유닛

유닛: FPdfIccProfile
표준 검증과 프로덕션 증거를 위한 상한이 있는 ICC 프로필 헤더 및 태그 테이블 검사입니다

Syntax

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;

Description

InspectPdfIccProfile은 메타데이터를 노출하기 전에 128바이트 헤더, 선언된 파일 크기, acsp 시그니처, 색 공간 성분 수, 상한이 적용된 태그 수, 태그 테이블 범위, 모든 태그 데이터 범위를 검증합니다

결과에는 4바이트 raw 버전과 색 공간 시그니처, 표시 값, 성분·태그 수, 프로필 ID, 전체 파일의 MD5, SHA-256, 디바이스 클래스, PCS, 첫 유효 프로필 설명이 담깁니다

범용 검사기는 GRAY, RGB, CMYK, 2CLR부터 FCLR까지의 시그니처를 인식합니다. 형식별 검증기는 더 좁은 프로세스 색 정책을 적용할 수 있습니다

PdfIccProfileDescriptionMatches는 v2 desc 값을 검사하거나 v4 mluc profileDescriptionTag의 상한이 적용된 모든 locale 레코드를 검사합니다

Limits

LimitDefaultPurpose
MaxProfileBytes64 MiB지나치게 큰 프로필의 파싱과 해싱을 멈춥니다
MaxTagCount4096태그 테이블 순회에 상한을 둡니다

Remarks

See Also

FPdfPdfvtMime