Fonts

Fonts

Αυτός ο οδηγός δείχνει πώς να ελέγχετε τις γραμματοσειρές που αναφέρονται σε ένα έγγραφο, να εξάγετε τα ενσωματωμένα δεδομένα γραμματοσειράς και να ελέγχετε την ενσωμάτωση γραμματοσειρών TrueType κατά την αποθήκευση με το Aspose.Words FOSS για .NET. Το Aspose.Words FOSS για .NET παρακολουθεί κάθε γραμματοσειρά που αναφέρεται από ένα φορτωμένο έγγραφο μέσω FontInfoCollection και εκθέτει μεταδεδομένα ανά γραμματοσειρά, εξαγωγή ενσωματωμένης γραμματοσειράς και ελέγχους ενσωμάτωσης κατά την αποθήκευση μέσω FontInfo. Τα Document.FontSettings και LoadOptions.FontSettings παρέχουν το (σκόπιμα ελάχιστο, σε αυτή την έκδοση) σημείο εισόδου FontSettings.


Έλεγχος των γραμματοσειρών που χρησιμοποιούνται σε ένα έγγραφο

DocumentBase.FontInfos (κληρονομείται από το Document) επιστρέφει ένα FontInfoCollection που περιγράφει κάθε γραμματοσειρά που αναφέρεται οπουδήποτε στο έγγραφο. Προσπελάστε το με βάση το όνομα (π.χ. fontInfos["Arial"]), ελέγξτε αν υπάρχει με το Contains(name), μετρήστε τις με το Count, ή απαριθμήστε ολόκληρη τη συλλογή μέσω GetEnumerator().


Ιδιότητες και ταξινόμηση γραμματοσειρών

Κάθε FontInfo περιγράφει μία γραμματοσειρά: τα Name και AltName την αναγνωρίζουν, το Family την ταξινομεί μέσω του enum FontFamily (Auto, Roman, Swiss, Modern, Script, Decorative), το Pitch αναφέρει το FontPitch της (Default, Fixed, Variable), και τα IsTrueType, Charset και Panose εκθέτουν δεδομένα αντιστοίχισης γραμματοσειρών χαμηλότερου επιπέδου.


Εξαγωγή ενσωματωμένης γραμματοσειράς

Εάν ένα έγγραφο έχει ενσωματωμένες γραμματοσειρές, το FontInfo.GetEmbeddedFont(format, style) επιστρέφει τα ακατέργαστα bytes της ενσωματωμένης γραμματοσειράς για ένα συγκεκριμένο EmbeddedFontFormat (EmbeddedOpenType ή OpenType) και EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic). Το GetEmbeddedFontAsOpenType(style) επιστρέφει τη γραμματοσειρά μετατρεπόμενη απευθείας σε μορφή OpenType, ανεξάρτητα από το πώς ενσωματώθηκε αρχικά.


Δικαιώματα Άδειας Ενσωμάτωσης Γραμματοσειρών

Πριν εξάγετε ή επανεγκαταστήσετε μια γραμματοσειρά, ελέγξτε το FontInfo.EmbeddingLicensingRights, ένα αντικείμενο FontEmbeddingLicensingRights. Το EmbeddingUsagePermissions αναφέρει το επίπεδο άδειας μέσω της απαρίθμησης FontEmbeddingUsagePermissions (Installable, RestrictedLicense, PrintAndPreview, Editable), ενώ τα NoSubsetting και BitmapEmbeddingOnly σηματοδοτούν περαιτέρω περιορισμούς που θέτει ο κατασκευαστής της γραμματοσειράς.


Διαχείριση Ενσωμάτωσης Γραμματοσειρών κατά την Αποθήκευση

