Zum Inhalt springen

CJK-Vertikalschrift mit Connect

Dieses Recipe bettet eine CJK-CIDFont mit Vertikalschriftmetriken über die Connect-Transporte ein. Die Engine gibt anschließend die vertikalen Metrik-Einträge gemäß PDF 2.0 (/W2 pro Glyphe und /DW2 als Standard) im CIDFont-Dictionary aus und rendert einen von oben nach unten verlaufenden Glyphenstapel. Die CJK-Font-Einbettung gehört zur Enterprise-Stufe. Die CJK-Font-Tools werden über class_exists()-Prüfungen erkannt und registrieren sich nur, wenn nextpdf/premium neben dem Server installiert ist. Die Engine gibt die vertikalen Metriken nur dann aus, wenn die aktive CID-Kodierung die vertikale Identity-Kodierung ist; horizontale Läufe bleiben unberührt.

Terminal-Fenster
composer require nextpdf/server

Prüfen Sie mit einem tools/list-Aufruf, ob die CJK-Font-Tools der Enterprise-Stufe vorhanden sind. Siehe /connect/tool-catalog/.

Eine CIDFont im Vertikalschriftmodus verwendet /W2 (pro Glyphe) und /DW2 (Standard) als vertikale Metriken (ISO 32000-2 §9.7). Die CMap wählt den horizontalen oder vertikalen Schreibmodus aus (ISO 32000-2 §9.7), und der Vertikalschriftmodus verschiebt den Glyphenvorschub auf die vertikale Achse (ISO 32000-2 §9.7). Die Pipeline parst die Tabellen mit den vertikalen Metriken der Schrift, wenn Sie die Schrift registrieren, und gibt die Dictionary-Einträge erst aus, sobald Sie die vertikale CID-Kodierung auswählen.

Gleichen Sie die Tool-Namen mit tools/list gegen die laufende Registry ab. Der maßgebliche Katalog ist /connect/tool-catalog/. Dieses Recipe nennt die Tool-Anzahl nicht erneut.

Erstellen Sie das Dokument, registrieren Sie die CJK-Schrift und wählen Sie die vertikale Kodierung aus:

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

Wählen Sie die vertikale Kodierung aus, setzen Sie die Schrift, schreiben Sie einen vertikalen Lauf, geben Sie anschließend das CIDFont-Dictionary aus und inspizieren Sie es:

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

Das CIDFont-Dictionary der Ausgabe führt /W2 und /DW2. Dieselbe Quelle, mit der horizontalen Kodierung gerendert, lässt beide Einträge aus. Das Kodierungs-Gate ist der einzige Unterschied; dadurch ist das structural-Reproduzierbarkeitsprofil hier nachvollziehbar.

  • Der Schrift fehlen die Tabellen mit den vertikalen Metriken. Das Font-Tool warnt. Wählen Sie eine CJK-Schrift, die diese Tabellen mitbringt; eine reine Latin-Schrift hat keine.
  • Eine vertikale Kodierung, die für eine Schrift ohne vertikale Metriken ausgewählt wird, ist ein Fehler. Verwenden Sie die horizontale Kodierung oder wählen Sie eine andere Schrift.
  • Vertikaler Text, der angefordert wird, während die horizontale Kodierung aktiv ist, ist ein Fehler. Wählen Sie die vertikale Kodierung vor der ersten Ausgabe von vertikalem Text aus.
  • Eine Kodierung, die nach der ersten Textausgabe umgeschaltet wird, wird mit einem Fehler wegen eingefrorener Kodierung abgelehnt. Setzen Sie die Kodierung unmittelbar, nachdem Sie die Schrift registriert haben.
  • Tool nicht vorhanden. Ohne nextpdf/premium sind die CJK-Font-Tools der Enterprise-Stufe nicht registriert, und der Aufruf schlägt mit einem Unknown-Tool-Fehler fehl.

Das Budget aus dem Frontmatter ist eine Dokumentationsobergrenze. Das Subsetting begrenzt die Größe des Arrays mit den Metriken pro Glyphe. Deaktivieren Sie das Subsetting nur, wenn ein vertikaler Lauf Glyphen benötigt, die das Subset weglassen würde.

Über die allgemeinen Hinweise zum Connect-Transport hinaus gibt es keine spezifischen Sicherheitshinweise.

AussageKlauselreference_id
Vertikale CIDFont verwendet /W2- und /DW2-MetrikenISO 32000-2 §9.7
Die CMap wählt den horizontalen vs. vertikalen Schreibmodus ausISO 32000-2 §9.7
Der Vertikalschrift-Modus rückt Glyphen auf der vertikalen Achse vorISO 32000-2 §9.7

Die Ausgabe der vertikalen Metrik-Einträge setzt die zitierten Klauseln um. Dies ist keine pauschale Konformitätsaussage. Ein Validator bestimmt die Konformität des Gesamtdokuments.

Die CJK-Font-Einbettung gehört zur Enterprise-Stufe; die CJK-Font-Tools registrieren sich nur, wenn nextpdf/premium neben dem Server installiert ist.

Rufen Sie denselben Vorgang über MCP tools/call, den REST-Tool-Endpunkt und den gRPC-Dienst auf. Alle drei laufen über den gemeinsamen Tool-Executor.

Font-Registrierung, Kodierungsauswahl und Textausgabe liegen auf der Stufe caution. Die Ausgabe ist genehmigungspflichtig, wenn sie eine Datei schreibt; der base64-Modus ist es nicht. Siehe /connect/hitl-risk-tiers/.

Wenn der dateischreibende Ausgabepfad gegated ist, gibt das Gate einen Challenge-Envelope und ein Einmal-Token zurück, das an den Tool-Namen, eine Nonce und eine TTL von 300 Sekunden gebunden ist. Rufen Sie erneut mit arguments._confirmation_token auf. Siehe /connect/hitl-risk-tiers/.

  • /cookbook/connect/font-typography/ — Grundlagen zu horizontalem Text und zur Schriftauswahl.
  • /cookbook/connect/conformance-mode/ — vertikale CJK-Läufe erfordern für PDF/UA-2 weiterhin Tagging.
  • /connect/tool-catalog/ — Berechnung des Tool-Sets pro Stufe.
  • /connect/hitl-risk-tiers/ — das Risikomodell und das Gate.