PDFium Delphi Component Docs

SaveAsPdfA 메서드

컴포넌트: TPdf  ·  유닛: PDFium
기본 PDF를 incremental update로 후처리해 XMP metadata stream, sRGB ICC OutputIntent, 갱신된 document catalog를 주입함으로써 현재 document를 PDF/A-1b conformant file로 저장합니다

Syntax

function SaveAsPdfA(const FileName: string; Conformance: TPdfAConformance = pac1b): Boolean; overload;
function SaveAsPdfA(const FileName: string; const Options: TPdfASaveOptions): Boolean; overload;

Description

SaveAsPdfA는 먼저 일반 SaveAs를 수행한 뒤, 저장된 바이트 위에 파일을 PDF/A 아카이브로 승격시키는 증분 업데이트를 얹습니다(기본값 PDF/A-1b. ISO 19005-1, Cor.1:2007 포함). 이 후처리는 저장된 스트림에 네 가지를 주입합니다

출력은 원본 PDF 끝까지 기본 SaveAs 결과와 바이트 단위로 동일합니다. 뒤에 붙는 것은 증분 업데이트뿐입니다 PDF/A를 이해하지 못하는 기존 리더도 일반 SaveAs와 똑같이 파일을 렌더링합니다. 두 오버로드의 차이는 conformance / 옵션을 넘기는 방식뿐입니다 — TPdfAConformance 형태는 흔한 경우(pac1b)의 지름길이고, TPdfASaveOptions 형태는 전체 설정 표면을 갖춘 레코드를 받습니다. Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate, DocumentId, InstanceId의 선택적 오버라이드가 포함됩니다. 비워 둔 필드는 FPDF_GetMetaText / FPDF_GetFileIdentifier에서 자동으로 채워지므로, 전형적인 호출자는 Conformance 외에는 어떤 필드도 설정할 필요가 없습니다

Conformance 값은 대상 표준과 레벨을 고릅니다. PDF/A-1(ISO 19005-1)은 pac1b와 pac1a를 제공하고, PDF/A-2(ISO 19005-2)와 PDF/A-3(ISO 19005-3)는 pac2b / pac2u / pac2a, pac3b / pac3u / pac3a로 b, u, a 레벨을 추가합니다. 주입되는 pdfaid:part(1, 2, 3)와 pdfaid:conformance(A, B, U)는 요청한 값을 따르며, OutputIntent는 ISO 19005-2가 모든 파트에 대해 유지하는 GTS_PDFA1 서브타입을 갖습니다. 후처리기가 논리 구조를 합성할 수 없기 때문에 Level A 요청 (pac1a / pac2a / pac3a)은 소스에 해당 레벨이 요구하는 태그된 PDF 구조가 없으면 자동으로 대응하는 Level B로 다운그레이드됩니다 — 저장된 파일이 거짓 Level A 주장을 하는 일은 없습니다

성공하면 True를 반환합니다. 기본 SaveAs가 실패했거나 증분 업데이트를 붙일 수 없거나(PDF가 너무 짧음, 잘못된 trailer) ICC 프로파일 데이터를 넘겼는데 검증에 실패했으면 False를 반환합니다

Remarks

Example

// Simple PDF/A-1b output using the bundled sRGB profile
if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf') then
  ShowMessage('Saved PDF/A-1b');

// With a custom ICC profile
var
  Opts: TPdfASaveOptions;
begin
  Opts := Default(TPdfASaveOptions);
  Opts.Conformance := pac1b;
  Opts.IccProfileData := TFile.ReadAllBytes('C:\Profiles\Coated.icc');
  Pdf1.SaveAsPdfA('C:\Report.cmyk.pdfa.pdf', Opts);
end;

See Also

SaveAsPdfAToStream, ValidatePdfA, PdfAConformance, SaveAs