Το FontInfoCollection περιλαμβάνει επίσης διακόπτες ενσωμάτωσης επιπέδου εγγράφου: ορίστε το EmbedTrueTypeFonts σε true για να ενσωματώσετε κάθε γραμματοσειρά TrueType που χρησιμοποιείται στο έγγραφο κατά την αποθήκευση, το EmbedSystemFonts για να συμπεριλάβετε γραμματοσειρές που συνήθως θεωρούνται παρούσες σε οποιοδήποτε σύστημα, και το SaveSubsetFonts για να ενσωματώσετε μόνο τα γλύφοι που χρησιμοποιούνται πραγματικά αντί για ολόκληρη τη γραμματοσειρά.


Πεδίο Εφαρμογής του FontSettings σε αυτήν την Έκδοση

Το Document.FontSettings και το LoadOptions.FontSettings επιστρέφουν και τα δύο ένα αντικείμενο FontSettings, και το FontSettings.DefaultInstance εκθέτει ένα κοινό προεπιλεγμένο στιγμιότυπο. Σε αυτήν την έκδοση FOSS, η επιφάνεια API του FontSettings περιορίζεται σε αυτήν την ιδιότητα του προεπιλεγμένου στιγμιότυπου — η επίλυση πηγών γραμματοσειρών βάσει φακέλου και συστήματος, η οποία αλλού στο Aspose.Words χρησιμοποιείται για αντικατάσταση ή επίλυση γραμματοσειρών για τη διάταξη και απόδοση σελίδων, δεν υπάρχει, καθώς η διάταξη και η απόδοση σελίδων βρίσκονται εκτός του πεδίου εφαρμογής αυτής της έκδοσης. Η διαχείριση γραμματοσειρών εδώ σημαίνει επιθεώρηση μεταδεδομένων και ενσωμάτωση, όχι αντικατάσταση γραμματοσειρών για απόδοση.


Συμβουλές και Καλές Πρακτικές

  • Πάντα ελέγξτε το FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions πριν εξάγετε ή διανείμετε ξανά μια ενσωματωμένη γραμματοσειρά — ορισμένες γραμματοσειρές είναι αδειοδοτημένες μόνο RestrictedLicense ή PrintAndPreview.
  • Χρησιμοποιήστε το GetEmbeddedFontAsOpenType() όταν χρειάζεστε μια συνεπή μορφή εξόδου ανεξάρτητα από το πώς το πηγαίο έγγραφο ενσωμάτωσε τη γραμματοσειρά (EmbeddedOpenType έναντι OpenType).
  • Ορίστε το FontInfoCollection.SaveSubsetFonts σε true για να μειώσετε το μέγεθος του αρχείου εξόδου όταν ενσωματώνετε γραμματοσειρές που χρησιμοποιούν μόνο λίγα σύμβολα.
  • Το FontInfoCollection.Contains(name) είναι φθηνότερο από το να ενσωματώνετε και να διαχειρίζεστε μια αποτυχημένη αναζήτηση (π.χ. fontInfos[name]) όταν χρειάζεται μόνο να ελέγξετε την παρουσία μιας γραμματοσειράς.

Κοινά Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
GetEmbeddedFont() δεν επιστρέφει χρήσιμα δεδομέναΗ αναφερόμενη γραμματοσειρά δεν είναι στην πραγματικότητα ενσωματωμένη στο έγγραφοΕλέγξτε τις ρυθμίσεις ενσωμάτωσης του εγγράφου πριν υποθέσετε ότι υπάρχουν δεδομένα γραμματοσειρών
Η ευρετηρίαση του FontInfoCollection κατά όνομα δεν βρίσκει τίποταΤο όνομα της γραμματοσειράς δεν ταιριάζει ακριβώς, συμπεριλαμβανομένης της πεζοκεφαλαίαςΑπαριθμήστε το FontInfoCollection με το GetEnumerator() για να επιβεβαιώσετε την ακριβή συμβολοσειρά Name
Οι αναμενόμενες API υποκατάστασης/επίλυσης γραμματοσειρών λείπουνΗ επίλυση πηγής γραμματοσειρών βάσει φακέλου και συστήματος δεν έχει υλοποιηθεί σε αυτήν την έκδοση FOSSΧρησιμοποιήστε το FontInfo/FontInfoCollection μόνο για μεταδεδομένα και ενσωμάτωση· η υποκατάσταση γραμματοσειρών για απόδοση δεν αποτελεί μέρος του εύρους αυτής της έκδοσης

