SetPDFAMode

문서 속성, 규정 준수

설명

선택한 문서에 PDF/A 적합성 모드를 활성화합니다 한 번의 호출로 선택한 PDF/A 부분과 적합성 수준에 필요한 모든 문서 수준 설정을 수행합니다 PDF 버전을 필요한 최솟값으로 올리고, 태그 지정 PDF 적합성 수준(A)을 선택하면 /MarkInfo 항목을 기록하며, 출력 의도(DeviceRGB sRGB ICC 프로필)를 Catalog에 추가하고, pdfaid:part/pdfaid:conformance XMP 네임스페이스 항목을 기록합니다 또한 라이브러리는 선택한 부분에서 금지된 콘텐츠를 내보내는 이후 호출을 거부하는 생성 측 적합성 가드를 활성화합니다(설명 참조)

새로 만든 문서에서 콘텐츠를 추가하기 전에 한 번 호출하십시오. 이 라이브러리나 다른 라이브러리로 생성한 기존 PDF/A 파일을 검증하려면 CheckFileCompliance를 ComplianceTest = 1로 사용하십시오

구문

Delphi

Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;

ActiveX

Function PDFlib::SetPDFAMode(NewMode As Long) As Long

DLL

int DLSetPDFAMode(int InstanceID, int NewMode);

매개변수

NewMode활성화할 PDF/A 준수 모드입니다. 각 모드는 PDF/A 파트(1, 2, 3 또는 4 — ISO 19005-1/-2/-3/-4)와 준수 수준(기본 시각적 재현은 B, 태그된 PDF 접근성은 A)으로 식별됩니다.

0 — PDF/A 모드 비활성화(기본값)
1 — PDF/A-1a(ISO 19005-1 Level A), PDF 1.4, 태그된 PDF 필요
2 — PDF/A-1b(ISO 19005-1 Level B), PDF 1.4, 시각적 재현만 지원
3 — PDF/A-2b(ISO 19005-2 Level B), PDF 1.7, 시각적 재현과 투명도 및 레이어 허용
4 — PDF/A-2a(ISO 19005-2 Level A), PDF 1.7, 태그된 PDF 필요
5 — PDF/A-3b(ISO 19005-3 Level B), PDF 1.7, PDF/A-2b와 같지만 임의의 내장 파일 허용
6 — PDF/A-3a(ISO 19005-3 Level A), PDF 1.7, PDF/A-2a와 같지만 임의의 내장 파일 허용
7 — PDF/A-3u(ISO 19005-3 Level U), PDF 1.7, PDF/A-3b와 같지만 텍스트에 Unicode 매핑이 있어야 함을 선언
8 — PDF/A-2u(ISO 19005-2 Level U), PDF 1.7, PDF/A-2b와 같지만 텍스트에 Unicode 매핑이 있어야 함을 선언하며 내장 파일은 계속 금지
9 — PDF/A-4(ISO 19005-4), PDF 2.0, 준수 수준 대신 파트와 개정 연도로 식별되며 텍스트에는 Unicode 매핑이 필요하지만 태그 지정은 필요하지 않음
10 — PDF/A-4e(ISO 19005-4), PDF 2.0, PDF/A-4와 같으며 엔지니어링 문서에 3D 및 리치 미디어도 허용
11 — PDF/A-4f(ISO 19005-4), PDF 2.0, PDF/A-4와 같으며 모든 형식의 내장 파일도 허용

반환 값

0실패 — 열린 문서가 없거나 NewMode가 0–11 범위를 벗어났습니다
1PDF/A 모드를 성공적으로 활성화했습니다

비고

선택한 모드는 생성 측 적합성 가드를 제어합니다. 활성화되면 라이브러리는 ISO 19005에 따라 해당 파트에서 금지한 콘텐츠를 출력하는 후속 호출을 거부하거나 다시 작성합니다:

CMYK / Separation / Shader colors모든 PDF/A 모드(1–11)에서 차단됩니다. 문서에는 sRGB 출력 의도가 설정되며 출력 의도의 장치 클래스와 호환되는 색상만 사용할 수 있습니다
Encryption모든 PDF/A 모드에서 차단됩니다. 암호화 관련 API를 호출하기 전에 모드를 설정합니다
Transparency / blend modes / page transparency groups모드 1과 2에서는 차단됩니다(PDF/A-1은 투명도를 금지함). 모드 3–11에서는 허용됩니다(PDF/A-2, -3 및 -4는 투명도를 허용함)
JavaScript actions모든 PDF/A 모드에서 차단됩니다 — ISO 19005-1 §6.6.1은 JavaScript를 금지하며 이 금지는 PDF/A-2/3에서도 이어집니다
Embedded files / file attachments모드 1–4에서는 차단됩니다(PDF/A-1은 이를 금지하고 PDF/A-2는 PDF/A 준수 포함 PDF만 허용하지만 라이브러리는 이를 강제하지 않음). 모드 5, 6, 7, 9, 10, 11에서는 허용됩니다. PDF/A-3은 AFRelationship 연결을 통해 모든 MIME 형식의 포함 파일을 허용하며 PDF/A-4도 이를 이어받습니다. 일반 PDF/A-4에서는 포함 파일 자체가 PDF/A를 준수해야 하지만 PDF/A-4f에서는 이 제한이 해제됩니다

a 수준(모드 1, 4, 6)에 필요한 태그 지정 PDF 콘텐츠(제목 구조, 그림의 대체 텍스트, 표 범위 특성, 사용자 지정 유형의 RoleMap 항목)는 호출자가 책임져야 합니다 BeginTag, BeginArtifact, AddRoleMap 및 구조 요소 설정자를 사용하여 구조 트리를 만듭니다 저장하기 전에 GetPDFUADiagnostics를 호출하여 가장 일반적인 태그 지정 PDF 문제를 확인합니다 u 수준(모드 7)에서는 문서의 글꼴 리소스가 렌더링된 모든 텍스트에 Unicode 텍스트 매핑을 제공하는지 확인합니다

같은 문서에서 PDF/A와 PDF/UA를 활성화할 수 있습니다. 먼저 SetPDFAMode를 활성화하고(파트 1a/2a/3a에는 Tagged PDF가 이미 포함됨), 그다음 SetPDFUAMode를 호출하여 PDF/UA 전용 Catalog 설정(DisplayDocTitle, pdfuaid:part, 자동 /Tabs /S)을 추가하십시오

예제

// PDF/A-1b — minimum-effort archival document
PDF.NewDocument;
PDF.SetPDFAMode(2);                              // PDF/A-1b
PDF.SetDocumentInfo('Title', 'Quarterly Report Q1 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.SetFontSize(12);
PDF.PrintText(50, 750, 'Quarterly Report — Q1 2026');
PDF.SaveToFile('Q1-Report-PDFA1b.pdf');

// PDF/A-3a — tagged report with an embedded source spreadsheet
PDF.NewDocument;
PDF.SetPDFAMode(6);                              // PDF/A-3a
PDF.SetPDFUAMode('en-US');                       // Optional: also satisfy PDF/UA-1
PDF.SetDocumentInfo('Title', 'Sales Analysis 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.BeginTag('H1', '', '');
PDF.PrintText(50, 750, 'Sales Analysis');
PDF.EndTag;
PDF.BeginTag('P', '', '');
PDF.PrintText(50, 720, 'See attached spreadsheet for source data.');
PDF.EndTag;
PDF.EmbedFile('Source data', 'data.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
PDF.SaveToFile('Sales-PDFA3a.pdf');

참고 항목

CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation