콘텐츠로 이동
getnextpdf.com

안정성: 베타

세로쓰기 모드로 CJK 텍스트 조판하기

이 레시피는 Connect 전송을 통해 세로쓰기 메트릭이 포함된 CJK CIDFont를 임베드합니다. 그러면 엔진은 CIDFont 딕셔너리에 PDF 2.0 세로 메트릭 항목(글리프별 /W2와 기본값 /DW2)을 내보내고, 위에서 아래로 쌓이는 글리프 스택을 렌더링합니다. CJK 글꼴 임베딩은 Enterprise 등급입니다. CJK 글꼴 도구는 class_exists() 탐지로 발견되며, 서버와 함께 nextpdf/premium이 설치된 경우에만 등록됩니다. 엔진은 활성 CID 인코딩이 세로 Identity 인코딩일 때만 세로 메트릭을 내보내며, 가로 런에는 영향을 주지 않습니다.

Terminal window
composer require nextpdf/server

tools/list 호출로 Enterprise CJK 글꼴 도구가 있는지 확인합니다. 자세한 내용은 /connect/tool-catalog/.를 참조하세요.

세로쓰기 모드의 CIDFont는 /W2(글리프별)와 /DW2(기본값) 세로 메트릭을 사용합니다(ISO 32000-2 §9.7). CMap은 가로 또는 세로쓰기 모드를 선택하며(ISO 32000-2 §9.7), 세로쓰기 모드는 글리프 전진 방향을 세로축으로 바꿉니다(ISO 32000-2 §9.7). 파이프라인은 글꼴 등록 시 글꼴의 세로 메트릭 테이블을 파싱하며, 세로 CID 인코딩을 선택한 후에만 딕셔너리 항목을 내보냅니다.

tools/list로 실행 중인 레지스트리에 등록된 도구 이름을 검증합니다. 공식 카탈로그는 /connect/tool-catalog/.입니다. 이 레시피에서는 도구 개수를 다시 명시하지 않습니다.

문서를 생성하고 CJK 글꼴을 등록한 다음, 세로 인코딩을 선택합니다:

{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "add_cjk_font",
"arguments": {
"document_id": "<id>",
"family": "NotoSansCJKjp",
"source": "/usr/share/fonts/opentype/noto/NotoSansCJKjp-Regular.otf",
"subset": true
}
}
}

세로 인코딩을 선택하고, 글꼴을 설정하고, 세로 런을 작성한 다음 출력하여 CIDFont 딕셔너리를 검사합니다:

{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "set_cid_encoding",
"arguments": { "document_id": "<id>", "font_key": "NotoSansCJKjp", "encoding": "/Identity-V" }
}
}

출력의 CIDFont 딕셔너리에는 /W2/DW2가 포함됩니다. 동일한 소스를 가로 인코딩으로 렌더링하면 두 항목 모두 생략됩니다. 인코딩 게이트가 유일한 차이이며, 이 때문에 여기서 structural 재현성 프로파일이 타당합니다.

  • 글꼴에 세로 메트릭 테이블이 없는 경우. 글꼴 도구가 경고합니다. 해당 테이블을 제공하는 CJK 글꼴을 선택하세요. 라틴 전용 글꼴에는 이 테이블이 없습니다.
  • 세로 메트릭이 없는 글꼴에 세로 인코딩을 선택하면 오류입니다. 가로 인코딩으로 대체하거나 다른 글꼴을 선택하세요.
  • 가로 인코딩이 활성화된 상태에서 세로 텍스트를 요청하면 오류입니다. 첫 번째 세로 텍스트 방출 전에 세로 인코딩을 선택하세요.
  • 첫 번째 텍스트 방출 후 인코딩을 전환하면 인코딩 동결 오류로 거부됩니다. 글꼴을 등록한 직후 인코딩을 설정하세요.
  • 도구가 없는 경우. nextpdf/premium이 없으면 Enterprise CJK 글꼴 도구가 등록되지 않으며, 호출은 알 수 없는 도구 오류로 실패합니다.

프런트매터 예산은 문서상의 상한입니다. 서브셋팅은 글리프별 메트릭 배열 크기를 제한합니다. 서브셋팅으로 제거될 글리프가 세로 런에 필요한 경우에만 서브셋팅을 비활성화하세요.

일반적인 Connect 전송 지침 외에 별도 사항은 없습니다.

주장조항
세로 CIDFont는 /W2/DW2 메트릭을 사용함ISO 32000-2 §9.7
CMap이 가로 대 세로쓰기 모드를 선택함ISO 32000-2 §9.7
세로쓰기 모드가 글리프를 세로축으로 전진시킴ISO 32000-2 §9.7

세로 메트릭 항목 내보내기는 인용된 조항을 구현한 것입니다. 이는 포괄적인 적합성 주장이 아닙니다. 전체 문서의 적합성은 검증기가 결정합니다.

CJK 글꼴 임베딩은 Enterprise 등급입니다. CJK 글꼴 도구는 서버와 함께 nextpdf/premium이 설치된 경우에만 등록됩니다.

이 도구는 MCP tools/call, REST 도구 엔드포인트, gRPC 서비스에서 동일하게 호출합니다. 세 가지 모두 공유 도구 실행기를 통해 라우팅됩니다.

글꼴 등록, 인코딩 선택, 텍스트 방출은 주의 수준입니다. 파일로 출력할 때는 승인이 필요하지만, base64 모드는 그렇지 않습니다. /connect/hitl-risk-tiers/.를 참조하세요.

파일 쓰기 출력 경로에 게이트가 적용되면, 게이트는 챌린지 엔벨로프, 도구 이름, 논스, 300초 TTL에 바인딩된 일회용 토큰을 반환합니다. arguments._confirmation_token으로 다시 호출합니다. /connect/hitl-risk-tiers/.를 참조하세요.

  • /cookbook/connect/font-typography/ — 가로 텍스트 및 글꼴 선택 기본 사항.
  • /cookbook/connect/conformance-mode/ — 세로 CJK 런도 PDF/UA-2를 위해 여전히 태깅이 필요합니다.
  • /connect/tool-catalog/ — 등급별 도구 세트 계산.
  • /connect/hitl-risk-tiers/ — 위험 모델과 게이트.