Maak een presentatieweergave in C++
Introductie
Aspose.Slides for C++ wordt gebruikt om presentatiebestanden met dia’s te maken. Deze dia’s kunnen bekeken worden door presentaties te openen in Microsoft PowerPoint, bijvoorbeeld. Soms moeten ontwikkelaars echter dia’s als afbeeldingen bekijken in hun favoriete beeldviewer of hun eigen presentatieweergave maken. In dergelijke gevallen laat Aspose.Slides u een enkele dia exporteren als afbeelding. Dit artikel beschrijft hoe u dit doet.
Genereer een SVG-afbeelding van een dia
Om een SVG-afbeelding van een presentatiedia te genereren met Aspose.Slides, volgt u de onderstaande stappen:
- Maak een instantie van de Presentation-klasse.
- Haal de dia-referentie op via de index.
- Open een bestandsstream.
- Sla de dia op als een SVG-afbeelding naar de bestandsstream.
auto slideIndex = 0;
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto svgStream = File::Create(u"output.svg");
slide->WriteAsSvg(svgStream);
svgStream->Dispose();
presentation->Dispose();
Genereer een SVG met een aangepaste vorm-ID
Aspose.Slides kan worden gebruikt om een SVG te genereren van een dia met een aangepaste vorm-ID. Gebruik hiervoor de set_Id-methode van ISvgShape. CustomSvgShapeFormattingController kan worden gebruikt om de vorm-ID in te stellen.
auto slideIndex = 0;
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto svgOptions = MakeObject<SVGOptions>();
svgOptions->set_ShapeFormattingController(MakeObject<CustomSvgShapeFormattingController>());
auto svgStream = File::Create(u"output.svg");
slide->WriteAsSvg(svgStream, svgOptions);
svgStream->Dispose();
presentation->Dispose();
class CustomSvgShapeFormattingController : public ISvgShapeFormattingController
{
private:
int m_shapeIndex;
public:
CustomSvgShapeFormattingController(int shapeStartIndex = 0)
{
m_shapeIndex = shapeStartIndex;
}
void FormatShape(SharedPtr<ISvgShape> svgShape, SharedPtr<IShape> shape)
{
svgShape->set_Id(String::Format(u"shape-{0}", m_shapeIndex++));
}
};
Maak een miniatuurafbeelding van een dia
Aspose.Slides helpt u miniatuurafbeeldingen van dia’s te genereren. Om een miniatuur van een dia te genereren met Aspose.Slides, volgt u de onderstaande stappen:
- Maak een instantie van de Presentation-klasse.
- Haal de dia-referentie op via de index.
- Haal de miniatuurafbeelding van de verwijzende dia op met een gedefinieerde schaal.
- Sla de miniatuurafbeelding op in een gewenst afbeeldingsformaat.
auto slideIndex = 0;
auto scaleX = 1;
auto scaleY = scaleX;
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto image = slide->GetImage(scaleX, scaleY);
image->Save(u"output.jpg", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
Maak een miniatuur met door de gebruiker gedefinieerde afmetingen
Om een miniatuurafbeelding van een dia met door de gebruiker gedefinieerde afmetingen te maken, volgt u de onderstaande stappen:
- Maak een instantie van de Presentation-klasse.
- Haal de dia-referentie op via de index.
- Haal de miniatuurafbeelding van de verwijzende dia op met de opgegeven afmetingen.
- Sla de miniatuurafbeelding op in een gewenst afbeeldingsformaat.
auto slideIndex = 0;
auto slideSize = Size(1200, 800);
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto image = slide->GetImage(slideSize);
image->Save(u"output.jpg", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
Maak een miniatuur met spreker-notities
Om de miniatuur van een dia met spreker-notities te genereren met Aspose.Slides, volgt u de onderstaande stappen:
- Maak een instantie van de RenderingOptions-klasse.
- Gebruik de
RenderingOptions.set_SlidesLayoutOptions-methode om de positie van spreker-notities in te stellen. - Maak een instantie van de Presentation-klasse.
- Haal de dia-referentie op via de index.
- Haal de miniatuurafbeelding van de verwijzende dia op met de renderopties.
- Sla de miniatuurafbeelding op in een gewenst afbeeldingsformaat.
auto slideIndex = 0;
auto layoutingOptions = MakeObject<NotesCommentsLayoutingOptions>();
layoutingOptions->set_NotesPosition(NotesPositions::BottomTruncated);
auto renderingOptions = MakeObject<RenderingOptions>();
renderingOptions->set_SlidesLayoutOptions(layoutingOptions);
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto image = slide->GetImage(renderingOptions);
image->Save(u"output.png", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
Live-voorbeeld
U kunt de gratis app Aspose.Slides Viewer uitproberen om te zien wat u kunt implementeren met de Aspose.Slides-API:

FAQ
Kan ik een presentatieweergave inbedden in een webapplicatie?
Ja. U kunt Aspose.Slides aan de serverzijde gebruiken om dia’s te renderen als afbeeldingen of HTML en deze in de browser weer te geven. 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 te renderen als een afbeelding (bijvoorbeeld PNG of SVG) of deze te converteren naar HTML met Aspose.Slides, en vervolgens de output weer te geven in een picture box (voor desktop) of HTML-container (voor web).
Hoe ga ik om met grote presentaties met veel dia’s?
Voor grote decks kunt u overwegen om dia’s lazy-loading of on-demand te renderen. Dit betekent dat u de inhoud van een dia alleen genereert wanneer de gebruiker er naartoe navigeert, waardoor geheugen- en laadtijd worden verminderd.