Écriture verticale CJK via Connect
Écriture verticale CJK via Connect
Section intitulée « Écriture verticale CJK via Connect »Cette recette intègre une CIDFont CJK avec des métriques d’écriture verticale via les transports Connect. Le moteur émet ensuite les entrées de métriques verticales du PDF 2.0 (/W2 par glyphe et /DW2 par défaut) dans le dictionnaire CIDFont, puis restitue un empilement de glyphes de haut en bas. L’intégration de polices CJK relève du niveau Enterprise. Les outils de polices CJK sont détectés au moyen de sondes class_exists() et ne s’enregistrent que lorsque nextpdf/premium est installé aux côtés du serveur. Le moteur n’émet les métriques verticales que lorsque l’encodage CID actif est l’encodage Identity vertical ; les flux horizontaux ne sont pas affectés.
Installation
Section intitulée « Installation »composer require nextpdf/serverVérifie la présence des outils de polices CJK Enterprise avec un appel tools/list. Voir /connect/tool-catalog/.
Aperçu conceptuel
Section intitulée « Aperçu conceptuel »Une CIDFont en mode d’écriture verticale utilise les métriques verticales /W2 (par glyphe) et /DW2 (par défaut) (ISO 32000-2 §9.7). La CMap sélectionne le mode d’écriture horizontal ou vertical (ISO 32000-2 §9.7), et le mode d’écriture vertical déplace l’avance du glyphe sur l’axe vertical (ISO 32000-2 §9.7). Le pipeline analyse les tables de métriques verticales de la police au moment où tu l’enregistres, puis n’émet les entrées du dictionnaire qu’une fois l’encodage CID vertical sélectionné.
Surface d’API
Section intitulée « Surface d’API »Vérifie les noms d’outils dans le registre en cours d’exécution avec tools/list. Le catalogue de référence est /connect/tool-catalog/. Cette recette ne fige pas de nombre d’outils.
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »Crée le document, enregistre la police CJK, puis sélectionne l’encodage 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 } }}Exemple de code — Production
Section intitulée « Exemple de code — Production »Sélectionne l’encodage vertical, définis la police, écris un flux vertical, puis génère le résultat et inspecte le dictionnaire CIDFont :
{ "jsonrpc": "2.0", "id": 7, "method": "tools/call", "params": { "name": "set_cid_encoding", "arguments": { "document_id": "<id>", "font_key": "NotoSansCJKjp", "encoding": "/Identity-V" } }}Le dictionnaire CIDFont du résultat contient /W2 et /DW2. La même source, rendue avec l’encodage horizontal, omet les deux. La porte d’encodage est la seule différence, ce qui justifie ici le profil de reproductibilité structural.
Cas limites & pièges
Section intitulée « Cas limites & pièges »- La police ne dispose pas de tables de métriques verticales. L’outil de police émet un avertissement. Choisis une police CJK qui les fournit ; une police purement latine n’en a aucune.
- Encodage vertical sélectionné sur une police sans métriques verticales : c’est une erreur. Reviens à l’encodage horizontal ou choisis une autre police.
- Texte vertical demandé alors que l’encodage horizontal est actif : c’est une erreur. Sélectionne l’encodage vertical avant la première émission de texte vertical.
- Encodage basculé après la première émission de texte : l’opération est rejetée avec une erreur indiquant que l’encodage est figé. Définis l’encodage immédiatement après avoir enregistré la police.
- Outil absent. Sans
nextpdf/premium, les outils de polices CJK Enterprise ne sont pas enregistrés, et l’appel échoue avec une erreur d’outil inconnu.
Performance
Section intitulée « Performance »Le budget du front-matter est un plafond documentaire. Le sous-ensemble limite la taille du tableau de métriques par glyphe. Ne désactive le sous-ensemble que lorsqu’un flux vertical a besoin de glyphes qu’il écarterait.
Notes de sécurité
Section intitulée « Notes de sécurité »Sans objet au-delà des recommandations générales relatives au transport Connect.
Conformité
Section intitulée « Conformité »| Affirmation | Clause | reference_id |
|---|---|---|
La CIDFont verticale utilise les métriques /W2 et /DW2 | ISO 32000-2 §9.7 | |
| La CMap sélectionne le mode d’écriture horizontal ou vertical | ISO 32000-2 §9.7 | |
| Le mode d’écriture vertical fait avancer les glyphes sur l’axe vertical | ISO 32000-2 §9.7 |
L’émission des entrées de métriques verticales met en œuvre les clauses citées. Ce n’est pas une revendication de conformité globale. Un validateur détermine la conformité de l’ensemble du document.
Contexte commercial
Section intitulée « Contexte commercial »L’intégration de polices CJK relève du niveau Enterprise ; les outils de polices CJK ne s’enregistrent que lorsque nextpdf/premium est installé aux côtés du serveur.
Spécificités de Connect
Section intitulée « Spécificités de Connect »Disponibilité des transports (MCP / REST / gRPC)
Section intitulée « Disponibilité des transports (MCP / REST / gRPC) »Invoque cette opération de la même manière via MCP tools/call, le point de terminaison d’outil REST et le service gRPC. Les trois passent par l’exécuteur d’outils partagé.
Niveau de risque HITL
Section intitulée « Niveau de risque HITL »L’enregistrement de la police, la sélection de l’encodage et l’émission de texte sont classés au niveau prudence. La génération du résultat requiert une approbation lorsqu’elle écrit un fichier ; pas le mode base64. Voir /connect/hitl-risk-tiers/.
Enveloppe JSON de la porte de confirmation
Section intitulée « Enveloppe JSON de la porte de confirmation »Lorsque le chemin de génération qui écrit un fichier est protégé, la porte renvoie une enveloppe de défi et un jeton à usage unique lié au nom de l’outil, à un nonce et à une durée de vie de 300 secondes. Réinvoque avec arguments._confirmation_token. Voir /connect/hitl-risk-tiers/.
Voir aussi
Section intitulée « Voir aussi »- /cookbook/connect/font-typography/ — texte horizontal et bases de la sélection de police.
- /cookbook/connect/conformance-mode/ — les flux CJK verticaux requièrent toujours un balisage pour PDF/UA-2.
- /connect/tool-catalog/ — calcul du jeu d’outils par niveau.
- /connect/hitl-risk-tiers/ — le modèle de risque et la porte.