Präsentationen mit Fallback-Schriftarten in Java rendern

Contents
[ ]

Das folgende Beispiel enthält diese Schritte:

  1. Wir erstellen eine Sammlung von Fallback-Schriftartenregeln.
  2. Entfernen eine Fallback-Schriftartregel und addFallBackFonts zu einer anderen Regel hinzufügen.
  3. Setzen Sie die Regelsammlung mit der Methode getFontsManager.getFontFallBackRulesCollection.
  4. Mit der Methode Presentation.save können wir die Präsentation im selben Format speichern oder in ein anderes Format konvertieren. Nachdem die Fallback-Schriftartenregelsammlung im FontsManager festgelegt wurde, werden diese Regeln bei allen Vorgängen mit der Präsentation angewendet: speichern, rendern, konvertieren usw.
// Neue Instanz einer Regelsammlung erstellen
IFontFallBackRulesCollection rulesList = new FontFallBackRulesCollection();

// Eine Anzahl von Regeln erstellen
rulesList.add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));

for (IFontFallBackRule fallBackRule : rulesList)
{
    // Versucht, die Rückfallschriftart "Tahoma" aus den geladenen Regeln zu entfernen
    fallBackRule.remove("Tahoma");

    // Und die Regeln für den angegebenen Bereich zu aktualisieren
    if ((fallBackRule.getRangeEndIndex() >= 0x4000) && (fallBackRule.getRangeStartIndex() < 0x5000))
        fallBackRule.addFallBackFonts("Verdana");
}

//Also wir können beliebige vorhandene Regeln aus der Liste entfernen
if (rulesList.size() > 0)
    rulesList.remove(rulesList.get_Item(0));

Presentation pres = new Presentation("input.pptx");
try {
    // Zuweisen einer vorbereiteten Regelliste zur Verwendung
    pres.getFontsManager().setFontFallBackRulesCollection(rulesList);

    // Rendern einer Miniaturansicht mit der initialisierten Regelsammlung und Speichern als JPEG
   IImage slideImage = pres.getSlides().get_Item(0).getImage(1f, 1f);

   // Bild im JPEG-Format auf die Festplatte speichern
   try {
         slideImage.save("Slide_0.jpg", ImageFormat.Jpeg);
   } finally {
        if (slideImage != null) slideImage.dispose();
   }
} finally {
    if (pres != null) pres.dispose();
}