Python में फ़ॉन्ट टेबल के साथ कैसे काम करें
यह गाइड दिखाता है कि नामित टीटीएफ तालिकाओं को कैसे पढ़ा जाए, कच्चे बाइनरी टेबल बैट्स प्राप्त करें और संशोधित टेबलेट डेटा लिखें। TtfFont में Aspose.Font FOSS के लिए Python. TrueType फ़ॉन्ट्स सभी डेटा को 4 वर्ण टैग द्वारा पहचाने गए बाइनरी तालिकाओं में संग्रहीत करता है. Aspose.Font TtfTableSet नामित टेबल एक्सेस और TtfFont.get_table_bytes() / TtfFont.set_table_bytes() कच्चे बाइनरी एक्सेस के लिए।.
कदम-दर-चरण गाइड
चरण 1: पैकेज स्थापित करें
नीचे दिए गए पाइप कमांड का उपयोग करके PyPI से Aspose.Font FOSS पैकेज स्थापित करें:
pip install "aspose-font>=1.0.0"चरण 2: आवश्यक कक्षाओं का आयात
Import FontLoader और TtfFont फ़ॉन्ट फ़ाइल लोड करने और इसके तालिका सेट तक पहुंचने के लिए:
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFontचरण 3: नामित तालिकाओं तक पहुंचें
एक TTF फ़ाइल डाउनलोड करें FontLoader.open() और नामित तालिकाओं के माध्यम से पहुंचने के लिए ttf_tables संपत्ति :
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("kern present:", tables.kern is not None)
print("cmap present:", tables.cmap is not None)चरण 4: Raw Table Bytes पढ़ना
एक विशिष्ट तालिका के लिए कच्चे बाइनरी डेटा को पढ़ने के द्वारा इसकी 4 चरित्र टैग पारित करें get_table_bytes():
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw = ttf_font.get_table_bytes("name")
print(f"name table: {len(raw)} bytes")चरण 5: संशोधित टेबल बिट्स लिखें
संशोधित बाइनरी डेटा को नामित तालिका में वापस लिखें set_table_bytes() टैग और बाइट भुगतान के साथ:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified = b"..." # your modified binary data
ttf_font.set_table_bytes("GSUB", modified)सामान्य समस्याएं और सुधार
AttributeError: Font has no attribute ttf_tables — ttf_tables पर है TtfFont, आधार नहीं है। Font कक्षा का उपयोग करें ttf_font: TtfFont = FontLoader.open(...) प्राप्त करने के लिए एक संदर्भ के प्रकार।.
get_table_bytes खाली बूट वापस आते हैं - टैग को सटीक रूप से 4 पात्र होना चाहिए (यदि आवश्यक हो तो पथ के साथ पट्टा, उदाहरण के लिए). "kern" नहीं "KRN").
अक्सर पूछे जाने वाले प्रश्न
TtfTableSet पर कौन से नामित तालिकाएं प्रदर्शित की जाती हैं?
सिर, hhea, maxp, os2, नाम, पोस्ट, cmap, loca, Hmtx और कोर।.
क्या मैं एक फ़ॉन्ट में एक नया टेबल जोड़ सकता हूं?
हाँ. किसी भी वैध 4-बाइट टैग और बाइट डेटा को पार करें TtfFont.set_table_bytes(tag, data).