Rendera presentationer med fallback-typsnitt i PHP

Översikt

Aspose.Slides låter dig rendera presentationer med fallback‑typsnittsregler. Den här artikeln visar hur du skapar en samling med fallback‑typsnittsregler, modifierar reglerna genom att ta bort eller lägga till fallback‑typsnitt, och tilldelar samlingen till metoden FontsManager::setFontFallBackRulesCollection.

När samlingen med fallback‑typsnittsregler har tilldelats presentationens FontsManager tillämpas reglerna under operationer som sparande, rendering och konvertering av presentationen. Exemplet demonstrerar hur de konfigurerade reglerna används när en bildminiatyren renderas och sparas som en PNG‑bild.

Rendera en bild med fallback‑typsnittsregler

Följande exempel innehåller dessa steg:

  1. Vi skapar samling med fallback-typsnittsregler.
  2. Ta bort en fallback‑typsnittsregel och addFallBackFonts till en annan regel.
  3. Ställ in regelsamlingen på getFontsManager.getFontFallBackRulesCollection‑metoden.
  4. Med Presentation.save‑metoden kan vi spara presentationen i samma format eller spara den i ett annat format. Efter att samlingen med fallback‑typsnittsregler har ställts in på FontsManager tillämpas dessa regler under alla operationer på presentationen: spara, rendera, konvertera osv.
  # Skapa ny instans av en regelsamling
  $rulesList = new FontFallBackRulesCollection();
  # skapa ett antal regler
  $rulesList->add(new FontFallBackRule(0x400, 0x4ff, "Times New Roman"));
  foreach($rulesList as $fallBackRule) {
    # Försöker ta bort fallback-typsnittet "Tahoma" från laddade regler
    $fallBackRule->remove("Tahoma");
    # Och att uppdatera regler för angivet intervall
    if (java_values($fallBackRule->getRangeEndIndex()) >= 0x4000 && java_values($fallBackRule->getRangeStartIndex()) < 0x5000) {
      $fallBackRule->addFallBackFonts("Verdana");
    }
  }
  # Vi kan också ta bort befintliga regler från listan
  if (java_values($rulesList->size()) > 0) {
    $rulesList->remove($rulesList->get_Item(0));
  }
  $pres = new Presentation("input.pptx");
  try {
    # Tilldelar en förberedd regelsamling för användning
    $pres->getFontsManager()->setFontFallBackRulesCollection($rulesList);
    # Renderar miniatyrbild med den initialiserade regelsamlingen och sparar som JPEG
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(1.0, 1.0);
    # Spara bilden till disk i 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();
    }
  }