Przejdź do głównej zawartości

Pismo pionowe CJK w Connect

Ten przepis pokazuje, jak za pomocą transportów Connect osadzić czcionkę CIDFont dla języków chińskiego, japońskiego i koreańskiego (CJK) z metrykami pisma pionowego. Silnik emituje wpisy metryk pionowych PDF 2.0 (/W2 dla pojedynczego glifu oraz domyślny /DW2) w słowniku CIDFont i renderuje glify ułożone od góry do dołu. Osadzanie czcionek CJK jest dostępne w warstwie Enterprise. Narzędzia do czcionek CJK są wykrywane za pomocą sond class_exists() i rejestrują się tylko wtedy, gdy nextpdf/premium jest zainstalowany obok serwera. Silnik emituje metryki pionowe tylko wtedy, gdy aktywne kodowanie CID to pionowe kodowanie Identity. Nie ma to wpływu na fragmenty poziome.

Okno terminala
composer require nextpdf/server

Sprawdź obecność narzędzi do czcionek CJK w warstwie Enterprise wywołaniem tools/list. Zobacz /connect/tool-catalog/.

Czcionka CIDFont w trybie pisma pionowego używa metryk pionowych /W2 (dla pojedynczego glifu) i /DW2 (domyślnych) (ISO 32000-2 §9.7). CMap wybiera poziomy albo pionowy tryb pisma (ISO 32000-2 §9.7). Pionowy tryb pisma przenosi przesunięcie glifu na oś pionową (ISO 32000-2 §9.7). Podczas rejestrowania czcionki potok przetwarza jej tablice metryk pionowych. Wpisy słownika są emitowane dopiero po wybraniu pionowego kodowania CID.

Zweryfikuj nazwy narzędzi w działającym rejestrze za pomocą tools/list. Punktem odniesienia jest katalog /connect/tool-catalog/. Ten przepis nie podaje ponownie liczby narzędzi.

Utwórz dokument, zarejestruj czcionkę CJK i wybierz kodowanie pionowe:

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

Wybierz kodowanie pionowe, ustaw czcionkę, zapisz fragment pionowy, a następnie wykonaj emisję i sprawdź słownik CIDFont:

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

Wynikowy słownik CIDFont zawiera /W2 oraz /DW2. To samo źródło pomija oba wpisy, gdy jest renderowane z kodowaniem poziomym. Jedyna różnica to bramka kodowania, dzięki czemu profil odtwarzalności structural pozostaje tu właściwy.

  • Czcionka nie ma tablic metryk pionowych. Narzędzie do czcionek ostrzega. Wybierz czcionkę CJK, która je zawiera; czcionka wyłącznie łacińska ich nie ma.
  • Wybranie kodowania pionowego dla czcionki bez metryk pionowych jest błędem. Wróć do kodowania poziomego lub wybierz inną czcionkę.
  • Żądanie tekstu pionowego przy aktywnym kodowaniu poziomym jest błędem. Wybierz kodowanie pionowe przed pierwszą emisją tekstu pionowego.
  • Przełączenie kodowania po pierwszej emisji tekstu jest odrzucane jako błąd zamrożonego kodowania. Ustaw kodowanie bezpośrednio po zarejestrowaniu czcionki.
  • Brak narzędzia. Bez nextpdf/premium narzędzia do czcionek CJK w warstwie Enterprise nie są zarejestrowane, a wywołanie kończy się błędem nieznanego narzędzia.

Budżet w nagłówku frontmatter jest limitem dokumentacyjnym. Tworzenie podzbioru ogranicza rozmiar tablicy metryk dla pojedynczych glifów. Wyłącz tworzenie podzbioru tylko wtedy, gdy fragment pionowy wymaga glifów, które podzbiór pominąłby.

Brak dodatkowych uwag poza ogólnymi wskazówkami dotyczącymi transportu Connect.

DeklaracjaKlauzulareference_id
Pionowa czcionka CIDFont używa metryk /W2 i /DW2ISO 32000-2 §9.7
CMap wybiera poziomy lub pionowy tryb pismaISO 32000-2 §9.7
Pionowy tryb pisma przesuwa glify wzdłuż osi pionowejISO 32000-2 §9.7

Emitowanie wpisów metryk pionowych realizuje cytowane klauzule. Nie jest to ogólna deklaracja zgodności. O tym, czy cały dokument jest zgodny, decyduje walidator.

Osadzanie czcionek CJK jest dostępne w warstwie Enterprise. Narzędzia do czcionek CJK rejestrują się tylko wtedy, gdy nextpdf/premium jest zainstalowany obok serwera.

Tę samą funkcję wywołuj przez MCP tools/call, punkt końcowy narzędzia REST oraz usługę gRPC. Wszystkie trzy przechodzą przez wspólny moduł wykonujący narzędzia.

Rejestracja czcionki, wybór kodowania i emisja tekstu są objęte poziomem ostrożności. Zapis wyjścia do pliku wymaga zatwierdzenia; tryb base64 go nie wymaga. Zobacz /connect/hitl-risk-tiers/.

Gdy zapisująca plik ścieżka wyjścia jest objęta bramką, bramka zwraca kopertę wyzwania oraz jednorazowy token powiązany z nazwą narzędzia, wartością nonce i 300-sekundowym TTL. Ponów wywołanie z arguments._confirmation_token. Zobacz /connect/hitl-risk-tiers/.

  • /cookbook/connect/font-typography/ — podstawy tekstu poziomego i wyboru czcionki.
  • /cookbook/connect/conformance-mode/ — pionowe fragmenty CJK nadal wymagają tagowania na potrzeby PDF/UA-2.
  • /connect/tool-catalog/ — obliczanie zestawu narzędzi dla danej warstwy.
  • /connect/hitl-risk-tiers/ — model ryzyka i bramka.