Εισαγωγή

Τα αρχεία γραμματοσειράς είναι δομημένα γύρω από τα τραπέζια - κάθε τραπεζογραμμάτιο αποθηκεύει μια συγκεκριμένη κατηγορία δεδομένων όπως γκλιφικά φύλλα, χαρτογραφίες χαρακτήρων, μετρητικά ονόματα ή οριζόντια μέτρηση. Η κατανόηση και η πρόσβαση σε αυτά τα δίσκου είναι απαραίτητη για εργασίες όπως ανάλυση γραμμών, επεξεργασία μεταδεδομένων, διασφάλιση ποιότητας και μετατροπή μορφοποίησης.

Aspose.Font FOSS for Python (aspose-font) σας δίνει άμεση πρόσβαση στο πλήρες σύνολο των πίνακων OpenType και TrueTYpe μέσω ενός καθαρού API Python. Η βιβλιοθήκη κυκλοφορεί υπό την αδειοδότηση MIT με μηδενικές εξωτερικές εξαρτήσεις, έτσι μπορείτε να το ενσωματώσετε σε οποιοδήποτε έργο χωρίς αμφιβολίες για τη χορήγηση αδείας.

Αυτό το άρθρο περνά μέσα από τις κλειδιά των τάξεων του πίνακα που είναι διαθέσιμες στη βιβλιοθήκη - από τα μεταδεδομένα ανάγνωσης τίτλων για την επιθεώρηση δεδομένων glyph και τη τροποποίηση αρχείων ονομάτων - όλα υποστηρίζονται από τον TtfTableSet Ο ΚΕΝΤΥΡΟΣ ΣΤΟ TtfFont.


Βασικά Χαρακτηριστικά

Κατεβάστε ένα γραμματοσειρά και πρόσβαση σε πίνακες

Κάθε γραμματοσειρά φορτίζεται με FontLoader Εμφανίζει τα διαχωρισμένα του τραπέζια μέσα από το ttf_tables Ιδιοκτησία στο TtfFontTtfTableSet το αντικείμενο παρέχει τυποποιημένη πρόσβαση σε κάθε πρότυπο πίνακα, καθώς και πρόσβασμα στα πρώτα byte μέσω 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 αποθηκεύονται βασικές παραμέτρους γραμματοσειράς: μονάδες ανά em, αναθεώρηση, πλαίσιο, ημερομηνία δημιουργίας και σημαίες στυλ. Αυτές οι τιμές είναι κρίσιμες για την εκτέλεση των κινητήρων και επικυρώσεων γραμμάτων.

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 Διατηρεί όλα τα μεταδεδομένα που μπορούν να διαβάσουν οι άνθρωποι: ονόματι της γραμματοσειράς, στυλ, πνευματικά δικαιώματα, άδεια χρήσης, σχεδιαστής και περιγραφή. Μπορείτε να ζητήσετε αρχεία με το όνομα ID, να ανακτήσουν εντοπισμένες ονομασίες ή να τροποποιήσετε τις εγγραφές για επαναπροσδιορισμό.

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 Table

Η CmapTable Χάρτες Unicode κωδικοποιητικά σημεία για glyph IDs. Μπορεί να περιέχει πολλαπλά υποθυράκια για διαφορετικές πλατφόρμες και συνδυασμούς κρυπτογράφησης. 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 και Οριζόντια Μετρητά

Η Os2Table παρέχει OS/2 και Windows-σχετικές μετρήσεις, συμπεριλαμβανομένων τυπογραφικών ascender/descender, ενσωματωμένες σημαίες και ταξινόμηση Panose. 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}")

Κεράντι και Glyph Data

Η KernTable Συσκευές για ζεύγη οριζόντιας διαστήματος. GlyfTable περιέχει τα πραγματικά δεδομένα προέλευσης glyph για τις γραμματοσειρές TrueType. μπορείτε επίσης να χρησιμοποιήσετε PostTable Να επιλύσει τα ονόματα των Glyph.

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}")

Υποστηριζόμενες μορφές

ΤΕΧΝΗΕΠΙΤΡΟΦΗΔιαβάστεΓράψε
TTF.ΤΤΦ
OTF.ΟΤΦ
CFF.ΚΦΑΛΕ
WOFF.Γουόφ
WOFF2.Γουόφ2
EOT.ΕΟΤ
TYPE1.ΠΡΕΠ / PFA

Ανοικτή Πηγή & Άδεια Χρήσης

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.Εσείς είστε ελεύθεροι να το χρησιμοποιήσετε, να τροποποιήσουν και να διανείμουν σε προσωπικά και εμπορικά έργα χωρίς περιορισμούς.


Ξεκινώντας

Σχετικοί Πόροι