Εισαγωγή

Το 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 mapping
  • subrs (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.


Ξεκινώντας

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