Pular para o conteúdo

Escrita vertical CJK no Connect

Nesta receita, você incorpora um CIDFont chinês, japonês e coreano (CJK) com métricas de escrita vertical nos mecanismos de transporte do Connect. O motor emite as entradas de métricas verticais do PDF 2.0 (/W2 por glifo e /DW2 padrão) no dicionário CIDFont e renderiza uma pilha de glifos de cima para baixo. A incorporação de fontes CJK é de nível Enterprise. As ferramentas de fonte CJK são descobertas por meio de verificações class_exists() e só são registradas quando o nextpdf/premium está instalado junto com o servidor. O motor só emite métricas verticais quando a codificação CID ativa é a codificação Identity vertical. As sequências horizontais não são afetadas.

Terminal window
composer require nextpdf/server

Confirme que as ferramentas de fonte CJK do Enterprise estão disponíveis com uma chamada tools/list. Consulte /connect/tool-catalog/.

Um CIDFont em modo de escrita vertical usa as métricas verticais /W2 (por glifo) e /DW2 (padrão) (ISO 32000-2 §9.7). O CMap seleciona o modo de escrita horizontal ou vertical (ISO 32000-2 §9.7). O modo de escrita vertical desloca o avanço do glifo para o eixo vertical (ISO 32000-2 §9.7). Quando você registra a fonte, o pipeline analisa as tabelas de métricas verticais da fonte. Ele só emite as entradas do dicionário depois que você seleciona a codificação CID vertical.

Verifique os nomes das ferramentas no registro ativo com tools/list. O catálogo oficial é /connect/tool-catalog/. Esta receita não repete a contagem de ferramentas.

Crie o documento, registre a fonte CJK e selecione a codificação vertical:

{
"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
}
}
}

Selecione a codificação vertical, defina a fonte, escreva uma sequência vertical e, em seguida, gere a saída e inspecione o dicionário CIDFont:

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

O dicionário CIDFont na saída inclui /W2 e /DW2. A mesma origem omite ambos quando é renderizada com a codificação horizontal. O controle da codificação é a única diferença, o que mantém preciso aqui o perfil de reprodutibilidade structural.

  • A fonte não tem tabelas de métricas verticais. A ferramenta de fonte emite um aviso. Escolha uma fonte CJK que inclua essas tabelas; uma fonte apenas latina não tem nenhuma.
  • Selecionar codificação vertical em uma fonte sem métricas verticais é um erro. Use a codificação horizontal ou escolha outra fonte.
  • Solicitar texto vertical enquanto a codificação horizontal está ativa é um erro. Selecione a codificação vertical antes da primeira emissão de texto vertical.
  • Alterar a codificação após a primeira emissão de texto é rejeitado com um erro de codificação congelada. Defina a codificação imediatamente após registrar a fonte.
  • Ferramenta ausente. Sem o nextpdf/premium, as ferramentas de fonte CJK do Enterprise não são registradas, e a chamada falha com um erro de ferramenta desconhecida.

O orçamento do front matter é um limite de documentação. A criação de subconjuntos limita o tamanho do array de métricas por glifo. Desative a criação de subconjuntos somente quando uma sequência vertical precisar de glifos que o subconjunto descartaria.

Nenhuma nota adicional além das orientações gerais de transporte do Connect.

DeclaraçãoCláusulareference_id
O CIDFont vertical usa /W2 e /DW2 como métricasISO 32000-2 §9.7
O CMap seleciona o modo de escrita horizontal vs verticalISO 32000-2 §9.7
O modo de escrita vertical avança os glifos no eixo verticalISO 32000-2 §9.7

A emissão das entradas de métricas verticais implementa as cláusulas citadas. Não é uma declaração de conformidade abrangente. Um validador determina se o documento como um todo está em conformidade.

A incorporação de fontes CJK é de nível Enterprise. As ferramentas de fonte CJK só se registram quando o nextpdf/premium está instalado junto com o servidor.

Invoque da mesma forma por meio do tools/call do MCP, do endpoint de ferramenta REST e do serviço gRPC. Os três passam pelo executor de ferramentas compartilhado.

O registro de fonte, a seleção de codificação e a emissão de texto ficam no nível de cautela. A saída exige aprovação quando grava um arquivo; o modo base64 não. Consulte /connect/hitl-risk-tiers/.

Quando o caminho de saída para gravação de arquivo está sob controle, o controle retorna um envelope de desafio e um token de uso único vinculado ao nome da ferramenta, a um nonce e a um TTL de 300 segundos. Invoque novamente com arguments._confirmation_token. Consulte /connect/hitl-risk-tiers/.

  • /cookbook/connect/font-typography/ — noções básicas de texto horizontal e seleção de fontes.
  • /cookbook/connect/conformance-mode/ — sequências CJK verticais ainda exigem marcação para PDF/UA-2.
  • /connect/tool-catalog/ — cálculo do conjunto de ferramentas por nível.
  • /connect/hitl-risk-tiers/ — o modelo de risco e o controle.