Stwórz przeglądarkę prezentacji w .NET
Wprowadzenie
Aspose.Slides dla .NET służy do tworzenia plików prezentacji ze slajdami. Te slajdy można przeglądać, otwierając prezentacje w programie Microsoft PowerPoint, na przykład. Jednak programiści czasami muszą wyświetlić slajdy jako obrazy w preferowanym przeglądarce obrazów lub używać ich w niestandardowej przeglądarce prezentacji. W takich przypadkach Aspose.Slides umożliwia eksportowanie poszczególnych slajdów jako obrazy. Ten artykuł wyjaśnia, jak to zrobić.
Generowanie obrazu SVG ze slajdu
- Utwórz instancję klasy Presentation.
- Pobierz referencję do slajdu po jego indeksie.
- Otwórz strumień pliku.
- Zapisz slajd jako obraz SVG do strumienia pliku.
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);
}
}
Generowanie SVG z niestandardowym identyfikatorem kształtu
Aspose.Slides może być użyty do wygenerowania SVG ze slajdu z niestandardowym identyfikatorem kształtu ID. Aby to osiągnąć, użyj właściwości Id z interfejsu ISvgShape. Klasa CustomSvgShapeFormattingController może zostać użyta do ustawienia identyfikatora kształtu.
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++);
}
}
Utworzenie obrazu miniatury slajdu
Aspose.Slides pomaga generować obrazy miniatur slajdów. Aby wygenerować miniaturę slajdu przy użyciu Aspose.Slides, wykonaj poniższe kroki:
- Utwórz instancję klasy Presentation.
- Pobierz referencję do slajdu po jego indeksie.
- Utwórz obraz miniatury referowanego slajdu w żądanej skali.
- Zapisz obraz miniatury w preferowanym formacie obrazu.
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);
}
}
Utworzenie miniatury slajdu z wymiarami określonymi przez użytkownika
Aby utworzyć obraz miniatury slajdu z wymiarami określonymi przez użytkownika, wykonaj poniższe kroki:
- Utwórz instancję klasy Presentation.
- Pobierz referencję do slajdu po jego indeksie.
- Wygeneruj obraz miniatury referowanego slajdu o określonych wymiarach.
- Zapisz obraz miniatury w preferowanym formacie obrazu.
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);
}
}
Utworzenie miniatury slajdu z notatkami prelegenta
Aby wygenerować miniaturę slajdu z notatkami prelegenta przy użyciu Aspose.Slides, wykonaj poniższe kroki:
- Utwórz instancję klasy RenderingOptions.
- Użyj właściwości
RenderingOptions.SlidesLayoutOptions, aby ustawić położenie notatek prelegenta. - Utwórz instancję klasy Presentation.
- Pobierz referencję do slajdu po jego indeksie.
- Wygeneruj obraz miniatury referowanego slajdu przy użyciu opcji renderowania.
- Zapisz obraz miniatury w preferowanym formacie obrazu.
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);
}
}
Przykład na żywo
Wypróbuj bezpłatną aplikację Aspose.Slides Viewer, aby zobaczyć, co możesz zaimplementować przy użyciu API Aspose.Slides:
FAQ
Czy mogę osadzić przeglądarkę prezentacji w aplikacji webowej ASP.NET?
Tak. Możesz używać Aspose.Slides po stronie serwera do renderowania slajdów jako obrazy lub HTML i wyświetlania ich w przeglądarce. Funkcje nawigacji i powiększania można zaimplementować przy użyciu JavaScript, aby uzyskać interaktywne doświadczenie.
Jaki jest najlepszy sposób wyświetlania slajdów w niestandardowej przeglądarce .NET?
Zalecane podejście polega na renderowaniu każdego slajdu jako obrazu (np. PNG lub SVG) lub konwersji go do HTML przy użyciu Aspose.Slides, a następnie wyświetlaniu wyniku w kontrolce picture box (dla aplikacji desktopowych) lub w kontenerze HTML (dla aplikacji webowych).
Jak obsłużyć duże prezentacje z wieloma slajdami?
W przypadku dużych prezentacji warto rozważyć leniwe ładowanie lub renderowanie slajdów na żądanie. Oznacza to generowanie zawartości slajdu tylko w momencie, gdy użytkownik przechodzi do niego, co zmniejsza zużycie pamięci i czas ładowania.