FAQ

Πώς μπορώ να απαριθμήσω κάθε γραμματοσειρά που αναφέρει ένα έγγραφο;

Απαριθμίστε το Document.FontInfos (ένα FontInfoCollection) μέσω GetEnumerator(), ή δείξτε το με όνομα για να αναζητήσετε ένα συγκεκριμένο (π.χ. fontInfos["Arial"]).

Μπορώ να εξάγω τα ακατέργαστα byte μιας ενσωματωμένης γραμματοσειράς από ένα έγγραφο;

Ναι, εάν η γραμματοσειρά είναι ενσωματωμένη — καλέστε το FontInfo.GetEmbeddedFont(format, style) για το αρχικό ενσωματωμένο φορμά, ή το GetEmbeddedFontAsOpenType(style) για να κανονικοποιήσετε το αποτέλεσμα σε OpenType.

Πώς μπορώ να εξασφαλίσω ότι οι γραμματοσειρές ενσωματώνονται όταν αποθηκεύω ένα έγγραφο;

Ορίστε το FontInfoCollection.EmbedTrueTypeFonts σε true πριν από την αποθήκευση· προσθέστε το EmbedSystemFonts εάν χρειάζεστε επίσης γραμματοσειρές που υποτίθεται ότι υπάρχουν σε οποιοδήποτε σύστημα, και το SaveSubsetFonts για να ενσωματώσετε μόνο τα γλύφια που χρησιμοποιούνται.

Υποστηρίζει αυτή η έκδοση την επίλυση γραμματοσειρών από προσαρμοσμένο φάκελο για απόδοση;

Όχι — η επίλυση πηγής γραμματοσειρών βάσει φακέλου και συστήματος (FontSettings διαμόρφωση πηγής) δεν έχει υλοποιηθεί εδώ, καθώς υπάρχει για την εξυπηρέτηση διάταξης σελίδας και απόδοσης, που βρίσκονται εκτός του πεδίου εφαρμογής αυτής της έκδοσης FOSS.

Τι σημαίνει το FontEmbeddingLicensingRights.NoSubsetting;

Αυτή είναι μια σημαία αδειοδότησης που αναφέρεται από τα δικαιώματα ενσωμάτωσης του προμηθευτή γραμματοσειράς: όταν true, η γραμματοσειρά δεν μπορεί να υποσύνολο περιοριστεί μόνο στα γλύφια που χρησιμοποιούνται.


API Reference Περίληψη

Κλάση / ΜέθοδοςΠεριγραφή
FontInfoCollectionΓραμματοσειρές που αναφέρονται σε ένα έγγραφο· ευρετήριο κατά όνομα (fontInfos[name]), Contains(), Count, GetEnumerator(), συν EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoΜεταδεδομένα μιας γραμματοσειράς: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()Εξαγωγή ενσωματωμένων bytes γραμματοσειράς
EmbeddedFontFormat / EmbeddedFontStyleEnums που προσδιορίζουν τη μορφή και την παραλλαγή στυλ μιας ενσωματωμένης γραμματοσειράς
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsΠεριορισμοί άδειας ενσωμάτωσης που αναφέρονται ανά γραμματοσειρά
FontSettingsΕλάχιστο σημείο εισόδου ρυθμίσεων γραμματοσειράς (Document.FontSettings, LoadOptions.FontSettings); χωρίς επίλυση πηγής γραμματοσειράς σε αυτή την έκδοση

Δείτε επίσης

 Ελληνικά