Präsentationen mit Fallback-Schriftarten auf Android rendern

Contents
[ ]

Das folgende Beispiel enthält diese Schritte:

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

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

for (IFontFallBackRule fallBackRule : rulesList)
{
    // Versuch, die Fallback-Schriftart "Tahoma" aus geladenen Regeln zu entfernen
    fallBackRule.remove("Tahoma");

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

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

Presentation pres = new Presentation("input.pptx");
try {
    // Zuweisung einer vorbereiteten Regel-Liste zur Verwendung
    pres.getFontsManager().setFontFallBackRulesCollection(rulesList);

    // Rendern des Thumbnails unter Verwendung der initialisierten Regel-Sammlung und Speicherung 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();
}