Διαμόρφωση υποκατάστασης γραμματοσειρών σε παρουσιάσεις χρησιμοποιώντας C++

Επισκόπηση

Η αντικατάσταση γραμματοσειράς επιτρέπει στο Aspose.Slides να χρησιμοποιήσει άλλη γραμματοσειρά όταν η αρχική γραμματοσειρά της παρουσίασης δεν είναι διαθέσιμη κατά τη διάρκεια της απόδοσης ή της μετατροπής. Μπορείτε να ελέγξετε ποιες γραμματοσειρές αντικαταστάθηκαν χρησιμοποιώντας τη μέθοδο GetSubstitutions από τη διεπαφή IFontsManager.

Το Aspose.Slides επίσης σας επιτρέπει να ορίσετε κανόνες αντικατάστασης γραμματοσειράς. Για παράδειγμα, μπορείτε να καθορίσετε ότι μια μη προσβάσιμη γραμματοσειρά πρέπει να αντικατασταθεί με άλλη διαθέσιμη γραμματοσειρά και στη συνέχεια να εφαρμόσετε αυτούς τους κανόνες μέσω του διαχειριστή γραμματοσειρών της παρουσίασης.

Ορισμός κανόνων αντικατάστασης γραμματοσειράς

Το Aspose.Slides σας επιτρέπει να ορίσετε κανόνες για τις γραμματοσειρές που καθορίζουν τι πρέπει να γίνει σε ορισμένες συνθήκες (π.χ. όταν μια γραμματοσειρά δεν είναι προσβάσιμη) με τον εξής τρόπο:

  1. Φορτώστε την αντίστοιχη παρουσίαση.
  2. Φορτώστε τη γραμματοσειρά που θα αντικατασταθεί.
  3. Φορτώστε τη νέα γραμματοσειρά.
  4. Προσθέστε έναν κανόνα για την αντικατάσταση.
  5. Προσθέστε τον κανόνα στη συλλογή κανόνων αντικατάστασης γραμματοσειρών της παρουσίασης.
  6. Δημιουργήστε την εικόνα της διαφάνειας για να παρατηρήσετε το αποτέλεσμα.

Αυτός ο κώδικας C++ εμφανίζει τη διαδικασία αντικατάστασης γραμματοσειράς:

// Η διαδρομή προς το φάκελο εγγράφων.
const String outPath = u"../out/RuleBasedFontsReplacement_out.pptx";
const String templatePath = u"../templates/DefaultFonts.pptx";

 // Φορτώνει μια παρουσίαση
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

// Ορίζει τη γραμματοσειρά που θα αντικατασταθεί και τη νέα γραμματοσειρά
SharedPtr<IFontData> sourceFont = MakeObject<FontData>(u"SomeRareFont");
SharedPtr<IFontData> destFont = MakeObject<FontData>(u"Arial");
	
// Προσθέτει έναν κανόνα γραμματοσειράς για αντικατάσταση γραμματοσειράς
SharedPtr<FontSubstRule> fontSubstRule = MakeObject<FontSubstRule>(sourceFont, destFont, FontSubstCondition::WhenInaccessible);

// Προσθέτει τον κανόνα στη συλλογή κανόνων υποκατάστασης γραμματοσειρών
SharedPtr<FontSubstRuleCollection> fontSubstRuleCollection = MakeObject<FontSubstRuleCollection>();
fontSubstRuleCollection->Add(fontSubstRule);

// Προσθέτει τη συλλογή κανόνων γραμματοσειρών στη λίστα κανόνων
pres->get_FontsManager()->set_FontSubstRuleList ( fontSubstRuleCollection);


// Αποθηκεύει το PPTX στο δίσκο
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Περιορισμοί για γραμματοσειρές μαθηματικών εξισώσεων

Οι κανόνες αντικατάστασης γραμματοσειράς συμμετέχουν στη στάνταρ διαδικασία επιλογής γραμματοσειράς που χρησιμοποιείται κατά τη διάρκεια της απόδοσης και της μετατροπής. Είναι κατάλληλοι για σενάρια κανονικού κειμένου όπου το Aspose.Slides μπορεί να αντικαταστήσει μια μη προσβάσιμη γραμματοσειρά με άλλη διαθέσιμη γραμματοσειρά σύμφωνα με τον καθορισμένο κανόνα.

