Ελέγχου πίνακα
Ελέγχου πίνακα
Αυτό το εγχειρίδιο δείχνει πώς να διαβάσετε τις ιδιότητες του ονοματολογίου, να ανακτήσετε τα πρώτα δεδομένα του δυαδικού πίνακα και να γράψετε τροποποιημένους bytes του πίεσης πίσω σε ένα γραμματοσειρά TrueType.
Τα γραμματοσειρά TrueType και OpenTYpe αποτελούνται από δυαδικούς πίνακες, καθένα ταυτοποιημένο με μια ετικέτα 4 bytes. TtfTableSet εκθέτει χαρακτηριστικά που ονομάζονται Python για κοινά πίνακα, και TtfFont Παρέχει Απαραίτητη πρόσβαση για όλα τα τραπέζια.
Διαβάστε τα ονόματα των τραπεζών
TtfTableSet εκθέτει κεφάλι, hhea, maxp, os2, όνομα, post, cmap, loca, Hmtx και πυρήνες πίνακες.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("head table:", tables.head is not None)
print("kern table:", tables.kern is not None)Διαβάστε το Raw Table Bytes
TtfFont.get_table_bytes(tag) επιστρέφει το πλήρες δυαδικό περιεχόμενο οποιουδήποτε πίνακα που αναγνωρίζεται με την ετικέτα τεσσάρων χαρακτήρων του, επιτρέποντας χαμηλό επίπεδο ελέγχου ή προσαρμοσμένη παρίνγκ.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_name = ttf_font.get_table_bytes("name")
print(f"name table: {len(raw_name)} bytes")Γράψτε τροποποιημένα τραπέζια
TtfFont.set_table_bytes(tag, data) αντικαθιστά το δυαδικό περιεχόμενο ενός πίνακα, επιτρέποντας προσαρμοσμένες τροποποιήσεις του πίεσης όπως η διόρθωση των κανόνων GSUB ή οι ενημερώσεις αρχείων ονομάτων.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)Συμβουλές και βέλτιστες πρακτικές
- Ελέγξτε
tables.kern is not NoneΠριν από την πρόσβαση στα δεδομένα κέρδους TtfTableSet.get_raw(tag)καιset_raw(tag, data)Είναι συμμαχίες γιαget_table_bytes/set_table_bytes- Χρησιμοποιήστε
FontCleaner.clean_for_web()αντί να αφαιρέσετε χειροκίνητα τα τραπέζια για να αποφύγετε προβλήματα συνοχής
Συνοπτική αναφορά API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
TtfFont.ttf_tables | Δοκιμή πρόσβασης με ονομαστικές ιδιότητες πίνακα |
TtfFont.get_table_bytes(tag) | Διαβάστε τα πρώτα δεδομένα δυαδικού πίνακα |
TtfFont.set_table_bytes(tag, data) | Γράψτε τροποποιημένα δεδομένα πίνακα |
TtfTableSet.get_raw(tag) | Ετικέτες Get_table_bytes |
TtfTableSet.set_raw(tag, data) | Ετικέτες Set_table_bytes |