Διαμόρφωση υποκατάστασης γραμματοσειράς σε παρουσιάσεις σε .NET

Επισκόπηση

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

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

Λήψη αντικαταστάσεων γραμματοσειρών

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

Ο κώδικας C# δείχνει πώς να λάβετε όλες τις αντικαταστάσεις γραμματοσειρών που εκτελούνται όταν αποδίδεται μια παρουσίαση:

using (Presentation pres = new Presentation(@"Presentation.pptx"))
{
    foreach (var fontSubstitution in pres.FontsManager.GetSubstitutions())
    {
        Console.WriteLine("{0} -> {1}", fontSubstitution.OriginalFontName, fontSubstitution.SubstitutedFontName);
    }
}

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

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

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

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

// Φορτώνει μια παρουσίαση
Presentation presentation = new Presentation("Fonts.pptx");

// Φορτώνει τη γραμματοσειρά προέλευσης που θα αντικατασταθεί
IFontData sourceFont = new FontData("SomeRareFont");

// Φορτώνει τη νέα γραμματοσειρά
IFontData destFont = new FontData("Arial");

// Προσθέτει κανόνα γραμματοσειράς για αντικατάσταση γραμματοσειράς
IFontSubstRule fontSubstRule = new FontSubstRule(sourceFont, destFont, FontSubstCondition.WhenInaccessible);

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

// Προσθέτει τη συλλογή κανόνων γραμματοσειράς στη λίστα κανόνων
presentation.FontsManager.FontSubstRuleList = fontSubstRuleCollection;

using (IImage image = presentation.Slides[0].GetImage(1f, 1f))
{
    // Αποθηκεύει την εικόνα στο δίσκο σε μορφή JPEG
    image.Save("Thumbnail_out.jpg", ImageFormat.Jpeg);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πώς πρέπει να προετοιμάσω το περιβάλλον ώστε να μειώσω τις ανεπιθύμητες υποκαταστάσεις κατά τις μαζικές μετατροπές;

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