function SaveAsPdfX(const FileName: string): Boolean; overload;
function SaveAsPdfX(const FileName: string; const Options: TPdfXSaveOptions): Boolean; overload;
SaveAsPdfX는 먼저 일반 SaveAs를 수행한 뒤, 저장된 바이트 위에 선택한 PDF/X 인쇄 교환 변형용 증분 업데이트를 얹습니다. 후처리는 저장된 스트림에 다섯 부류의 바이트를 주입합니다
pdfxid:GTS_PDFXVersion, PDF/X-1a / PDF/X-3는 pdfxid:GTS_PDFXConformance 추가) pdfxid 네임스페이스에 맞는 pdfaExtension:schemas 기술과 Title / Author / Producer / 날짜의 브리지된 Dublin Core / xmp / pdf 속성을 담는 XMP 메타데이터 스트림/GTS_PDFXVersion, 선택적 /GTS_PDFXConformance(PDF/X-1a / PDF/X-3 전용. PDF/X-4는 이 항목을 폐기 예정으로 표시), /Trapped 이름(기본값 /False)을 추가하는 재작성된 Document Information Dictionary. 기존 Info 항목(Title / Author / Subject 등)은 보존됩니다/Metadata N 0 R과 /OutputIntents [M 0 R] 참조를 갖는 갱신된 문서 catalog/Type /OutputIntent /S /GTS_PDFX와 구성된 output-condition 항목을 갖추고 /DestOutputProfile로 임베드된 ICC 프로파일을 가리키는 OutputIntent 딕셔너리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 실패는 부분 출력을 남길 수 있습니다
saRemoveSecurity를 사용합니다Options.Conformance에 대응하는 마커를 붙이지만 이런 콘텐츠 수준 규칙은 강제할 수 없습니다. preflight로 확인하세요
// 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;