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

Εισαγωγή

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

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

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

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

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

  # Φορτώνει μια παρουσίαση
  $pres = new Presentation("Fonts.pptx");
  try {
    # Φορτώνει τη γραμματοσειρά πηγή που θα αντικατασταθεί
    $sourceFont = new FontData("SomeRareFont");
    # Φορτώνει τη νέα γραμματοσειρά
    $destFont = new FontData("Arial");
    # Προσθέτει έναν κανόνα γραμματοσειράς για αντικατάσταση γραμματοσειράς
    $fontSubstRule = new FontSubstRule($sourceFont, $destFont, FontSubstCondition->WhenInaccessible);
    # Προσθέτει τον κανόνα στη συλλογή κανόνων αντικατάστασης γραμματοσειρών
    $fontSubstRuleCollection = new FontSubstRuleCollection();
    $fontSubstRuleCollection->add($fontSubstRule);
    # Προσθέτει μια συλλογή κανόνων γραμματοσειράς στη λίστα κανόνων
    $pres->getFontsManager()->setFontSubstRuleList($fontSubstRuleCollection);
    # Η γραμματοσειρά Arial θα χρησιμοποιηθεί αντί της SomeRareFont όταν αυτή δεν είναι προσβάσιμη
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(1.0, 1.0);
    # Αποθηκεύει την εικόνα στο δίσκο σε μορφή JPEG
    try {
      $slideImage->save("Thumbnail_out.jpg", ImageFormat::Jpeg);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

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

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

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

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

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

Ποια είναι η διαφορά μεταξύ αντικατάστασης γραμματοσειράς (replacement) και αντικατάστασης γραμματοσειράς (substitution);

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

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

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

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

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

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

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

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

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

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

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

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

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