적합성 안내: NextPDF가 생성하는 것과 적합성 판정 주체
한눈에 보기
섹션 제목: “한눈에 보기”경계 선언. 프로필을 지원한다는 것이 곧 적합성을 의미하지는 않으며, 독립 검증기가 적합성을 판정합니다.
이 페이지는 NextPDF Core가 목표로 삼는 표준 프로필을 색인합니다. 이 섹션의 모든 페이지는 표준 자체에서 직접 도출한 하나의 규칙을 따릅니다. 라이브러리는 프로필에 적합하도록 의도된 출력을 생성하지만, 주어진 파일의 실제 적합성 여부는 독립 검증기(veraPDF, PDF/UA 검사기, Schematron 전자 송장 검증기 또는 수신 기관)가 판정합니다. ISO 19005-4 §6.7.3은 PDF/A에 대해 이를 명시적으로 설명합니다. 작성기가 내보내는 pdfaid:part/pdfaid:rev 마커는 “그 자체만으로 적합성을 결정하지 않습니다”. 이 판정은 표준의 적합성 절에 명시된 대로 생성 라이브러리 외부의 프로세스에서 수행됩니다.
NextPDF는 적합성을 주장하지 않습니다. 프로필이 요구하는 구조적 산출물을 내보낼 뿐입니다. 프로필이 게이팅되는 경우 API 경계에서 빠르게 실패하므로, 누락된 기능은 조용히 비적합한 파일로 이어지지 않고 명확한 오류로 드러납니다.
composer require nextpdf/core:^3아래 일부 프로필에는 Premium nextpdf/pro 패키지가 필요합니다(각 페이지에 표시됨). Core에는 적합성 판별자(NextPDF\Conformance\ConformanceMode)와 NextPDF\Compliance의 바이트 스트림 검증기가 포함됩니다. 아카이브 프로필용 OutputIntent / ICC / XMP 작성 경로는 nextpdf/pro에 포함됩니다.
개념 개요
섹션 제목: “개념 개요”NextPDF는 단일 타입 판별자인 NextPDF\Conformance\ConformanceMode를 통해 문서를 적합성 계약으로 라우팅합니다. 이 enum은 “작성기가 어떤 ISO 계약을 준수해야 하는가”에 대한 단일 진실 공급원입니다. Plain, PdfUa1, PdfUa2, PdfA2, PdfA3/PdfA3b/PdfA3u, 그리고 PdfA4/PdfA4e/PdfA4f에 대한 case를 포함합니다. 작성기는 이 모드를 읽어 필요한 구조를 내보내며, “이 파일은 적합함”이라는 플래그를 절대 설정하지 않습니다.
이 섹션의 모든 페이지에는 세 가지 경계가 적용됩니다.
- 지원 ≠ 적합성. 프로필이 요구하는 메타데이터를 내보내는 것은 기능일 뿐, 판정이 아닙니다.
- 검증 ≠ 인증. 오류가 없다고 보고하는 검증기를 실행하는 일은 증거를 만드는 것일 뿐, 인증서가 아닙니다.
- 테스트된 프로필 ≠ 인증. NextPDF 자체 테스트는 내보낸 바이트가 인용된 절과 일치하는지 확인할 뿐, 공인 감사가 아닙니다.
API 표면
섹션 제목: “API 표면”다음은 NextPDF\Core\Document의 적합성 진입점입니다.
| 메서드 | 효과 | 계층 |
|---|---|---|
enablePdfA(?object $version = null) | 문서를 PDF/A ConformanceMode case(기본값 PdfA4)로 라우팅하고, save() 시점에 OutputIntent + ICC + XMP를 예약합니다. InvalidConfigException을 던집니다(nextpdf/pro가 없는 경우). | Core API, Premium 엔진 |
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null) | 이 메서드는 ConformanceMode::PdfUa2를 설정하고, 태그된 콘텐츠 이미터를 연결하며, 정책에 따라 언어 태그를 검증합니다. | Core 계층 |
코드 예제 — 빠른 시작
섹션 제목: “코드 예제 — 빠른 시작”<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$doc = Document::createStandalone();$doc->enableTaggedPdf('en'); // ConformanceMode::PdfUa2$doc->setTitle('Conformance index sample');$doc->writeHtml('<h1>Hello</h1><p>Tagged content.</p>');$doc->save(getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/out.pdf');코드 예제 — 프로덕션
섹션 제목: “코드 예제 — 프로덕션”해당 없습니다. 실행 가능한 프로덕션 예제는 각 프로필 페이지에 있으며, 이 색인은 라우팅용 페이지입니다.
엣지 케이스 & 주의 사항
섹션 제목: “엣지 케이스 & 주의 사항”- 색인은 어떤 동작도 주장하지 않습니다. 검증된 주장 표는 각 프로필 페이지에 있습니다. 이 페이지는 지배 규칙만 명시합니다.
- 메타데이터의 프로필 이름은 주장일 뿐, 증명이 아닙니다.
pdfaid:part=4를 발견한 리더는 생성자의 의도만 알 수 있을 뿐, 파일이 적합하다는 사실을 알 수는 없습니다. - 기능 게이팅은 빠른 실패 방식입니다. Core 전용 설치 환경에서 Premium 아카이브 경로를 호출하면 업그레이드 메시지와 함께
InvalidConfigException이 발생하며, 조용히 비적합한 파일이 생성되는 일은 절대 없습니다.
색인에는 적용되지 않습니다. 각 프로필 페이지는 자체 예산을 선언합니다.
보안 참고 사항
섹션 제목: “보안 참고 사항”적합성 프로필은 구조를 제약할 뿐, 위협 대응 태세를 제약하지는 않습니다. PDF/A-4는 암호화를 금지하고, PDF/UA-2는 접근 가능한 구조를 요구합니다. 둘 다 보안 통제 수단은 아닙니다. 엔진의 보안 모델은 신뢰 센터를 참조하십시오.
적합성
섹션 제목: “적합성”| 주장 | 사양 | 절 | reference_id (참조 ID) |
|---|---|---|---|
생성자의 pdfaid 마커는 그 자체만으로 적합성을 결정하지 않으며, 판정은 표준의 적합성 절에 따라(즉, 라이브러리가 아니라 validator/process에 의해) 수행됩니다. | ISO 19005-4 | §6.7.3 | |
| PDF/UA-2 적합성은 표준의 적합성 요구 사항을 기준으로 평가되며, 생성 소프트웨어가 주장하는 것이 아닙니다. | ISO 14289-2 | §7.2.2 | |
| 적합한 PDF 2.0 파일은 정의된 파일 구조 및 트레일러 요구 사항을 충족해야 합니다. 라이브러리는 이를 내보내지만, 그 결과를 판정하지는 않습니다. | ISO 32000-2 | §7.5.5 |
인용은 검증 코퍼스를 가리키는 clause-id + reference_id 포인터입니다. 표준 텍스트는 복제하지 않습니다.