การทํางานกับ CFF Fonts

การทํางานกับ CFF Fonts

การทํางานกับ CFF Fonts

คู่มือนี้แสดงวิธีการอัตราบรรจุและตรวจสอบ CFF แฟนตินาล ชาร์เซ็ท, ตารางโค้ด, พจนานุกรม และโครงสร้างอินเด็กซ์ ✓ โดยใช้ Aspose.Font FOSS สําหรับ Python .

แฟนต์ Compact Font Format (CFF) สังกัดการจัดสรร glyphs เป็นโปรแกรม charstring แบบ 2. Aspose.Font FOSS for Python provides dedicated classes in the aspose_font.cff namespace สถานที่ชื่อ สําหรับการอ่านตัวอักษร CFF, ตารางโค้ด, พจนานุกรม และอินเด็กซ์.


CFF ชาร์เซต

CffCharset แผนที่ ID ไกลิฟ์ไปยังชื่อไกลีฟล์ PostScript. โทร CffCharset.standard() เพื่อรับตัวอักษร ISO Adobe ที่อยู่ในระบบ แล้วใช้ name_for() และ gid_for() เพื่อแปลระหว่างตัวเลขไกลิกฟ์และชื่อ.

from aspose_font.cff.charset import CffCharset

charset = CffCharset.standard()
name = charset.name_for(1)   # PostScript name for GID 1
gid  = charset.gid_for("A")  # GID for PostScript name "A"

การรหัส CFF

CffEncoding แผนที่รหัสตัวอักษรเป็น ID ของ glyph การโคดมาตรฐานครอบคลุมเซตตัว อาก็พ์ลาติก; ใช้ unicode_to_gid() เพื่อค้นหาจุดโค้ดแต่ละอัน และ get_all_codepoints() เพื่อรายการค่าที่ถูกแผนผังทั้งหมด.

from aspose_font.cff.encoding import CffEncoding

enc = CffEncoding.standard()
gid = enc.unicode_to_gid(0x41)
codepoints = enc.get_all_codepoints()

การพารัสคําศัพท์ CFF

CffDict.from_bytes() การพารัส blob CFF DICT แร่ เป็นการผนอที่ใช้คีย์ผู้ประกอบการ แต่ละตัวเลือกของ operator key จะนําไปเป็นรายชื่อค่าจํานวน ที่ตั้งค่า font เช่น ความกว้างตามปกติ หรือชําระล่วงหน้า.

from aspose_font.cff.dict_ import CffDict

d = CffDict.from_bytes(raw_bytes)
vals = d.get(21)   # retrieve values for operator 21

อินเด็กซ์ CFF

CffIndex.from_reader() การพารสโครงสร้างข้อมูล CFF INDEX จากสายไบนารี สถาปนิก INDEX เป็นอาร์เรย์ของข้อมูลความยาวตัวแปรที่ใช้สําหรับตารางชื่อ ตารากลวด และการเก็บ Charstring ภายใน fonts ของ Cff.

from aspose_font.cff.index import CffIndex
from aspose_font._io import BinaryReader  # internal API — may change between releases
import io

reader = BinaryReader(io.BytesIO(raw_index_bytes))
index = CffIndex.from_reader(reader)
print(f"INDEX entries: {len(index)}")

การตีความ Charstring ประเภท 2

Type2Interpreter.interpret() ใช้ charstring แบบ 2 และคืน a GlyphPath.

from aspose_font.cff.type2 import Type2Interpreter

interpreter = Type2Interpreter()
glyph_path = interpreter.interpret(charstring_bytes, private_dict)

เคล็ดลับและปฏิบัติที่ดีที่สุด

  • การใช้งาน CffEncoding.standard() เป็นระดับเบส; ยกเว้นด้วย from_reader() สําหรับการรหัสที่ติดตั้งในระบบ
  • CffDict.to_bytes() ให้คุณซีเรียลใหม่วัตถุดิทานที่เปลี่ยนไป
  • การตีความ Charstring เพียงแค่จําเป็นสําหรับการสกัดรูปแบบ glyph แผ่นทรัพย์สิน; GlyphAccessor ครอบคลุมส่วนใหญ่ของกรณีการใช้ในระดับสูงกว่า

คําอธิบายการพบบ่อย API

ประเภท / กลไกDescription
CffCharset.standard()เซ็นเตอร์ตัวอักษร ISO มาตรฐาน Adobe
CffCharset.name_for(gid)ชื่อ PostScript สําหรับ ID ไกลิฟ์
CffCharset.gid_for(name)Glyph ID สําหรับชื่อ PostScript
CffEncoding.standard()ตารางการโค้ด CFF แบบมาตรฐาน
CffEncoding.unicode_to_gid(cp)คอร์ดแผนที่จุด GID
CffDict.from_bytes(data)การวิเคราะห์ CFF DICT แพร่
CffDict.get(operator)รับค่าสําหรับผู้ประกอบการ DICT
CffIndex.from_reader(reader)การวิเคราะห์ CFF INDEX
Type2Interpreter.interpret(cs, pd)การดําเนินการ charstring ประเภท 2

See Also

 ภาษาไทย