ข้ามไปยังเนื้อหา

การเขียนแนวตั้ง CJK ผ่าน Connect

สูตรนี้ฝัง CIDFont สำหรับภาษาจีน ญี่ปุ่น และเกาหลี (CJK) พร้อมเมตริกการเขียนแนวตั้งผ่านทรานสปอร์ตของ Connect เอนจินจะสร้างรายการเมตริกแนวตั้งของ PDF 2.0 (/W2 ต่อกลีฟ และ /DW2 เป็นค่าเริ่มต้น) ในพจนานุกรม CIDFont และเรนเดอร์เป็นชุดกลีฟเรียงจากบนลงล่าง การฝังฟอนต์ CJK อยู่ใน ระดับ Enterprise เครื่องมือฟอนต์ CJK จะถูกตรวจพบผ่านการตรวจสอบ class_exists() และจะลงทะเบียนเฉพาะเมื่อติดตั้ง nextpdf/premium ควบคู่กับเซิร์ฟเวอร์ เอนจินจะสร้างเมตริกแนวตั้งเฉพาะเมื่อการเข้ารหัส CID ที่ใช้งานอยู่เป็นการเข้ารหัส Identity แนวตั้งเท่านั้น การเขียนแนวนอนไม่ได้รับผลกระทบ

Terminal window
composer require nextpdf/server

ยืนยันว่าเครื่องมือฟอนต์ CJK ระดับ Enterprise พร้อมใช้งานโดยเรียก tools/list ดู /connect/tool-catalog/

CIDFont ในโหมดการเขียนแนวตั้งใช้เมตริกแนวตั้ง /W2 (ต่อกลีฟ) และ /DW2 (ค่าเริ่มต้น) (ISO 32000-2 §9.7) CMap เป็นตัวกำหนดว่าจะใช้โหมดการเขียนแนวนอนหรือแนวตั้ง (ISO 32000-2 §9.7) โหมดการเขียนแนวตั้งจะเปลี่ยนการเลื่อนของกลีฟไปยังแกนแนวตั้ง (ISO 32000-2 §9.7) เมื่อลงทะเบียนฟอนต์แล้ว ไปป์ไลน์จะแยกอ่านตารางเมตริกแนวตั้งของฟอนต์ และจะสร้างรายการในพจนานุกรมก็ต่อเมื่อเลือกการเข้ารหัส CID แนวตั้งแล้วเท่านั้น

ตรวจสอบชื่อเครื่องมือจากรีจิสทรีที่กำลังใช้งานด้วย tools/list แคตาล็อกที่ใช้อ้างอิงคือ /connect/tool-catalog/ สูตรนี้จึงไม่ระบุจำนวนเครื่องมือซ้ำ

สร้างเอกสาร ลงทะเบียนฟอนต์ CJK แล้วเลือกการเข้ารหัสแนวตั้ง:

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

เลือกการเข้ารหัสแนวตั้ง ตั้งค่าฟอนต์ เขียนข้อความแนวตั้ง จากนั้นส่งออกและตรวจสอบพจนานุกรม CIDFont:

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

พจนานุกรม CIDFont ของผลลัพธ์จะมี /W2 และ /DW2 ซอร์สเดียวกันนี้จะละเว้นทั้งสองรายการเมื่อเรนเดอร์ด้วยการเข้ารหัสแนวนอน เกตการเข้ารหัสเป็นความแตกต่างเพียงอย่างเดียว จึงทำให้โปรไฟล์การทำซ้ำแบบ structural ถูกต้องในกรณีนี้

  • ฟอนต์ไม่มีตารางเมตริกแนวตั้ง เครื่องมือฟอนต์จะรายงานคำเตือน เลือกฟอนต์ CJK ที่มีตารางเหล่านี้ ฟอนต์ที่มีเฉพาะอักษรละตินจะไม่มีตารางดังกล่าว
  • การเลือกการเข้ารหัสแนวตั้งบนฟอนต์ที่ไม่มีเมตริกแนวตั้ง เป็นข้อผิดพลาด ให้กลับไปใช้การเข้ารหัสแนวนอนหรือเลือกฟอนต์อื่น
  • การร้องขอข้อความแนวตั้งขณะที่ใช้การเข้ารหัสแนวนอนอยู่ เป็นข้อผิดพลาด เลือกการเข้ารหัสแนวตั้งก่อนปล่อยข้อความแนวตั้งครั้งแรก
  • การสลับการเข้ารหัสหลังจากปล่อยข้อความครั้งแรก จะถูกปฏิเสธพร้อมข้อผิดพลาด frozen-encoding หลังจากลงทะเบียนฟอนต์แล้ว ให้กำหนดการเข้ารหัสทันที
  • ไม่มีเครื่องมือ หากไม่มี nextpdf/premium เครื่องมือฟอนต์ CJK ระดับ Enterprise จะไม่ถูกลงทะเบียน และการเรียกใช้งานจะล้มเหลวพร้อมข้อผิดพลาด unknown-tool