Ωστόσο, οι μαθηματικές εξισώσεις του Office έχουν έναν σημαντικό περιορισμό. Εάν μια εξίσωση έχει δημιουργηθεί με Cambria Math, το Aspose.Slides ενδέχεται ακόμη να απαιτεί την αρχική γραμματοσειρά Cambria Math για να υπολογίσει και να αποδώσει σωστά τη διάταξη της εξίσωσης. Λόγω αυτού, η αντικατάσταση της Cambria Math με άλλη μαθηματική γραμματοσειρά, όπως η STIX Two Math, δεν υποστηρίζεται για την απόδοση εξισώσεων και μπορεί ακόμη να προκαλέσει εξαίρεση που υποδεικνύει ότι απαιτείται η Cambria Math.

Για να μετατρέψετε τέτοιες παρουσιάσεις με επιτυχία, βεβαιωθείτε ότι η Cambria Math είναι διαθέσιμη στο Aspose.Slides κατά την εκτέλεση. Μπορείτε να εγκαταστήσετε τη γραμματοσειρά στο λειτουργικό σύστημα ή να τη παρέχετε ως εξωτερική γραμματοσειρά ώστε να συμμετέχει στη φυσιολογική διαδικασία επιλογής γραμματοσειράς κατά τη διάρκεια της απόδοσης και της μετατροπής.

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

Συχνές ερωτήσεις

Ποια είναι η διαφορά μεταξύ αντικατάστασης γραμματοσειράς και υποκατάστασης γραμματοσειράς;

Replacement είναι μια αναγκαστική αντικατάσταση μιας γραμματοσειράς με άλλη σε ολόκληρη την παρουσίαση. Η υποκατάσταση είναι ένας κανόνας που ενεργοποιείται υπό συγκεκριμένη κατάσταση, π.χ. όταν η αρχική γραμματοσειρά δεν είναι διαθέσιμη, και τότε χρησιμοποιείται μια καθορισμένη εφεδρική γραμματοσειρά.

Πότε εφαρμόζονται ακριβώς οι κανόνες υποκατάστασης;

Οι κανόνες συμμετέχουν στη στάνταρ ακολουθία επιλογής γραμματοσειράς που αξιολογείται κατά τη φόρτωση, την απόδοση και τη μετατροπή· εάν η επιλεγμένη γραμματοσειρά δεν είναι διαθέσιμη, εφαρμόζεται αντικατάσταση ή υποκατάσταση.

Ποια είναι η προεπιλεγμένη συμπεριφορά εάν δεν έχει ρυθμιστεί ούτε αντικατάσταση ούτε υποκατάσταση και η γραμματοσειρά λείπει από το σύστημα;

Η βιβλιοθήκη θα προσπαθήσει να επιλέξει τη πλησιέστερη διαθέσιμη συστημική γραμματοσειρά, παρόμοια με τη συμπεριφορά του PowerPoint.

Μπορώ να προσθέσω προσαρμοσμένες εξωτερικές γραμματοσειρές κατά την εκτέλεση ώστε να αποφύγω την υποκατάσταση;

Ναι. Μπορείτε να προσθέσετε εξωτερικές γραμματοσειρές κατά την εκτέλεση ώστε η βιβλιοθήκη να τις λαμβάνει υπόψη για επιλογή και απόδοση, συμπεριλαμβανομένων των επόμενων μετατροπών.

Διανέμει το Aspose κάποια γραμματοσειρά μαζί με τη βιβλιοθήκη;

Όχι. Το Aspose δεν διανέμει πληρωμένες ή δωρεάν γραμματοσειρές· εσείς προσθέτετε και χρησιμοποιείτε γραμματοσειρές με δική σας κρίση και ευθύνη.

Υπάρχουν διαφορές στη συμπεριφορά υποκατάστασης στα Windows, Linux και macOS;

Ναι. Η αναζήτηση γραμματοσειρών ξεκινά από τους φακέλους γραμματοσειρών του λειτουργικού συστήματος. Το σύνολο των προεπιλεγμένων διαθέσιμων γραμματοσειρών και οι διαδρομές αναζήτησης διαφέρουν μεταξύ των πλατφορμών, κάτι που επηρεάζει τη διαθεσιμότητα και την ανάγκη υποκατάστασης.

Πώς πρέπει να προετοιμάσω το περιβάλλον ώστε να ελαχιστοποιήσω την απροσδόκητη υποκατάσταση κατά τις παρτίδες μετατροπών;

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