Maak een presentatiewiewer in PHP

Inleiding

Aspose.Slides for PHP via Java wordt gebruikt om presentatiebestanden met dia’s te maken. Deze dia’s kunnen worden bekeken door presentaties te openen in Microsoft PowerPoint, bijvoorbeeld. Soms moeten ontwikkelaars echter dia’s als afbeeldingen bekijken in hun favoriete afbeeldingsviewer of hun eigen presentatiewiewer maken. In dergelijke gevallen stelt Aspose.Slides u in staat om een enkele dia als afbeelding te exporteren. Dit artikel beschrijft hoe u dit doet.

Genereer een SVG-afbeelding van een dia

Om een SVG-afbeelding van een presentatiedia met Aspose.Slides te genereren, volgt u de onderstaande stappen:

  1. Maak een instantie van de Presentation klasse.
  2. Haal de dia-referentie op op basis van de index.
  3. Open een bestandsstroom.
  4. Sla de dia op als een SVG-afbeelding naar de bestandsstroom.
$slideIndex = 0;

$presentation = new Presentation("sample.pptx");
$slide = $presentation->getSlides()->get_Item($slideIndex);

$svgStream = new Java("java.io.FileOutputStream", "output.svg");
$slide->writeAsSvg($svgStream);
$svgStream->close();

$presentation->dispose();

Genereer een SVG met een aangepaste vorm‑ID

Aspose.Slides kan worden gebruikt om een SVG van een dia met een aangepaste vorm‑ID te genereren. Gebruik hiervoor de setId‑methode van SvgShape. CustomSvgShapeFormattingController kan worden gebruikt om de vorm‑ID in te stellen.

$slideIndex = 0;

$presentation = new Presentation("sample.pptx");
$slide = $presentation->getSlides()->get_Item($slideIndex);

$shapeFormattingController = java_closure(new CustomSvgShapeFormattingController(0), null, java("com.aspose.slides.ISvgShapeFormattingController"));

$svgOptions = new SVGOptions();
$svgOptions->setShapeFormattingController($shapeFormattingController);

$svgStream = new Java("java.io.FileOutputStream", "output.svg");
$slide->writeAsSvg($svgStream, $svgOptions);
$svgStream->close();

$presentation->dispose();
class CustomSvgShapeFormattingController {
    private $m_shapeIndex;

    public function __construct($shapeStartIndex) {
        $this->m_shapeIndex = $shapeStartIndex;
    }

    public function formatShape($svgShape, $shape) {
        $svgShape->setId(sprintf("shape-%d", $m_shapeIndex++));
    }
}

Maak een miniatuurafbeelding van een dia

Aspose.Slides helpt u miniatuurafbeeldingen van dia’s te genereren. Om een miniatuur van een dia met Aspose.Slides te genereren, volgt u de onderstaande stappen:

  1. Maak een instantie van de Presentation klasse.
  2. Haal de dia-referentie op op basis van de index.
  3. Haal de miniatuurafbeelding van de opgegeven dia op met een gedefinieerde schaal.
  4. Sla de miniatuurafbeelding op in een gewenst afbeeldingformaat.
$slideIndex = 0;
$scaleX = 1.0;
$scaleY = $scaleX;

$presentation = new Presentation("sample.pptx");
$slide = $presentation->getSlides()->get_Item($slideIndex);

$image = $slide->getImage($scaleX, $scaleY);
$image->save("output.jpg", ImageFormat::Jpeg);
$image->dispose();

$presentation->dispose();

Maak een dia‑miniatuur met gebruikersgedefinieerde afmetingen

Om een dia‑miniatuur met gebruikersgedefinieerde afmetingen te maken, volgt u de onderstaande stappen:

  1. Maak een instantie van de Presentation klasse.
  2. Haal de dia-referentie op op basis van de index.
  3. Haal de miniatuurafbeelding van de opgegeven dia op met de gedefinieerde afmetingen.
  4. Sla de miniatuurafbeelding op in een gewenst afbeeldingformaat.
$slideIndex = 0;
$slideSize = new Java("java.awt.Dimension", 1200, 800);

$presentation = new Presentation("sample.pptx");
$slide = $presentation->getSlides()->get_Item($slideIndex);

$image = $slide->getImage($slideSize);
$image->save("output.jpg", ImageFormat::Jpeg);
$image->dispose();

$presentation->dispose();

Maak een dia‑miniatuur met sprekersnotities

Om de miniatuur van een dia met sprekersnotities te genereren met Aspose.Slides, volgt u de onderstaande stappen:

  1. Maak een instantie van de RenderingOptions klasse.
  2. Gebruik de RenderingOptions.setSlidesLayoutOptions‑methode om de positie van sprekersnotities in te stellen.
  3. Maak een instantie van de Presentation klasse.
  4. Haal de dia-referentie op op basis van de index.
  5. Haal de miniatuurafbeelding van de opgegeven dia op met de rendering‑opties.
  6. Sla de miniatuurafbeelding op in een gewenst afbeeldingformaat.
$slideIndex = 0;

$layoutingOptions = new NotesCommentsLayoutingOptions();
$layoutingOptions->setNotesPosition(NotesPositions::BottomTruncated);

$renderingOptions = new RenderingOptions();
$renderingOptions->setSlidesLayoutOptions($layoutingOptions);

$presentation = new Presentation("sample.pptx");
$slide = $presentation->getSlides()->get_Item($slideIndex);

$image = $slide->getImage($renderingOptions);
$image->save("output.png", ImageFormat::Png);
$image->dispose();

$presentation->dispose();

Live‑voorbeeld

U kunt de gratis app Aspose.Slides Viewer proberen om te zien wat u kunt implementeren met de Aspose.Slides‑API:

Online PowerPoint-viewer

FAQ

Kan ik een presentatiewiewer in een webapplicatie insluiten?

Ja. U kunt Aspose.Slides aan de serverkant gebruiken om dia’s als afbeeldingen of HTML weer te geven en ze in de browser te tonen. Navigatie‑ en zoomfuncties kunnen met JavaScript worden geïmplementeerd voor een interactieve ervaring.

Wat is de beste manier om dia’s weer te geven in een aangepaste viewer?

De aanbevolen aanpak is om elke dia weer te geven als een afbeelding (bijv. PNG of SVG) of deze met Aspose.Slides naar HTML te converteren, en vervolgens de uitvoer weer te geven in een afbeeldingsvak (voor desktop) of een HTML‑container (voor web).

Hoe ga ik om met grote presentaties met veel dia’s?

Voor grote sets kunt u overwegen om dia’s lazy‑loading of on‑demand te renderen. Dit betekent dat de inhoud van een dia alleen wordt gegenereerd wanneer de gebruiker er naartoe navigeert, waardoor geheugen‑ en laadtijd worden verminderd.