งบประมาณใน front-matter เป็นเพดานระดับเอกสาร การทำซับเซ็ตจำกัดขนาดของอาเรย์เมตริกต่อกลีฟ ปิดการทำซับเซ็ตเฉพาะเมื่อข้อความแนวตั้งต้องใช้กลีฟที่การทำซับเซ็ตจะตัดออก

ไม่มีหมายเหตุเพิ่มเติมนอกเหนือจากแนวทางทั่วไปเกี่ยวกับทรานสปอร์ตของ Connect

ข้อกล่าวอ้างข้อกำหนดรหัสอ้างอิง (reference_id)
CIDFont แนวตั้งใช้ /W2 และ /DW2 เป็นเมตริกISO 32000-2 §9.7
CMap เป็นตัวกำหนดโหมดการเขียนแนวนอนหรือแนวตั้งISO 32000-2 §9.7
โหมดการเขียนแนวตั้งเลื่อนกลีฟไปตามแกนแนวตั้งISO 32000-2 §9.7

การสร้างรายการเมตริกแนวตั้งเป็นการนำข้อกำหนดที่อ้างถึงไปใช้ ไม่ใช่ข้อกล่าวอ้างว่าครอบคลุมความสอดคล้องทั้งหมด ตัวตรวจสอบเป็นผู้ตัดสินว่าเอกสารโดยรวมสอดคล้องหรือไม่

การฝังฟอนต์ CJK อยู่ในระดับ Enterprise เครื่องมือฟอนต์ CJK จะลงทะเบียนเฉพาะเมื่อติดตั้ง nextpdf/premium ควบคู่กับเซิร์ฟเวอร์

เรียกใช้ด้วยรูปแบบเดียวกันผ่าน MCP tools/call เอนด์พอยต์เครื่องมือ REST และบริการ gRPC ช่องทางทั้งสามส่งต่อไปยังตัวดำเนินการเครื่องมือร่วมเดียวกัน

การลงทะเบียนฟอนต์ การเลือกการเข้ารหัส และการปล่อยข้อความอยู่ในระดับ caution การส่งออกต้องได้รับการอนุมัติเมื่อเขียนไฟล์ ส่วนโหมด base64 ไม่ต้อง ดู /connect/hitl-risk-tiers/

เมื่อเส้นทางการส่งออกแบบเขียนไฟล์ถูกป้องกันด้วยเกต เกตจะส่งคืนซอง challenge และโทเค็นใช้ครั้งเดียวที่ผูกกับชื่อเครื่องมือ nonce และ TTL 300 วินาที เรียกใช้อีกครั้งด้วย arguments._confirmation_token ดู /connect/hitl-risk-tiers/

  • /cookbook/connect/font-typography/ — พื้นฐานของข้อความแนวนอนและการเลือกฟอนต์
  • /cookbook/connect/conformance-mode/ — ข้อความ CJK แนวตั้งยังคงต้องมีการแท็กสำหรับ PDF/UA-2
  • /connect/tool-catalog/ — การคำนวณชุดเครื่องมือตามระดับต่างๆ
  • /connect/hitl-risk-tiers/ — แบบจำลองความเสี่ยงและเกต