Crea un visualizzatore di presentazioni in C++
Introduzione
Aspose.Slides per C++ viene utilizzato per creare file di presentazione con diapositive. Queste diapositive possono essere visualizzate aprendo le presentazioni in Microsoft PowerPoint, ad esempio. Tuttavia, a volte gli sviluppatori potrebbero aver bisogno di visualizzare le diapositive come immagini nel visualizzatore di immagini preferito o di creare il proprio visualizzatore di presentazioni. In tali casi, Aspose.Slides consente di esportare una singola diapositiva come immagine. Questo articolo descrive come farlo.
Generare un’immagine SVG da una diapositiva
Per generare un’immagine SVG da una diapositiva di una presentazione con Aspose.Slides, seguire i passaggi seguenti:
- Creare un’istanza della classe Presentation.
- Ottenere il riferimento alla diapositiva tramite il suo indice.
- Aprire uno stream di file.
- Salvare la diapositiva come immagine SVG nello stream del file.
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();
Generare un SVG con ID di forma personalizzato
Aspose.Slides può essere utilizzato per generare un SVG da una diapositiva con un ID di forma personalizzato. Per fare ciò, utilizzare il metodo set_Id dell’interfaccia ISvgShape. CustomSvgShapeFormattingController può essere usato per impostare l’ID della forma.
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++));
}
};
Creare un’immagine miniatura di una diapositiva
Aspose.Slides aiuta a generare immagini miniature delle diapositive. Per generare una miniatura di una diapositiva usando Aspose.Slides, seguire i passaggi seguenti:
- Creare un’istanza della classe Presentation.
- Ottenere il riferimento alla diapositiva tramite il suo indice.
- Ottenere l’immagine miniatura della diapositiva di riferimento a una scala definita.
- Salvare l’immagine miniatura in qualsiasi formato immagine desiderato.
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();
Creare una miniatura della diapositiva con dimensioni definite dall’utente
Per creare un’immagine miniatura di una diapositiva con dimensioni definite dall’utente, seguire i passaggi seguenti:
- Creare un’istanza della classe Presentation.
- Ottenere il riferimento alla diapositiva tramite il suo indice.
- Ottenere l’immagine miniatura della diapositiva di riferimento con le dimensioni definite.
- Salvare l’immagine miniatura in qualsiasi formato immagine desiderato.
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();
Creare una miniatura della diapositiva con note del relatore
Per generare la miniatura di una diapositiva con le note del relatore usando Aspose.Slides, seguire i passaggi seguenti:
- Creare un’istanza della classe RenderingOptions.
- Utilizzare il metodo
RenderingOptions.set_SlidesLayoutOptionsper impostare la posizione delle note del relatore. - Creare un’istanza della classe Presentation.
- Ottenere il riferimento alla diapositiva tramite il suo indice.
- Ottenere l’immagine miniatura della diapositiva di riferimento con le opzioni di rendering.
- Salvare l’immagine miniatura in qualsiasi formato immagine desiderato.
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();
Esempio live
È possibile provare l’app gratuita Aspose.Slides Viewer per vedere cosa si può implementare con l’API di Aspose.Slides:

FAQ
Posso incorporare un visualizzatore di presentazioni in un’applicazione web?
Sì. È possibile utilizzare Aspose.Slides sul lato server per rendere le diapositive come immagini o HTML e visualizzarle nel browser. Le funzionalità di navigazione e zoom possono essere implementate con JavaScript per un’esperienza interattiva.
Qual è il modo migliore per visualizzare le diapositive all’interno di un visualizzatore personalizzato?
L’approccio consigliato è rendere ogni diapositiva come immagine (ad es., PNG o SVG) o convertirla in HTML usando Aspose.Slides, quindi visualizzare l’output all’interno di un picture box (per desktop) o di un contenitore HTML (per il web).
Come gestisco presentazioni di grandi dimensioni con molte diapositive?
Per presentazioni di grandi dimensioni, considerare il caricamento lazy o il rendering su richiesta delle diapositive. Ciò significa generare il contenuto di una diapositiva solo quando l’utente vi accede, riducendo l’utilizzo di memoria e i tempi di caricamento.