Εισαγωγή
Η αληθινή ονομασία (.ttfκαι τα ανοιχτά του (αυτά).otfΕίναι η κυρίαρχη γραφή Τύποι σε σύγχρονα λειτουργικά συστήματα. και οι δύο μορφές μοιράζονται την ίδια δομή δυαδικού τραπέζου ρίζα στην προδιαγραφή OpenType. Aspose.Font FOSS για Python εκθέτει αυτή τη δομή Μέσα από TtfFont, παρέχοντας άμεση πρόσβαση σε μεμονωμένα πίνακα OpenType, δεδομένα ζευγαριών πυρήνων, Αλλαγές γραμματοσειρών και γκλιφικών αποσπάσεων.
Η TtfFont Η τάξη επεκτείνει την Font Η κλάση βάσης με ειδικές μέθοδοι TTF περιλαμβάνει get_blob, get_table_bytes, set_table_bytes,και instantiate Για το μεταβλητό γράμμα Κλειστό κλειδί - Το TtfTableSet Η ιδιοκτησία (ttf_tablesδ) παρέχει τυποποιημένη πρόσβαση στην Οι πιο κοινές πίνακες OpenType: head, hhea, maxp, os2, name, post.
Η βιβλιοθήκη δημοσιεύεται στο PyPI ως aspose-font και έχει αδειοδοτηθεί με την άδεια MIT. Δεν έχει υποχρεωτικές εμπορικές εξαρτήσεις.
Βασικά Χαρακτηριστικά
Εισαγωγή TTF και OTF Fonts
Χρησιμοποιήστε FontLoader.open Για να κατεβάσετε οποιοδήποτε αρχείο γραμματοσειράς TrueType ή OpenTYpe:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)
FontLoader.open ανιχνεύει τη μορφή γραμματοσειράς από τον τίτλο αρχείου. .ttf (Πραγματικός τύπος) και .otf (OpenType CFF) τα αρχεία υποστηρίζονται και οι δύο επιστρέφουν ένα TtfFont Η περίπτωση.
Εισαγωγή σε OpenType Tables μέσω του TtfTableSet
Η ttf_tables Η ιδιοκτησία επιστρέφει σε TtfTableSet Με τα συνηθισμένα αξεσουάρ για κοινά Τα φύλλα OpenType. Κάθε ιδιοκτησία επιστρέφει το αντικείμενο του πίνακα ή None Αν δεν υπάρχει:
Η ttf_tables Ιδιοκτησία στο TtfFont Επιστρέφει ο Α TtfTableSet ΕΡΓΑΣΙΑ - Διαθέσιμη Ετικέτες Τάφος:
head—HeadTable | Nonehhea—HheaTable | Nonemaxp—MaxpTable | Noneos2—Os2Table | Nonename—NameTable | Nonepost—PostTable | None
Κάθε περιουσιακό στοιχείο επιστρέφει το αντικείμενο του πίνακα ή None Αν δεν υπάρχει τέτοιο τραπέζι στο Ετικέτες: Access TtfTableSet Ιδιότητες για να ελέγξετε για συγκεκριμένους πίνακες πριν από τη ανάγνωση Για τα φύλλα που δεν καλύπτονται από ονομαστικά αξεσουάρ, χρησιμοποιήστε TtfTableSet.get_raw(tag) Για να Αποκτήστε τα πρώτα byte με το ετικέτα OpenType τεσσάρων χαρακτήρων.
Διαβάστε το Raw Table Bytes
get_table_bytes(tag) επιστρέφει τα πρώτα μπάτια για οποιοδήποτε τραπέζι OpenType. get_blob(tag) Για μια μη ασφαλής παραλλαγή που επιστρέφει None Όταν το τραπέζι απουσιάζει:
TtfFont παρέχει δύο μεθόδους για την πρόσβαση σε πρώιμο τραπέζι:
get_table_bytes(tag) -> bytes- επιστρέφει τα πρώτα μύθοι για ένα ονομαστικό τραπέζι (αυξέρχεται αν δεν υπάρχει)get_blob(tag) -> bytes | NoneΕπιστροφήNoneΕάν το τραπέζι δεν υπάρχει (σφαλής παραλλαγή)
Και οι δύο μεθόδους αποδέχονται ένα τετραφιλικό OpenType ετικέτα πίνακα, όπως: "cmap", "GDEF",ή "GPOS".Χρησιμοποιήστε get_blob όταν ένα τραπέζι είναι προαιρετικό, ώστε να μπορείτε να ελέγξετε για None Πρώτα επεξεργασία .
Κεφάλαιο ζευγάρια
get_kern_pairs() επιστρέφει όλα τα ζεύγη κρυπτογραφημένα στο γράμμα. KernPair Έχει left (Το κλίμα του Γκίλιπ), right (Γλυφίνης) και value (Στο πλαίσιο των μονάδων γραμματισμού):
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")
for pair in pairs[:5]:
print(f" Left: {pair.left} Right: {pair.right} Value: {pair.value}")
Μειονεκτήματα
Οι τυποποιημένες μετρήσεις είναι προσβάσιμες μέσω της metrics Ιδιοκτησία :
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
metrics = loaded.metrics
print(f"Units per em : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
print(f"Descender : {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")
Υποστήριξη μεταβλητής κειμένου
Για τις μεταβλητές γραμμές, TtfFont ΕΚΔΗΛΩΣΕΙΣ is_variable, variable_axes,και named_instances.Χρησιμοποιήστε get_axis(tag) να ανακτήσει μια συγκεκριμένη άξονα με τα τέσσερα γράμματα της Τάγκας :
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/RobotoFlex.ttf")
print(f"Is variable: {loaded.is_variable}")
print(f"Axes : {len(loaded.variable_axes)}")
Η get_axis(tag) Μέθοδος στο TtfFont Επαναλάβει A VariableAxis Με τα τέσσερα γράμματα της Η Ε.Γ. "wght" για το βάρος, "wdth" Η επιστροφή του (από την επιστροφή) None Αν η άξονα είναι Δεν υπάρχει στην ονομασία του fvar Τηλέφωνο .
Μετατροπή Fonts
to_bytes(font_type) μετατρέπεται το γράμμα σε διαφορετικό μορφότυπο. χρησιμοποιήστε την FontType ΕΝΟΜ Για να προσδιορίσουμε τον στόχο:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
fh.write(ttf_bytes)
print(f"Serialized: {len(ttf_bytes)} bytes")
Γρήγορη έναρξη
Εγκατάσταση της βιβλιοθήκης:
.venv/bin/pip install aspose-font
Κατεβάστε μια γραμματοσειρά TTF και ελέγξτε:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("Roboto-Regular.ttf")
print(f"Font name : {loaded.font_name}")
print(f"Family : {loaded.font_family}")
print(f"Glyphs : {loaded.num_glyphs}")
print(f"Variable : {loaded.is_variable}")
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")
Υποστηριζόμενες μορφές
| ΤΕΧΝΗ | ΕΠΙΤΡΟΦΗ | Διαβάστε | Γράψε |
|---|---|---|---|
| TTF | .ΤΤΦ | ✓ | — |
| OTF | .ΟΤΦ | ✓ | — |
| EOT | .ΕΟΤ | ✓ | — |
| CFF | .ΚΦΑΛΕ | ✓ | — |
| TYPE1 | .ΠΡΕΠ / PFA | ✓ | — |
| WOFF | .Γουόφ | ✓ | — |
| WOFF2 | .Γουόφ2 | ✓ | — |
Όλα τα σχήματα φορτώνουν μέσω FontLoader.open.TTF/OTF επιστρέφει το γράμμα A TtfFont Η περίπτωση.
Ανοικτή Πηγή & Άδεια Χρήσης
Aspose.Font FOSS for Python is released under the MIT License. You can use it in προσωπικά, εμπορικά και ανοικτά έργα χωρίς κόστος. ο κώδικας πηγής είναι Διατίθεται στο GitHub και το πακέτο διανέμεται μέσω του PyPI ως: aspose-font.