परिचय
Aspose.Font FOSS Python के लिए सामान्य फ़ॉन्ट प्रबंधन कार्यों के लिए एक सुसंगत क्लास सेट प्रदान करता है: विभिन्न फॉर्मैट्स में फ़ॉन्ट फ़ाइलें लोड करना, मेटाडेटा और ग्लिफ़ डेटा पढ़ना, फॉर्मैट्स के बीच रूपांतरण, वेब डिलीवरी के लिए सबसेट बनाना, और इष्टतम फ़ाइल आकार के लिए बाइनरी टेबल्स को साफ़ करना। यह गाइड लाइब्रेरी के सत्यापित API से लिये गये कार्यशील कोड उदाहरणों के साथ प्रत्येक कोर क्षमता को दर्शाता है।
पैकेज (aspose-font) MIT लाइसेंस वाला है, इसे Python 3.10+ की आवश्यकता है, और इसमें कोई OS-स्तर की फ़ॉन्ट लाइब्रेरी निर्भरताएँ नहीं हैं। इसे pip install aspose-font>=1.0.0 के साथ इंस्टॉल करें।
मुख्य विशेषताएँ
FontLoader के साथ फ़ॉन्ट लोड करना
FontLoader सभी फ़ॉन्ट लोडिंग ऑपरेशनों के लिए एकमात्र प्रवेश बिंदु है। स्थिर open() मेथड फ़ाइल पथ (str या Path) स्वीकार करता है और फॉर्मेट को स्वचालित रूप से पहचान लेता है। load() मेथड इन-मेमोरी वर्कफ़्लो के लिए कच्चे बाइट्स स्वीकार करता है। दोनों एक Font-टाइप्ड ऑब्जेक्ट लौटाते हैं जिसे आप तुरंत निरीक्षण कर सकते हैं।
from aspose_font.loader import FontLoader
# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")
# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
font_bytes = f.read()
font = FontLoader.load(font_bytes)
फ़ॉन्ट बेस क्लास के माध्यम से फ़ॉन्ट मेटाडेटा पढ़ना
लोड होने के बाद, Font बेस क्लास मानक मेटाडेटा प्रॉपर्टीज़ को उपलब्ध कराती है बिना आपको बाइनरी फ़ॉन्ट टेबल्स को पार्स किए। प्रॉपर्टीज़ font_name, font_family, font_style और num_glyphs सबसे सामान्य मेटाडेटा आवश्यकताओं को कवर करती हैं।
from aspose_font.loader import FontLoader
font = FontLoader.open("NotoSans-Regular.ttf")
print(f"Name: {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Style: {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")
ग्लिफ एन्कोडिंग और एक्सेस
FontEncoding यूनिकोड कोड पॉइंट्स को ग्लिफ आईडीज़ से मैप करता है। एकल कोड पॉइंट्स के लिए unicode_to_gid() का उपयोग करें या फ़ॉन्ट की पूरी कवरेज को सूचीबद्ध करने के लिए get_all_codepoints() का उपयोग करें। फिर GlyphAccessor ग्लिफ ऑब्जेक्ट्स को आईडी के माध्यम से get_glyph_by_id(), यूनिकोड के माध्यम से get_glyph_by_unicode(), या टेक्स्ट स्ट्रिंग के लिए get_glyphs_for_text() के द्वारा प्राप्त करता है।
from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41) # 'A'
print(f"Glyph ID for 'A': {glyph_id}")
# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
# Inspect path commands
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
FontConverter के साथ फ़ॉन्ट रूपांतरण
FontConverter.convert() लोड किए गए फ़ॉन्ट को समर्थित फ़ॉर्मैट्स के बीच परिवर्तित करता है। स्रोत फ़ॉन्ट और लक्ष्य फ़ॉर्मेट पहचानकर्ता पास करें ताकि लक्ष्य फ़ॉर्मेट में नया फ़ॉन्ट ऑब्जेक्ट प्राप्त हो सके। यह मेथड CFF, TTF, WOFF, WOFF2, EOT, और Type 1 को स्रोत और लक्ष्य दोनों के रूप में संभालता है।
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")
FontCleaner के साथ वेब ऑप्टिमाइज़ेशन
FontCleaner.clean_for_web() वेब फ़ॉन्ट डिलीवरी के लिए अनावश्यक बाइनरी टेबल्स को हटाता है — विशेष रूप से DSIG, FFTM, और meta — और नाम टेबल से मैक प्लेटफ़ॉर्म (platform_id=1) नाम रिकॉर्ड्स को स्ट्रिप करता है। परिणामस्वरूप एक हल्का बाइनरी मिलता है जो आउटलाइन या मेट्रिक्स को बदले बिना नेटवर्क पेलोड को कम करता है। वैकल्पिक कीवर्ड आर्ग्यूमेंट्स आपको आवश्यकता पड़ने पर विशिष्ट टेबल प्रकारों को संरक्षित रखने की अनुमति देते हैं।
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)
# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
font,
drop_metadata_tables=False,
drop_legacy_tables=True,
drop_mac_names=True,
)
ग्लिफ पाथ निरीक्षण
प्रत्येक Glyph ऑब्जेक्ट अपना रूपरेखा GlyphPath के रूप में उजागर करता है, जिसकी commands अनुक्रम में MoveTo, LineTo, QuadraticTo, CurveTo और ClosePath के टाइप्ड इंस्टेंस शामिल होते हैं। प्रत्येक कमांड संबंधित कॉर्डिनेट एट्रिब्यूट्स ले जाता है — उदाहरण के लिए, CurveTo में x1, y1, x2, y2, x, y होते हैं — जिससे आप रेंडरिंग, SVG जनरेशन, या कोलिजन जियोमेट्री के लिए कच्चा Bézier डेटा निकाल सकते हैं।
from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")
त्वरित प्रारंभ
git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")
समर्थित स्वरूप
| फ़ॉर्मेट | एक्सटेंशन | पढ़ें | लिखें |
|---|---|---|---|
| TTF | .ttf | ✓ | ✓ |
| OTF | .otf | ✓ | ✓ |
| CFF | .cff | ✓ | ✓ |
| TYPE1 | .pfb / .pfa | ✓ | ✓ |
| WOFF | .woff | ✓ | ✓ |
| WOFF2 | .woff2 | ✓ | ✓ |
| EOT | .eot | ✓ | ✓ |
ओपन सोर्स एवं लाइसेंसिंग
Aspose.Font FOSS for Python MIT लाइसेंस के तहत है। स्रोत GitHub पर है, aspose-font-foss/Aspose.Font-FOSS-for-Python पर, और पैकेज PyPI पर aspose-font के रूप में उपलब्ध है।