콘텐츠로 이동

PHP 쿡북

이 페이지는 PHP 네이티브 NextPDF 레시피의 인덱스입니다. 코어 PHP API에 직접 작성된 작업 중심의 실행 가능한 페이지를 모았습니다. nextpdf 코어 저장소는 docs/public/cookbook/php/ 아래에서 각 레시피를 관리하고 검증합니다. 각 레시피는 examples/*.php 스크립트와 tests/Cookbook/Php/ 하니스 테스트로 뒷받침됩니다. 그런 다음 애그리게이터가 각 페이지를 이 사이트로 가져오면서 소스 출처 정보를 함께 전달합니다.

이 페이지는 인덱스이므로 어떤 레시피에 대해서도 동작에 관한 주장을 하지 않습니다. 각 행은 레시피의 의도, 사용하는 코어 모듈, 그리고 선언된 재현성 프로파일을 기록합니다. 프로파일과 적합성 주장은 여기가 아니라 레시피 페이지 자체에 있으며, 해당 페이지의 프런트매터와 저장소 내 테스트에서 가져옵니다. 통합(프레임워크 / 렌더러 / 서비스) 쿡북은 통합 쿡북을 참고하십시오. 모든 실행 가능한 레시피가 따르는 계약은 레시피 규약을 참고하십시오.

아래의 모든 [[…]]는 코어 저장소의 docs/public/cookbook/php/ 아래에 작성된 페이지에 대한 전방 참조이며, 이후 애그리게이터가 이 사이트로 가져옵니다. 슬러그는 단일 세그먼트라는 하나의 규약을 따릅니다:

/cookbook/php/<recipe>/

<recipe>는 레시피의 의도를 케밥 케이스로 명명합니다(예를 들어 모듈 이름 html이 아니라 render-html-to-pdf). 소문자이며, 하이픈으로 구분되고, 버전 번호가 없으며, 하나의 후행 슬래시로 끝납니다. 대상 페이지가 집계되기 전까지 해당 링크는 플레이스홀더이며 해석되지 않습니다. 실행 가능한 예제가 아직 없는 레시피(아래의 누락 목록)는 링크가 이미 최종 슬러그를 가리키고 있더라도, 그 예제와 하니스 테스트가 존재하기 전까지는 게시될 수 없습니다.

각 레시피는 실제로 충족할 수 있는 가장 엄격한 프로파일을 선언합니다:

  • bitwise — 실행마다 바이트 단위로 동일함(순수하게 결정적인 콘텐츠, 모든 엔트로피가 고정됨).
  • structural — 변동 요소를 정규화한 후 동일함(트레일러 /ID, creation/modification 날짜, 폰트 서브셋 접두사 — 실무상 거의 모든 다중 객체 PDF).
  • semantic — 구조적 AST와 메타데이터 동등성만 보장(서명되었거나 타임스탬프가 찍힌 출력, 또는 본질적으로 바이트 단위로 안정적이지 않은 출력).

프로파일은 각 레시피 페이지가 자체 하니스 테스트로 입증하는 속성입니다. 이 인덱스는 페이지가 선언하는 값만 보고합니다.

현재 코어 저장소에는 이 다섯 개의 레시피가 이미 포함되어 병합되어 있습니다 — Wave 8 세트.

레시피하는 일모듈프로파일
sign-pades (업스트림 예정)소프트웨어 키로 CMS/PAdES 베이스라인 서명을 적용합니다보안semantic
encrypt-aes256 (업스트림 예정)AES-256으로 암호화하고 권한 플래그를 설정합니다보안structural
pdfa4-conformance-gate (업스트림 예정)PDF/A-4 출력을 생성하고 외부 검증기로 게이트합니다적합성semantic
accessible-pdfua2-from-html (업스트림 예정)접근 가능한 PDF/UA-2 저작을 위한 태그된 구조를 내보냅니다접근성semantic
validate-signature (업스트림 예정)PDF에 서명이 있는지와 신뢰 경계를 검사합니다검사semantic

문서를 구성하고, 페이지를 나누고, 스타일을 적용합니다.

레시피하는 일모듈프로파일
render-html-to-pdf (업스트림 예정)HTML 문서를 PDF로 렌더링합니다Htmlstructural
style-with-css (업스트림 예정)HTML 렌더에 CSS를 적용합니다Htmlstructural
html-table-layout (업스트림 예정)HTML 테이블을 배치합니다Htmlstructural
paginate-long-html (업스트림 예정)긴 HTML 문서의 페이지를 나눕니다Htmlstructural
compose-text-and-fonts (업스트림 예정)타이포그래피 제어와 함께 텍스트를 구성합니다Typographystructural
embed-and-subset-fonts (업스트림 예정)폰트를 임베드하고 서브셋합니다Fontstructural
cjk-vertical-writing (업스트림 예정)CJK 텍스트를 세로쓰기 모드로 설정합니다Typographystructural
multi-page-document (업스트림 예정)여러 페이지로 구성된 문서를 만듭니다Documentstructural
headers-and-footers (업스트림 예정)반복되는 머리글과 바닥글을 추가합니다Layoutstructural

벡터, 이미지, 레이어와 좌표 공간을 다룹니다.

레시피하는 일모듈프로파일
draw-vector-graphics (업스트림 예정)벡터 그래픽을 그립니다Graphicsstructural
gradients-and-transparency (업스트림 예정)그라디언트와 투명도를 적용합니다Graphicsstructural
embed-images (업스트림 예정)래스터 이미지를 임베드합니다Contentstructural
optional-content-layers (업스트림 예정)선택적 콘텐츠(레이어)를 사용합니다Graphicsstructural
transform-coordinate-space (업스트림 예정)좌표 공간을 변환합니다Graphicsstructural

북마크, 링크, 주석과 AcroForm 필드를 다룹니다.

레시피하는 일모듈프로파일
bookmarks-and-toc (업스트림 예정)북마크와 목차를 만듭니다Navigationstructural
links-and-annotations (업스트림 예정)링크와 주석을 추가합니다Navigationstructural
generate-barcodes (업스트림 예정)바코드를 생성합니다Barcodebitwise
fill-pdf-form (업스트림 예정)AcroForm을 채웁니다Formstructural
flatten-form-fields (업스트림 예정)폼 필드를 평탄화합니다Formstructural

메타데이터와 뷰어 동작을 설정합니다.

레시피하는 일모듈프로파일
set-document-metadata (업스트림 예정)문서 메타데이터를 설정합니다Metadatastructural
set-viewer-preferences (업스트림 예정)뷰어 환경설정을 설정합니다Documentstructural

암호화, 서명, 접근성, 그리고 프로파일 출력입니다. 이 레시피들은 레시피 페이지에서 지원≠적합성 및 존재≠유효성 경계를 명시합니다.

레시피하는 일모듈프로파일
encrypt-with-permissions (업스트림 예정)권한 플래그와 함께 암호화합니다보안structural
sign-pades-b-b (업스트림 예정)PAdES 서명을 적용합니다(B-B 및 B-T)보안semantic
inspect-existing-signature (업스트림 예정)기존 서명을 검사합니다검사semantic
tagged-pdf-ua2 (업스트림 예정)PDF/UA-2를 위한 태그된 구조를 내보냅니다접근성semantic
pdf-a-4-output (업스트림 예정)PDF/A-4 출력을 생성합니다적합성semantic
validate-conformance (업스트림 예정)적합성 프로파일에 대해 검증합니다Compliancesemantic

PDF에서 콘텐츠와 구조를 다시 읽어냅니다.

레시피하는 일모듈프로파일
extract-text-content (업스트림 예정)텍스트 콘텐츠를 추출합니다Textsemantic
parse-and-inspect-pdf (업스트림 예정)PDF 를 파싱하고 검사합니다검사semantic
inspect-layout-boxes (업스트림 예정)레이아웃 박스를 검사합니다검사semantic

여러 모듈에 걸친 패턴입니다.

레시피하는 일걸치는 범위프로파일
worker-safe-batch-rendering (업스트림 예정)장기 실행 워커에서 안전하게 렌더링합니다(공유 레지스트리, 제한된 메모리)Core · Performance · Supportsemantic
exception-aware-error-handling (업스트림 예정)NextPDF 예외 계층 구조로 오류를 처리합니다Exception · Contractsstructural
observe-with-opentelemetry (업스트림 예정)OpenTelemetry로 렌더링을 관찰합니다Observability · Telemetry · Eventsemantic

실행 가능한 예제가 보류 중인 레시피

섹션 제목: “실행 가능한 예제가 보류 중인 레시피”

이 레시피들은 게시되기 전에 코어 저장소에서 완전히 새로운 examples/*.phptests/Cookbook/Php/ 하니스가 필요합니다. 위의 슬러그는 최종입니다. 예제가 배치되고 해당 테스트가 실행되기 전까지 페이지는 플레이스홀더로 남습니다:

  • sign-pades-b-b (업스트림 예정) (PAdES B-B 및 B-T 포함)
  • inspect-existing-signature (업스트림 예정)
  • extract-text-content (업스트림 예정)
  • parse-and-inspect-pdf (업스트림 예정)
  • validate-conformance (업스트림 예정)
  • inspect-layout-boxes (업스트림 예정)
  • worker-safe-batch-rendering (업스트림 예정) (예제 존재; 새 메모리/GC 하니스 테스트 추가됨)
  • observe-with-opentelemetry (업스트림 예정) (새 PHP 네이티브 예제 추가됨)

위의 다른 모든 레시피는 이미 이를 뒷받침하는 examples/*.php를 갖추고 있으며 하니스 래퍼만 필요합니다. 이 인덱스는 슬러그와 최종 페이지를 기록합니다. 보류 중인 어떤 페이지가 이미 완성되었다고 주장하지 않습니다.

  • 통합 쿡북 — 프레임워크, 렌더러 및 서비스 통합 인덱스.
  • 레시피 규약 — 이 쿡북의 모든 실행 가능한 레시피가 따르는 계약.