PDFium Delphi Component Docs

SaveAsPdfX 메서드

컴포넌트: TPdf  ·  유닛: PDFium
선택한 ISO 15930 변형에 맞는 식별 메타데이터와 임베드된 output 프로파일을 갖춘 PDF/X 후보를 저장합니다

Syntax

function SaveAsPdfX(const FileName: string): Boolean; overload;
function SaveAsPdfX(const FileName: string; const Options: TPdfXSaveOptions): Boolean; overload;

Description

SaveAsPdfX는 먼저 일반 SaveAs를 수행한 뒤, 저장된 바이트 위에 선택한 PDF/X 인쇄 교환 변형용 증분 업데이트를 얹습니다. 후처리는 저장된 스트림에 다섯 부류의 바이트를 주입합니다

trailer는 /ID 배열을 추가하도록 재작성되며, 출력은 원본 PDF 끝까지 기본 SaveAs 결과와 바이트 단위로 동일하고 뒤에 붙는 것은 증분 업데이트뿐입니다. 두 오버로드의 차이는 설정을 넘기는 방식뿐으로, 파일 이름만 받는 형태는 Info / DocumentId 필드를 FPDF_GetMetaText와 FPDF_GetFileIdentifier에서 자동 채움하는 TPdfXSaveOptions.Default (PDF/X-4 + sRGB + /Trapped /False)를 씁니다

준비된 바이트를 기록한 뒤 True를 반환하고, 문서가 비활성 상태이거나 기본 저장이 실패하면 False를 반환합니다 직렬화가 성공했다고 해서 완전한 PDF/X conformance가 확립되는 것은 아닙니다

pxc1a라면 IccProfileData에 디바이스 클래스가 prtr이고 데이터 색 공간이 CMYK이며 Lab 또는 XYZ PCS와 필요한 양방향 LUT를 갖춘, 구조적으로 유효한 ICC v2 output 프로파일이 들어 있어야 합니다 없거나 RGB이거나 잘렸거나 분류가 틀렸거나 지원되지 않는 프로파일 데이터는 EArgumentException을 발생시키며, PDF/X-1a에는 sRGB 폴백이 없습니다

PDF/X-1a에서는 OutputCondition, OutputConditionIdentifier, OutputIntentInfo 값이 여전히 내장 sRGB IEC61966-2.1 기본값과 같으면 검증된 프로파일 description으로 대체됩니다 프로파일에 description이 없다면 비어 있지 않고 기본값이 아닌 OutputConditionIdentifier를 공급하세요. 이 값이 대체 레이블을 제공하며, 없으면 호출이 EArgumentException을 발생시킵니다 호출자가 명시한 레이블은 보존됩니다

직렬화와 프로파일 검사는 대상 파일을 쓰기 위해 열기 전에 임시 저장소에서 끝냅니다 따라서 프로파일 검증이 예외를 던지거나 기본 저장이 실패하면 기존 대상은 그대로 유지됩니다 다만 이것이 원자적 파일 교체 보장은 아닙니다. 대상을 연 뒤의 I/O 실패는 부분 출력을 남길 수 있습니다

Remarks

Example

// Simple PDF/X-4 with bundled sRGB OutputIntent
if Pdf1.SaveAsPdfX('C:\AdProof.pdfx.pdf') then
  ShowMessage('Saved PDF/X-4');

// PDF/X-1a with a custom CMYK ICC profile (e.g. FOGRA39)
var
  Opts: TPdfXSaveOptions;
begin
  Opts := TPdfXSaveOptions.Default;
  Opts.Conformance := pxc1a;
  Opts.IccProfileData := TFile.ReadAllBytes('C:\ICC\FOGRA39.icc');
  Opts.OutputCondition := 'Coated FOGRA39 (ISO 12647-2:2004)';
  Opts.OutputConditionIdentifier:= 'FOGRA39';
  Opts.RegistryName := 'http://www.color.org';
  Opts.Trapped := ptFalse;
  Pdf1.SaveAsPdfX('C:\AdProof.cmyk.pdfx.pdf', Opts);
end;

See Also

SaveAsPdfXToStream, ValidatePdfX, PdfXConformance, SaveAsPdfA, SaveAsPdfE