Εισαγωγή
Το Type 1 είναι το αρχικό κλιμακώδες μορφότυπο γραμματοσειράς της Adobe, που μεταφέρει TrueType και OpenTYpe. Το αρχείο τύπου 1 αποτελείται από δύο αρχεία: ένα .pfb (Διατύπωση γραμματοσειράς) αρχείο που περιέχει το κρυπτογραφημένο πρόγραμμα γραμματοσειράς, και ένα .afm (Adobe Font Metrics) αρχείο με κέρδισμα και Παρά το γεγονός ότι είναι υπερκατασταθεί από OpenType, οι γραμματοσειρές τύπου 1 παραμένουν διαδεδομένες στο Δημοσίευση ροών εργασίας, γραμμών PostScript και αρχείων.
Aspose.Font FOSS for Python provides direct access to Type 1 internals through Type1Font, Type1FontData, Type1Serializer,και Type1Interpreter.Μπορείτε να φορτίσετε Πληροφορίες PFB ή PFA μέσω FontLoader.open, ελέγξτε τα ενσωματωμένα μεταδεδομένα του προγράμματος γραμματοσειράς, ερμηνεύουν τα κλειδιά σε μονοπάτια γλιφ, και σκηνοθετούν τις γραμματοσειρές πίσω στο PFB ή PFA μορφή.
Η βιβλιοθήκη δημοσιεύεται στο PyPI ως aspose-font και έχει αδειοδοτηθεί με την άδεια MIT. Δεν έχει υποχρεωτικές εμπορικές εξαρτήσεις και τρέχει στο πρότυπο Python 3.
Βασικά Χαρακτηριστικά
Ετικέτες Τύπος 1 Φορντ
Χρησιμοποιήστε FontLoader.open να φορτώσει ένα αρχείο PFB ή PFA. το επιστρεφόμενο αντικείμενο εκθέτει και τα δύο ΕΝΤΡΟΠΗ Font Η διασύνδεση και η λειτουργικότητα τύπου 1 μέσω της Type1Font Η τάξη:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Courier.pfb")
print(loaded.font_name) # e.g. "Courier"
print(loaded.font_family) # e.g. "Courier"
print(loaded.num_glyphs) # number of defined glyphs
print(loaded.font_style) # style string, e.g. "Regular"
FontLoader.open ανιχνεύει αυτόματα τη μορφή τύπου 1 από τον τίτλο αρχείου.PFB Και τα αρχεία PFA υποστηρίζονται και από τους δύο.
Φωτογραφίες AFM Metrics
Τύπος 1 γραμματοσειρά μεταφέρουν τις μετρήσεις τους σε ξεχωριστό .afm Πληροφορίες - The Type1Font Κλάση Εμφανίζεται η load_afm(path) μέθοδος που προσθέτει τα δεδομένα AFM στο φορτισμένο αντικείμενο γραμματοσειράς, Δυνατότητα αναζήτησης του kern pair μέσω get_kern_pairs().
Χωρίς το αρχείο AFM, get_kern_pairs() επιστρέφει μια κενή λίστα επειδή τα kern data ζουν στο αρχείο AFM, όχι στο ίδιο το πρόγραμμα PFB. load_afm Η μέθοδος αποδέχεται ένα αρχείο Ο δρόμος που δείχνει τον σύντροφο .afm αρχείο .
Εισαγωγή σε μεταδεδομένα Type1FontData
Η Type1FontData Η τάξη εκθέτει το λεξικό του προγράμματος γραμματοσειράς που ενσωματώνεται στο τύπο 1 Περιλαμβάνει μετρήσεις, το πλαίσιο συνόρων, κρυπτογράφησης vector, charstrings και subroutines:
from aspose_font.type1.data import Type1FontData
# Type1FontData is the font program dictionary parsed from the PFB
# Access its properties to inspect the raw PostScript font data
Type1FontData Ιδιότητες :
font_name(str- PostScript όνομα του γραμματοσειράfull_name(str- πλήρης ανθρώπινο-διαβαστό όνομαfamily_name(strΓΕΝΙΚΗ ΦΟΡΤΙΑweight(str• Σύνδεση βάρους (π.χ."Medium")italic_angle(floatΙταλική γωνία σε βαθμούςis_fixed_pitch(bool- Αληθινά για μονοδιαστημικές γραμματοσειρέςfont_bbox(tuple[int, int, int, int]• Το περιοριστικό κουτί(llx, lly, urx, ury)underline_position(int1) - υποσυνείδηση θέση σε μονάδες γραμματοσειράςunderline_thickness(int1) Υπογραμμίζει το πάχος του εγκεφαλικού επεισοδίουencoding(list[str]256-Σλότ κρυπτογράφηση vector (PostScript ονόματα glyph)charstrings(dict[str, bytes]- ονομασία glyph → charstring bytes mappingsubrs(list[bytes]) — υπορουτίνα byte αλυσίδες που χρησιμοποιούνται από τον κινητήρα τράβηξηςlen_iv(int• Παραμέτρους κρυπτογράφισης LENIV
Ερμηνεία Charstrings
Type1Interpreter Ετικέτες: Τύπος 1 Καρστροί προγράμματα σε GlyphPath ΠΕΡΙΟΔΟΣ - ΠΑΡΑΣ Τα ρυττά μπάτια από την Type1FontData.charstrings Για να interpret:
from aspose_font.type1.interpreter import Type1Interpreter
interpreter = Type1Interpreter()
charstring = b"\x0e" # seac or other charstring bytes
glyph_path, stack_depth = interpreter.interpret(charstring)
for cmd in glyph_path.commands:
print(cmd)
interpret Επιστρέφει ο Α (GlyphPath, int) Τούμπλε, το GlyphPath Περιέχει το σχέδιο Η τελική βάθος είναι η τελικό βάθρο μετά την εκτέλεση, που είναι χρήσιμα για την αποσύνθεση κακοποιημένων χαρστριών.
Σειρά σε PFB και PFA
Type1Serializer μετατρέπει ένα φορτισμένο τύπο 1 γραμματοσειρά πίσω σε δυαδικό PFB ή μορφή κειμένου PFA. Και οι δύο μέθοδοι αποδέχονται οποιαδήποτε Font Εισαγωγή και επιστροφή των πρώτων bytes:
from aspose_font import FontLoader
from aspose_font.type1.serializer import Type1Serializer
loaded = FontLoader.open("fonts/Courier.pfb")
# Serialize to PFB (binary) format
pfb_bytes = Type1Serializer.serialize_pfb(loaded)
with open("output/Courier_copy.pfb", "wb") as fh:
fh.write(pfb_bytes)
# Serialize to PFA (text) format
pfa_bytes = Type1Serializer.serialize_pfa(loaded)
with open("output/Courier_copy.pfa", "wb") as fh:
fh.write(pfa_bytes)
print(f"PFB: {len(pfb_bytes)} bytes")
print(f"PFA: {len(pfa_bytes)} bytes")
Μειονεκτήματα
Η μέτρηση και η κρυπτογράφηση είναι προσβάσιμες μέσω του προτύπου. Font Η διασύνδεση:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Courier.pfb")
metrics = loaded.metrics
print(f"Units per em : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
print(f"Descender : {metrics.descender}")
print(f"Underline pos : {metrics.underline_position}")
print(f"Underline tck : {metrics.underline_thickness}")
Γρήγορη έναρξη
Εγκατάσταση της βιβλιοθήκης:
.venv/bin/pip install aspose-font
Κατεβάστε ένα γράμμα PFB και ελέγξτε:
from aspose_font import FontLoader
from aspose_font.type1.serializer import Type1Serializer
loaded = FontLoader.open("Courier.pfb")
print(f"Font name : {loaded.font_name}")
print(f"Family : {loaded.font_family}")
print(f"Style : {loaded.font_style}")
print(f"Glyphs : {loaded.num_glyphs}")
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
# Round-trip: serialize back to PFB
pfb_bytes = Type1Serializer.serialize_pfb(loaded)
print(f"Serialized: {len(pfb_bytes)} bytes")
Υποστηριζόμενες μορφές
| ΤΕΧΝΗ | ΕΠΙΤΡΟΦΗ | Διαβάστε | Γράψε |
|---|---|---|---|
| TTF | .ΤΤΦ | ✓ | — |
| OTF | .ΟΤΦ | ✓ | — |
| EOT | .ΕΟΤ | ✓ | — |
| CFF | .ΚΦΑΛΕ | ✓ | — |
| TYPE1 | .ΠΡΕΠ / PFA | ✓ | — |
| WOFF | .Γουόφ | ✓ | — |
| WOFF2 | .Γουόφ2 | ✓ | — |
Τα γραμματοσειρά τύπου 1 φορτώνται μέσω FontLoader.open Σειρά με τη Type1Serializer.
Ανοικτή Πηγή & Άδεια Χρήσης
Aspose.Font FOSS for Python is released under the MIT License. You can use it in προσωπικά, εμπορικά και ανοικτά έργα χωρίς κόστος. ο κώδικας πηγής είναι Διατίθεται στο GitHub και το πακέτο διανέμεται μέσω του PyPI ως: aspose-font.