PDFium Delphi Component Docs

ValidatePdfUa 메서드

컴포넌트: TPdf  ·  유닛: PDFium
현재 문서에서 PDF/UA-1 또는 PDF/UA-2 적합성을 검사하고 프로필별 이슈를 반환합니다

Syntax

function ValidatePdfUa: TPdfUaValidationResult;

Description

ValidatePdfUa는 XMP에서 PDF/UA-1과 PDF/UA-2를 판별하고 선택된 프로필의 규칙을 적용합니다

결과는 TPdfUaValidationResult 레코드입니다:

PDF/UA-2 검증은 추가로 네 자리 pdfuaid:rev, 실효 PDF 2.0, A/W/S 어노테이션 탭 순서, XFA 없음, 비어 있지 않은 optional-content 구성 이름, PDF 2.0에서 폐기된 Sound나 Movie 어노테이션 없음, 명시적으로 번호가 붙은 H1부터 Hn까지의 헤딩 구조 유형을 요구합니다

v3.73.0부터 non-Artifact 페이지 텍스트나 구조 Title, Alt, ActualText, Expansion 문자열에 유효한 실효 /Lang 선언이 없으면 이슈 집합에 pvuaiNaturalLanguageUncovered가 포함될 수 있습니다

v3.74.0부터 Artifact 페이지 객체가 페이지 구조 트리가 주장하는 MCID를 가지고 있으면 — 경로 기반 페이지 매김 아티팩트를 포함해 — 이슈 집합에 pvuaiArtifactInStructureTree가 포함될 수 있습니다

v3.75.0부터 유니코드 매핑 이슈는 하나의 객체 범위 InspectPdfUaUnicodeCoverage 패스에서 나옵니다. 유효한 ActualText는 자신이 나온 텍스트 객체의 문자만 커버하고, Artifact와 PDFium이 생성한 문자는 의미적 커버리지에서 제외됩니다

ValidatePdfUa는 읽기 전용 검사입니다 — 문서를 수정하지 않으며 반복 호출해도 안전합니다. PDF를 아카이브 시스템이나 접근성 검사기에 넘기기 전에 호출해 비적합 사항을 운영자에게 드러내세요. 이슈 목록이 필요 없는 흔한 "이 문서가 PDF/UA-1인가?" 확인이라면 더 가벼운 PdfUaConformance 속성을 사용하는 편이 좋습니다

Remarks

Example

uses System.TypInfo;

var
  Outcome: TPdfUaValidationResult;
  Issue: TPdfUaValidationIssue;
begin
  Pdf1.FileName := 'C:\Incoming\report.pdf';
  Pdf1.Active := True;
  Outcome := Pdf1.ValidatePdfUa;
  Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfUaConformance),
    Ord(Outcome.Conformance)));
  for Issue in Outcome.Issues do
    Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfUaValidationIssue), Ord(Issue)));
end;

See Also

PdfUaConformance, SaveAsPdfUa, SaveAsPdfUaToStream, IsTagged, ValidatePdfA