Presentaties renderen met fallback-lettertypen in PHP

Overzicht

Aspose.Slides stelt u in staat om presentaties weer te geven met behulp van fallback-lettertype‑regels. Dit artikel laat zien hoe u een collectie van fallback‑lettertype‑regels maakt, de regels wijzigt door fallback‑lettertypen te verwijderen of toe te voegen, en de collectie toewijst aan de FontsManager::setFontFallBackRulesCollection‑methode.

Zodra de collectie van fallback‑lettertype‑regels is toegewezen aan de FontsManager van de presentatie, worden de regels toegepast tijdens handelingen zoals opslaan, renderen en het converteren van de presentatie. Het voorbeeld laat zien hoe de geconfigureerde regels te gebruiken bij het renderen van een miniatuur van een dia en het opslaan ervan als PNG‑afbeelding.

Slide weergeven met fallback‑lettertype‑regels

Het volgende voorbeeld omvat deze stappen:

  1. maak collectie van fallback‑lettertype‑regels.
  2. Verwijderen een fallback‑lettertype‑regel en addFallBackFonts aan een andere regel.
  3. Stel de regels‑collectie in op getFontsManager.getFontFallBackRulesCollection‑methode.
  4. Met de Presentation.save‑methode kunnen we de presentatie opslaan in hetzelfde formaat, of in een ander formaat. Nadat de fallback‑lettertype‑regels‑collectie is ingesteld op FontsManager, worden deze regels toegepast tijdens elke bewerking op de presentatie: opslaan, renderen, converteren, enzovoort.
  # Maak een nieuw exemplaar van een regelsverzameling
  $rulesList = new FontFallBackRulesCollection();
  # Maak een aantal regels
  $rulesList->add(new FontFallBackRule(0x400, 0x4ff, "Times New Roman"));
  foreach($rulesList as $fallBackRule) {
    # Proberen om fallback-lettertype "Tahoma" uit de geladen regels te verwijderen
    $fallBackRule->remove("Tahoma");
    # En de regels bijwerken voor het opgegeven bereik
    if (java_values($fallBackRule->getRangeEndIndex()) >= 0x4000 && java_values($fallBackRule->getRangeStartIndex()) < 0x5000) {
      $fallBackRule->addFallBackFonts("Verdana");
    }
  }
  # Ook kunnen we bestaande regels uit de lijst verwijderen
  if (java_values($rulesList->size()) > 0) {
    $rulesList->remove($rulesList->get_Item(0));
  }
  $pres = new Presentation("input.pptx");
  try {
    # Een voorbereide regelslijst toewijzen voor gebruik
    $pres->getFontsManager()->setFontFallBackRulesCollection($rulesList);
    # Miniatuur renderen met behulp van de geïnitialiseerde regelsverzameling en opslaan als JPEG
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(1.0, 1.0);
    # De afbeelding opslaan op schijf in JPEG-formaat
    try {
      $slideImage->save("Slide_0.jpg", ImageFormat::Jpeg);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }