Introduction

फ़ॉन्ट फ़ाइल तालिकाओं के चारों ओर संरचित हैं - प्रत्येक तालिबान ग्लिफ आउटलाइन, चरित्र मैपिंग, नामकरण मेटाडेटा या क्षैतिज मीटरिक जैसे डेटा की एक विशिष्ट श्रेणी संग्रहीत करता है. इन तालियों को समझना और पहुंचना ऐसे कार्यों के लिए आवश्यक है जैसे फ़ोटो विश्लेषण, मटाडेटे संपादन, गुणवत्ता सुनिश्चित करना, और प्रारूप रूपांतरण।.

Aspose.Font FOSS for Python (aspose-font) आपको एक साफ Python API के माध्यम से OpenType और TrueTYpe तालिकाओं की पूरी श्रृंखला तक सीधे पहुंच प्रदान करता है. पुस्तकालय को एमआईटी लाइसेंस के तहत जारी किया जाता है, जिसमें शून्य बाहरी निर्भरताएं होती हैं, इसलिए आप इसे किसी भी परियोजना में बिना लासीना चिंताओं के एकीकृत कर सकते हैं।.

यह पोस्ट पुस्तकालय में उपलब्ध कुंजी तालिका कक्षाओं के माध्यम से चलता है - शीर्षक पाठ्यक्रमों से ग्लिफ डेटा की जांच करने और नाम रिकॉर्ड को संशोधित करने तक - सभी द्वारा समर्थित हैं। TtfTableSet कंटेनर पर TtfFont.


मुख्य विशेषताएँ

फ़ॉन्ट लोड करना और एक्सेस तालिकाएं

हर फ़िल्टर के साथ लोड किया गया है FontLoader अपने पैरों को प्रदर्शित करने के लिए, वे ttf_tables संपत्ति पर TtfFont. के लिए TtfTableSet वस्तु प्रत्येक मानक तालिका के लिए टाइप-आधारित पहुंच प्रदान करता है, साथ ही कच्चे बाइटों के माध्यम से पहुँच get_raw() कस्टम या अज्ञात तालिकाओं के लिए।.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
tables = font.ttf_tables

# Typed table access
head = tables.head
name = tables.name
cmap = tables.cmap

# Raw bytes for any table tag
raw_os2 = tables.get_raw("OS/2")

मेज के सिर को पढ़ना

के लिए HeadTable स्टोर बुनियादी फ़ॉन्ट-विस्तारित पैरामीटर: इकाइयों प्रति एम, समीक्षा, सीमा बॉक्स, निर्माण की तारीख, और शैली झंडे. ये मूल्य इंजनों और फ़ोटो वैडिटर्स के रेंडर करने के लिए महत्वपूर्ण हैं।.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
head = font.ttf_tables.head

print(f"Units per em: {head.units_per_em}")
print(f"Revision: {head.font_revision}")
print(f"Bounding box: ({head.x_min}, {head.y_min}) to ({head.x_max}, {head.y_max})")
print(f"Mac style flags: {head.mac_style}")
print(f"Glyph data format: {head.glyph_data_format}")

नाम टेबल के साथ काम करना

के लिए NameTable सभी मनुष्य-पढ़ने योग्य मेटाडेटा रखता है: फ़ॉन्ट परिवार नाम, शैली, कॉपीराइट, लाइसेंस, डिजाइनर और विवरण. आप नाम आईडी के माध्यम से रिकॉर्ड पूछ सकते हैं, स्थानित नाम प्राप्त कर सकते है, या पुन: ब्रांडिंग के लिए इनपुट को संशोधित कर सकता है.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
name_table = font.ttf_tables.name

# Read the font family name (name ID 1)
family = name_table.best_name(1, ["en"])
print(f"Family: {family}")

# List all localized versions of the full name (name ID 4)
localized = name_table.localized_names(4)
for lang, value in localized.items():
    print(f"  {lang}: {value}")

# Replace the font family name
name_table.replace_name(1, "MyCustomFamily")

CMAP टेबल की जांच करें

के लिए CmapTable नक्शे Unicode कोडपॉइंट ग्लिफ आईडी. इसमें विभिन्न प्लेटफार्मों और कोडिंग संयोजन के लिए कई उपटैबल शामिल हो सकते हैं. उपयोग करें best_subtable() अपने उपयोग के मामले के लिए सबसे उपयुक्त मैपिंग प्राप्त करने के लिये।.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
cmap = font.ttf_tables.cmap

# Get the best Unicode subtable
subtable = cmap.best_subtable()
print(f"Platform: {subtable.platform_id}, Encoding: {subtable.encoding_id}")

# Look up the glyph ID for 'A'
gid = subtable.get_gid(ord("A"))
print(f"Glyph ID for 'A': {gid}")

OS/2 और Horizontal Metrics के बारे में जानकारी

के लिए Os2Table OS/2 और विंडोज-विशिष्ट मीट्रिक प्रदान करता है, जिसमें टाइपोग्राफिक एस्सेडर / डिस्सेंडर, इनबडिंग झंडे और पैनोस वर्गीकरण शामिल हैं। HheaTable और HmtxTable पाठ आकार के लिए उपयोग किए जाने वाले क्षैतिज लेआउट मीटर प्रदान करें।.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
os2 = font.ttf_tables.os2
hhea = font.ttf_tables.hhea

print(f"Typo ascender: {os2.s_typo_ascender}")
print(f"Typo descender: {os2.s_typo_descender}")
print(f"Embedding flags (fsType): {os2.fs_type}")
print(f"Panose: {os2.panose.hex()}")

print(f"Hhea ascender: {hhea.ascender}")
print(f"Max advance width: {hhea.advance_width_max}")
print(f"Number of hmetrics: {hhea.number_of_hmetrics}")

केरनिंग और ग्लीफ डेटा

के लिए KernTable भंडारण के लिए क्षैतिज अंतरिक्ष समायोजन के साथ जुड़ने वाले जोड़े। GlyfTable TrueType फ़ॉन्ट्स के लिए वास्तविक ग्लिफ आउटलाइन डेटा शामिल है. आप भी उपयोग कर सकते हैं PostTable ग्लीफ नामों को हल करने के लिए।.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")

# Kerning lookup
kern = font.ttf_tables.kern
if kern:
    pairs = kern.pairs
    print(f"Total kern pairs: {len(pairs)}")
    # Look up a specific pair by glyph IDs
    adjustment = kern.get(36, 57)
    print(f"Kern adjustment: {adjustment}")

# Glyph name from post table
post = font.ttf_tables.post
if post:
    glyph_name = post.glyph_name(0)
    print(f"Glyph 0 name: {glyph_name}")

जल्दी शुरू करें

pip install aspose-font>=1.0.0
import aspose_font

# Load any TTF or OTF font
font = aspose_font.FontLoader.open("MyFont.ttf")
tables = font.ttf_tables

# Print basic table info
print(f"Font: {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Glyphs: {font.num_glyphs}")
print(f"Units/em: {tables.head.units_per_em}")

# Read name table entries
name_table = tables.name
for name_id in [0, 1, 2, 4, 5, 6]:
    value = name_table.best_name(name_id, ["en"])
    if value:
        print(f"  Name ID {name_id}: {value}")

# Check character coverage
cmap = tables.cmap
subtable = cmap.best_subtable()
for char in "ABCabc012":
    gid = subtable.get_gid(ord(char))
    print(f"  '{char}' -> glyph {gid}")

समर्थन फ़ॉर्मेट्स

FormatExtensionReadWrite
TTF.टीटीएफ
OTF.ओटीएफ
CFF.CFF के लिए
WOFF.वॉफ
WOFF2.WOW2 के बारे में
EOT.ईओटी
TYPE1.pfb / पीएफए

Open Source और लाइसेंस

Aspose.Font FOSS for Python is released under the MIT license. The source code is available on GitHub and the package is published on PyPI as aspose-font.आप इसे उपयोग, संशोधित और बिना किसी प्रतिबंध के व्यक्तिगत और व्यावसायिक परियोजनाओं में वितरित करने के लिए स्वतंत्र हैं।.


शुरू करने के लिए

संबंधित संसाधन