Creare un visualizzatore di presentazioni in .NET
Introduzione
Aspose.Slides per .NET viene utilizzato per creare file di presentazione con diapositive. Queste diapositive possono essere visualizzate aprendo le presentazioni in Microsoft PowerPoint, ad esempio. Tuttavia, gli sviluppatori a volte hanno bisogno di visualizzare le diapositive come immagini nel loro visualizzatore di immagini preferito o di usarle in un visualizzatore di presentazioni personalizzato. In questi casi, Aspose.Slides consente di esportare singole diapositive come immagini. Questo articolo spiega come farlo.
Generare un’immagine SVG da una diapositiva
- Crea un’istanza della classe Presentation.
- Ottieni un riferimento alla diapositiva tramite il suo indice.
- Apri un flusso di file.
- Salva la diapositiva come immagine SVG nel flusso di file.
int slideIndex = 0;
using (Presentation presentation = new Presentation("sample.pptx"))
{
ISlide slide = presentation.Slides[slideIndex];
using (FileStream svgStream = File.Create("output.svg"))
{
slide.WriteAsSvg(svgStream);
}
}
Generare un SVG con un ID Forma Personalizzato
Aspose.Slides può essere usato per generare un SVG da una diapositiva con un ID forma personalizzato. Per ottenere ciò, utilizza la proprietà Id dell’interfaccia ISvgShape. La classe CustomSvgShapeFormattingController può essere usata per impostare l’ID della forma.
int slideIndex = 0;
using (Presentation presentation = new Presentation("sample.odp"))
{
ISlide slide = presentation.Slides[slideIndex];
SVGOptions svgOptions = new SVGOptions
{
ShapeFormattingController = new CustomSvgShapeFormattingController()
};
using (FileStream svgStream = File.Create("output.svg"))
{
slide.WriteAsSvg(svgStream, svgOptions);
}
}
class CustomSvgShapeFormattingController : ISvgShapeFormattingController
{
private int m_shapeIndex;
public CustomSvgShapeFormattingController(int shapeStartIndex = 0)
{
m_shapeIndex = shapeStartIndex;
}
public void FormatShape(ISvgShape svgShape, IShape shape)
{
svgShape.Id = string.Format("shape-{0}", m_shapeIndex++);
}
}
Creare un’immagine miniatura di una diapositiva
Aspose.Slides ti aiuta a generare immagini miniatura delle diapositive. Per generare una miniatura di una diapositiva usando Aspose.Slides, segui i passaggi seguenti:
- Crea un’istanza della classe Presentation.
- Ottieni un riferimento alla diapositiva tramite il suo indice.
- Crea un’immagine miniatura della diapositiva di riferimento alla scala desiderata.
- Salva l’immagine miniatura nel formato immagine preferito.
int slideIndex = 0;
float scaleX = 1;
float scaleY = scaleX;
using (Presentation presentation = new Presentation("sample.pptx"))
{
ISlide slide = presentation.Slides[slideIndex];
using (IImage image = slide.GetImage(scaleX, scaleY))
{
image.Save("output.jpg", ImageFormat.Jpeg);
}
}
Creare una miniatura di diapositiva con dimensioni definite dall’utente
Per creare un’immagine miniatura di diapositiva con dimensioni definite dall’utente, segui i passaggi seguenti:
- Crea un’istanza della classe Presentation.
- Ottieni un riferimento alla diapositiva tramite il suo indice.
- Genera un’immagine miniatura della diapositiva di riferimento con le dimensioni specificate.
- Salva l’immagine miniatura nel formato immagine preferito.
int slideIndex = 0;
Size slideSize = new Size(1200, 800);
using (Presentation presentation = new Presentation("sample.odp"))
{
ISlide slide = presentation.Slides[slideIndex];
using (IImage image = slide.GetImage(slideSize))
{
image.Save("output.jpg", ImageFormat.Jpeg);
}
}
Creare una miniatura di diapositiva con note del relatore
Per generare una miniatura di una diapositiva con note del relatore usando Aspose.Slides, segui i passaggi seguenti:
- Crea un’istanza della classe RenderingOptions.
- Usa la proprietà
RenderingOptions.SlidesLayoutOptionsper impostare la posizione delle note del relatore. - Crea un’istanza della classe Presentation.
- Ottieni un riferimento alla diapositiva tramite il suo indice.
- Genera un’immagine miniatura della diapositiva di riferimento usando le opzioni di rendering.
- Salva l’immagine miniatura nel formato immagine preferito.
int slideIndex = 0;
RenderingOptions renderingOptions = new RenderingOptions
{
SlidesLayoutOptions = new NotesCommentsLayoutingOptions
{
NotesPosition = NotesPositions.BottomTruncated
}
};
using (Presentation presentation = new Presentation("sample.pptx"))
{
ISlide slide = presentation.Slides[slideIndex];
using (IImage image = slide.GetImage(renderingOptions))
{
image.Save("output.png", ImageFormat.Png);
}
}
Esempio live
Prova l’app gratuita Aspose.Slides Viewer per vedere cosa puoi implementare con l’API di Aspose.Slides:
FAQ
Posso incorporare un visualizzatore di presentazioni in un’applicazione web ASP.NET?
Sì. Puoi usare Aspose.Slides sul lato server per renderizzare 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 .NET personalizzato?
Il metodo consigliato è renderizzare ogni diapositiva come immagine (ad esempio 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 gestire presentazioni di grandi dimensioni con molte diapositive?
Per presentazioni di grandi dimensioni, valuta il lazy-loading o il rendering on-demand delle diapositive. Questo significa generare il contenuto di una diapositiva solo quando l’utente vi naviga, riducendo l’uso della memoria e i tempi di caricamento.
