Präsentation mit Fallback-Schriftart rendern

Contents
[ ]

Das folgende Beispiel beinhaltet diese Schritte:

  1. Wir erstellen eine Sammlung von Fallback-Schriftartregeln.
  2. Entfernen Sie eine Fallback-Schriftartregel und fügen Sie Fallback-Schriftarten hinzu zu einer anderen Regel.
  3. Setzen Sie die Regel-Sammlung auf getFontsManager.getFontFallBackRulesCollection Methode.
  4. Mit der Presentation.save Methode können wir die Präsentation im gleichen Format speichern oder sie in ein anderes speichern. Nachdem die Fallback-Schriftartregeln-Sammlung auf FontsManager gesetzt wurde, werden diese Regeln während aller Operationen über die Präsentation angewendet: speichern, rendern, konvertieren usw.
  # Erstellen Sie eine neue Instanz einer Regel-Sammlung
  $rulesList = new FontFallBackRulesCollection();
  # Erstellen Sie eine Anzahl von Regeln
  $rulesList->add(new FontFallBackRule(0x400, 0x4ff, "Times New Roman"));
  foreach($rulesList as $fallBackRule) {
    # Versuchen, die Fallback-Schriftart "Tahoma" aus den geladenen Regeln zu entfernen
    $fallBackRule->remove("Tahoma");
    # Und um die Regeln für den angegebenen Bereich zu aktualisieren
    if (java_values($fallBackRule->getRangeEndIndex()) >= 0x4000 && java_values($fallBackRule->getRangeStartIndex()) < 0x5000) {
      $fallBackRule->addFallBackFonts("Verdana");
    }
  }
  # Auch können wir vorhandene Regeln aus der Liste entfernen
  if (java_values($rulesList->size()) > 0) {
    $rulesList->remove($rulesList->get_Item(0));
  }
  $pres = new Presentation("input.pptx");
  try {
    # Zuweisen einer vorbereiteten Regel-Liste zur Nutzung
    $pres->getFontsManager()->setFontFallBackRulesCollection($rulesList);
    # Rendering eines Thumbnails unter Verwendung der initialisierten Regel-Sammlung und Speichern als JPEG
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(1.0, 1.0);
    # Speichern Sie das Bild auf der Festplatte im JPEG-Format
    try {
      $slideImage->save("Slide_0.jpg", ImageFormat::Jpeg);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }