Lewati ke konten

Penulisan vertikal CJK melalui Connect

Resep ini menyematkan CIDFont Tionghoa, Jepang, dan Korea (CJK) dengan metrik penulisan vertikal melalui transport Connect. Mesin menghasilkan entri metrik vertikal PDF 2.0 (/W2 per-glyph dan /DW2 standar) pada kamus CIDFont dan merender susunan glyph dari atas ke bawah. Penyematan fon CJK berada pada tingkat Enterprise. Perkakas fon CJK ditemukan melalui probe class_exists() dan hanya terdaftar ketika nextpdf/premium terpasang bersama server. Mesin hanya menghasilkan metrik vertikal ketika encoding CID yang aktif adalah encoding Identity vertikal. Run horizontal tidak terpengaruh.

Terminal window
composer require nextpdf/server

Pastikan perkakas fon CJK Enterprise tersedia melalui panggilan tools/list. Lihat /connect/tool-catalog/.

CIDFont dalam mode penulisan vertikal menggunakan metrik vertikal /W2 (per-glyph) dan /DW2 (standar) (ISO 32000-2 §9.7). CMap memilih mode penulisan horizontal atau vertikal (ISO 32000-2 §9.7). Mode penulisan vertikal memindahkan advance glyph ke sumbu vertikal (ISO 32000-2 §9.7). Saat Anda mendaftarkan fon, pipeline mengurai tabel metrik vertikal fon tersebut. Entri kamus baru dihasilkan setelah Anda memilih encoding CID vertikal.

Verifikasi nama perkakas terhadap registry yang sedang berjalan dengan tools/list. Katalog resmi tersedia di /connect/tool-catalog/. Resep ini tidak mengulang jumlah perkakas.

Buat dokumen, daftarkan fon CJK, dan pilih encoding vertikal:

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

Pilih encoding vertikal, tetapkan fon, tulis satu run vertikal, lalu buat keluaran dan periksa kamus CIDFont:

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

Kamus CIDFont pada keluaran memuat /W2 dan /DW2. Sumber yang sama tidak menyertakan keduanya ketika dirender dengan encoding horizontal. Gerbang encoding adalah satu-satunya perbedaan, sehingga profil reproducibility structural tetap akurat di sini.

  • Fon tidak memiliki tabel metrik vertikal. Perkakas fon memberi peringatan. Pilih fon CJK yang menyertakannya; fon khusus-Latin tidak memilikinya.
  • Encoding vertikal dipilih pada fon tanpa metrik vertikal merupakan kesalahan. Beralihlah ke encoding horizontal atau pilih fon lain.
  • Teks vertikal diminta saat encoding horizontal aktif merupakan kesalahan. Pilih encoding vertikal sebelum menghasilkan teks vertikal pertama.
  • Encoding dibalik setelah emisi teks pertama akan ditolak dengan kesalahan frozen-encoding. Tetapkan encoding segera setelah Anda mendaftarkan fon.
  • Perkakas tidak tersedia. Tanpa nextpdf/premium, perkakas fon CJK Enterprise tidak terdaftar, dan panggilan gagal dengan kesalahan unknown-tool.

Anggaran front-matter merupakan batas dokumentasi. Subsetting membatasi ukuran array metrik per-glyph. Nonaktifkan subsetting hanya ketika sebuah run vertikal memerlukan glyph yang akan dibuang oleh subset.

Tidak ada catatan tambahan selain panduan umum transport Connect.

KlaimKlausareference_id
CIDFont vertikal menggunakan metrik /W2 dan /DW2ISO 32000-2 §9.7
CMap memilih mode penulisan horizontal vs vertikalISO 32000-2 §9.7
Mode penulisan vertikal memajukan glyph pada sumbu vertikalISO 32000-2 §9.7

Menghasilkan entri metrik vertikal mengimplementasikan klausa yang dikutip. Ini bukan klaim konformitas menyeluruh. Validator menentukan apakah keseluruhan dokumen memenuhi konformitas.

Penyematan fon CJK berada pada tingkat Enterprise. Perkakas fon CJK hanya terdaftar ketika nextpdf/premium terpasang bersama server.

Panggil operasi ini dengan cara yang sama melalui MCP tools/call, endpoint perkakas REST, dan layanan gRPC. Ketiganya melewati eksekutor perkakas bersama.

Pendaftaran fon, pemilihan encoding, dan emisi teks berada pada tingkat caution. Keluaran memerlukan persetujuan ketika menulis berkas; mode base64 tidak memerlukannya. Lihat /connect/hitl-risk-tiers/.

Ketika jalur keluaran untuk penulisan berkas digerbangkan, gerbang mengembalikan amplop tantangan dan token sekali-pakai yang terikat pada nama perkakas, sebuah nonce, dan TTL 300 detik. Panggil kembali dengan arguments._confirmation_token. Lihat /connect/hitl-risk-tiers/.

  • /cookbook/connect/font-typography/ — dasar teks horizontal dan pemilihan fon.
  • /cookbook/connect/conformance-mode/ — run CJK vertikal tetap memerlukan tagging untuk PDF/UA-2.
  • /connect/tool-catalog/ — perhitungan himpunan perkakas per-tier.
  • /connect/hitl-risk-tiers/ — model risiko dan gerbangnya.