Εισαγωγή
Aspose.Font FOSS for Python is a new open-source library that gives Python developers ένα πλήρες σύνολο εργαλείων για να εργαστείτε με τα αρχεία γραμματοσειράς προγραμματικά. αν χρειάζεται να φορτώσετε μια TTF για την επιθεώρηση του γκλιφίου, μετατρέψτε ένα OTF σε WOFF2 για διαδίκτυο παράδοση, υπογράφετε μια γραμματοσειρά στο μειώστε το μέγεθος του φορτίου ή δημιουργήστε κινούμενα προβολές μεταβλητών οξών γραμματοσειράς, τη βιβλιοθήκη εκθέτει μια ενιαία, ανεξάρτητη API για όλα αυτά τα καθήκοντα.
Η βιβλιοθήκη δημοσιεύεται στο PyPI ως aspose-font Υπό την άδεια του ΜΙΤ. απαιτείται Python 3.10 ή νεότερη και δεν εξαρτάται από βιβλιοθήκες γραμματοσειράς σε επίπεδο λειτουργίας, όπως: FreeType ή HarfBuzz. Αυτό το κάνει κατάλληλο για περιβάλλοντα χωρίς κεφάλι διακομιστή, CI σωλήνες, και εμποτισμένα φορτία εργασίας όπου η εγκατάσταση των γραμματοσειρών του συστήματος είναι απρόβλεπτη.
Aspose.Font FOSS v1.0.0 supports loading fonts in TTF, OTF, CFF, Type 1, WOFF, WOFF2, και μορφές EOT, με δυνατότητα εξαγωγής στο ίδιο σύνολο μορφών μέσω της FontConverter.
Τι περιλαμβάνεται
Φωντοφόρμα και πρόσβαση σε μεταδεδομένα
Η FontLoader Η τάξη είναι το μοναδικό σημείο εισόδου για τις γραμματοσειρές φόρτωσης. FontLoader.open() με ένα αρχείο ή ξηρούς byte και η βιβλιοθήκη θα ανιχνεύσει αυτόματα τη μορφή και επιστρέφει το κατάλληλο αντικείμενο γραμματοσειράς.Μετά την φόρτωση, η Font Η βάση σας δίνει πρόσβαση Για να font_name, font_family, font_style, num_glyphs,και το κρυπτογράφημα χάρτη.
from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name) # "Roboto"
print(font.font_family) # "Roboto"
print(font.num_glyphs) # number of glyphs in the font
Glyph Inspection και πρόσβαση στο δρόμο
Η GlyphAccessor Η τάξη σας επιτρέπει να αναζητήσετε τα glyphs με το Glyph ID ή το σημείο κωδικού Unicode μέσω της get_glyph_by_id() και get_glyph_by_unicode().Για να λύσει όλα τα glyphs για μια γραμμή Το κείμενο ταυτόχρονα, χρησιμοποιώντας το get_glyphs_for_text().Κάθε ένας Glyph Το αντικείμενο εκθέτει το δρόμο του ως σειρά από τυποποιημένες εντολές δρόμου - MoveTo, LineTo, QuadraticTo, CurveTo,και ClosePath - να σας δώσει πρόσβαση στα πρώτα δεδομένα του Bézier χωρίς μηχανή rendering.
from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41) # Unicode code point for 'A'
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
Σημειώσεις υποκατάστασης
FontSubsetter Εξασφαλίζει πολλαπλές στρατηγικές υποκατάστασης. χρησιμοποιήστε subset_by_text() Για να διατηρήστε μόνο τα απαραίτητα γλιφ για μια συγκεκριμένη γραμμή, subset_by_gids() Να προσδιορίσει το glyph Ταυτοποίηση άμεσα, ή subset_for_web() να εφαρμόσετε μια web-optimized προεπιλογή που σπάνια πέφτει Χρησιμοποιήθηκαν τα γλυφιά και οι πίνακες. analyze_coverage() Η μέθοδος σας επιτρέπει να ελέγξετε ποιο ποσοστό από την αρχική γραμματοσειρά ένα υποσυνταγμα καλύπτει πριν δεσμευτεί σε αυτό.
from aspose_font.loader import FontLoader
from aspose_font.subsetter import FontSubsetter
font = FontLoader.open("NotoSans-Regular.ttf")
# Subset to the characters needed for a Latin-script page
result = FontSubsetter.subset_by_text(font, "Hello, World!")
Web Font Optimization - Βελτιστοποίηση
FontCleaner.clean_for_web() Σύνδεση DSIG, FFTM και Meta tables και αφαιρεί Mac το όνομα της πλατφόρμας καταχωρίζεται από τον πίνακα ονόματος του γραμματοσειρά. το αποτέλεσμα είναι ένα μικρότερο δυαδικό που φορτώνει ταχύτερα ως ένα web font χωρίς να αλλάζει τις γραμμές ή τις μετρήσεις του glyph.
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# stripped of legacy tables; ready for WOFF2 packaging
Αλλαγή των προοπτικών Animation
Για τις μεταβλητές γραμμές, AnimationPreviewBuilder Μπορεί να δημιουργήσει ένα animated APNG που πνίγει από μια τιμή έναρξης σε μία τελική τιμή. build_axis_sweep() Η μέθοδος αποδέχεται Η ετικέτα του οξέα (π.χ., "wdth" ή "wght"1) ένα πλαίσιο, μια νούμερα ανά δευτερόλεπτο και ένας επιλεκτική σημαία που γυρίζει το σφυρί για να δημιουργήσει μια κινούμενη animation. Είναι ένα AnimationAsset Ποιοι write_to() Η μέθοδος αποθηκεύει το APNG στο δίσκο.
from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder
font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
asset = AnimationPreviewBuilder.build_axis_sweep(
font,
axis_tag="wdth",
start_val=75.0,
end_val=100.0,
frames=3,
fps=10,
text="A",
size=10.0,
bounce=True,
)
asset.write_to("roboto-sweep-wdth.png")
Γρήγορη έναρξη
Εγκαταστήστε τη βιβλιοθήκη από το PyPI:
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
font = FontLoader.open("MyFont.ttf")
print(f"Family: {font.font_family}")
print(f"Style: {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")
# Look up a glyph by Unicode code point
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
print(f"Path commands for 'A': {len(glyph.path.commands)}")
Υποστηριζόμενες μορφές
| ΤΕΧΝΗ | ΕΠΙΤΡΟΦΗ | Διαβάστε | Γράψε |
|---|---|---|---|
| TTF | .ΤΤΦ | ✓ | ✓ |
| OTF | .ΟΤΦ | ✓ | ✓ |
| CFF | .ΚΦΑΛΕ | ✓ | ✓ |
| TYPE1 | .ΠΡΟΣΦΥΛΗ / .pfa | ✓ | ✓ |
| WOFF | .Γουόφ | ✓ | ✓ |
| WOFF2 | .Γουόφ2 | ✓ | ✓ |
| EOT | .ΕΟΤ | ✓ | ✓ |
Ανοικτή Πηγή & Άδεια Χρήσης
Aspose.Font FOSS for Python is published under the MIT license. You can use it in εμπορικά έργα, τροποποιήστε το και διανέμετε ελεύθερα. ο κώδικας πηγής είναι διαθέσιμος Το GitHub στο Σημειώνεται ότι το «Font-FOSS-for-Python» Το πακέτο είναι διαθέσιμο στο PyPI ως aspose-font.