aspose.info
TH

CFF2 - รูปแบบไฟล์แบบอักษรย่อรุ่น 2

อัปเดตเมื่อ

ไฟล์ CFF2 คืออะไร??

รูปแบบไฟล์ CFF2 เป็นเวอร์ชัน 2.0 ของรูปแบบไฟล์ CFF และช่วยให้จัดเก็บโครงร่างสัญลักษณ์และข้อมูลเมตาได้อย่างมีประสิทธิภาพซึ่งคล้ายกับรูปแบบไฟล์ CFF CFF2 แตกต่างจาก CFF ตรงที่มีจุดประสงค์เพื่อใช้ในบริบทของฟอนต์ OpenType เป็นตาราง ‘sfnt’ ที่มีแท็ก CFF2 ไม่สามารถใช้เป็นโปรแกรมแบบสแตนด์อโลนและขึ้นอยู่กับข้อมูลในตาราง OpenType อื่นๆ

รูปแบบไฟล์ CFF2

ข้อกำหนดเฉพาะของรูปแบบไฟล์ CFF2 มีรายละเอียดเกี่ยวกับการจัดวางข้อมูลภายใน ประเภทข้อมูล ตาราง และข้อมูลภายในอื่นๆ เกี่ยวกับรูปแบบไฟล์ สามารถอ้างอิงสำหรับการอ้างอิงของนักพัฒนา รายละเอียดบางส่วนเกี่ยวกับสิ่งเหล่านี้มีดังต่อไปนี้

เค้าโครงข้อมูล

ข้อมูลไบนารีของรูปแบบไฟล์ CFF2 ได้รับการจัดระเบียบอย่างมีเหตุผลเป็นโครงสร้างข้อมูลที่แยกจากกันจำนวนหนึ่ง เค้าโครงภายในข้อมูลไบนารีแสดงไว้ในตารางต่อไปนี้

รายการความคิดเห็น
ส่วนหัวตำแหน่งคงที่
สุดยอด DICTตำแหน่งคงที่
ดัชนีย่อยทั่วโลกตำแหน่งคงที่
รูปแบบร้านค้า
FDSelectนำเสนอต่อเมื่อมี Font DICT มากกว่าหนึ่งตัวใน Font DICT INDEX
แบบอักษร DICT INDEX
อาร์เรย์ของฟอนต์ DICTรวมอยู่ในแบบอักษร DICT INDEX.
DICT ส่วนตัวหนึ่งตัวต่อฟอนต์ DICT.

เฉพาะสามโครงสร้างแรกเท่านั้นที่ยึดตามตำแหน่งที่แน่นอน เข้าถึงส่วนที่เหลือได้ผ่านออฟเซ็ตและสามารถเปลี่ยนแปลงลำดับได้

ประเภทข้อมูล

รูปแบบไฟล์ CFF2 ใช้ประเภทข้อมูลต่อไปนี้

ชื่อช่วงคำอธิบาย
uint80 ถึง 255หมายเลขที่ไม่ได้ลงนาม 8 บิต
uint160 ถึง 65535หมายเลขที่ไม่ได้ลงนาม 16 บิต
uint320 ถึง 4294967295หมายเลขที่ไม่ได้ลงนาม 32 บิต
ออฟเซ็ตแตกต่างกันไปออฟเซ็ต 1, 2, 3 หรือ 4 ไบต์ (ระบุโดยฟิลด์ OffSize ในตารางดัชนี)
OffSize1 ถึง 4ตัวเลขที่ไม่ได้ลงนาม 1 ไบต์ระบุขนาดของฟิลด์ออฟเซ็ตหรือฟิลด์

มันเก็บข้อมูลตัวเลขหลายไบต์และฟิลด์ออฟเซ็ตทั้งหมดตามลำดับไบต์ขนาดใหญ่ รูปแบบ CFF2 ไม่มีการเติมไบต์เนื่องจากไม่เป็นไปตามข้อจำกัดการจัดตำแหน่ง

ข้อมูล DICT

ไฟล์ CFF2 มีข้อมูลพจนานุกรมแบบอักษรเป็นคู่คีย์-ค่าในรูปแบบโทเค็นขนาดกะทัดรัด คีย์พจนานุกรมถูกเข้ารหัสเป็นตัวดำเนินการ 1 หรือ 2 ไบต์ และค่าพจนานุกรมจะถูกเข้ารหัสเป็นตัวถูกดำเนินการตัวเลขขนาดตัวแปร มีสามโครงสร้างที่ใช้รูปแบบข้อมูล DICT: Top DICT, Font DICT และ Private DICT จำนวนของตัวถูกดำเนินการจำนวนเต็มที่มีขนาดแตกต่างกันถูกกำหนดและเข้ารหัสตามที่แสดงในตารางต่อไปนี้ (ไบต์แรกของตัวถูกดำเนินการคือ b0, วินาทีคือ b1 และอื่น ๆ )

ขนาดช่วง b0ช่วงค่าการคำนวณค่า
132 ถึง 246-107 ถึง +107b0 - 139
2247 ถึง 250+108 ถึง +1131(b0 - 247) * 256 + b1 + 108
2251 ถึง 254-1131 ถึง -108-(b0 - 251) * 256 - b1 - 108
328-32768 ถึง +32767b1 « 8
529-(2^31) ถึง +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

หัวข้อ

ข้อมูลไบนารีจะขึ้นต้นด้วยส่วนหัวที่มีรูปแบบดังตารางด้านล่าง

พิมพ์ชื่อคำอธิบาย
uint8รุ่นใหญ่จัดรูปแบบเวอร์ชันหลัก ตั้งค่าเป็น 2.
uint8รุ่นรองจัดรูปแบบเวอร์ชันรอง ตั้งค่าเป็นศูนย์
uint8ขนาดส่วนหัวขนาดส่วนหัว (ไบต์).
uint16topDictLengthความยาวของโครงสร้าง DICT สูงสุดหน่วยเป็นไบต์

อ้างอิง

ดูเพิ่มเติม