Создать просмотрщик презентаций на C#
Обзор
Aspose.Slides for .NET используется для создания файлов презентаций со слайдами. Эти слайды можно просматривать, открывая презентацию в Microsoft PowerPoint, например. Однако разработчикам иногда требуется просматривать слайды в виде изображений в предпочитаемом просмотрщике изображений или использовать их в кастомном просмотрщике презентаций. В таких случаях Aspose.Slides позволяет экспортировать отдельные слайды как изображения. Эта статья объясняет, как это сделать.
Создание SVG‑изображения со слайда
Чтобы создать SVG‑изображение из слайда презентации с помощью Aspose.Slides, выполните следующие действия:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Откройте файловый поток.
- Сохраните слайд как SVG‑изображение в файловый поток.
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);
}
}
Создание SVG с пользовательским ID фигуры
Aspose.Slides можно использовать для создания SVG из слайда с пользовательским ID фигуры. Для этого используйте свойство Id интерфейса ISvgShape. Класс CustomSvgShapeFormattingController позволяет задать ID фигуры.
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++);
}
}
Создание миниатюры слайда
Aspose.Slides помогает генерировать миниатюры слайдов. Чтобы создать миниатюру слайда с помощью Aspose.Slides, выполните следующие действия:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Создайте изображение‑миниатюру указанного слайда в нужном масштабе.
- Сохраните изображение‑миниатюру в предпочитаемом формате изображения.
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);
}
}
Создание миниатюры слайда с пользовательскими размерами
Чтобы создать изображение‑миниатюру слайда с пользовательскими размерами, выполните следующие действия:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Сгенерируйте изображение‑миниатюру указанного слайда с заданными размерами.
- Сохраните изображение‑миниатюру в предпочитаемом формате изображения.
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);
}
}
Создание миниатюры слайда с заметками докладчика
Чтобы создать миниатюру слайда с заметками докладчика с помощью Aspose.Slides, выполните следующие действия:
- Создайте экземпляр класса RenderingOptions .
- Используйте свойство
RenderingOptions.SlidesLayoutOptionsдля установки положения заметок докладчика. - Создайте экземпляр класса Presentation .
- Получите ссылку на слайд по его индексу.
- Сгенерируйте изображение‑миниатюру указанного слайда, используя параметры рендеринга.
- Сохраните изображение‑миниатюру в предпочитаемом формате изображения.
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);
}
}
Рабочий пример
Попробуйте бесплатное приложение Aspose.Slides Viewer — чтобы увидеть, что можно реализовать с помощью API Aspose.Slides:
FAQ
Можно ли встроить просмотрщик презентаций в веб‑приложение ASP.NET?
Да. Вы можете использовать Aspose.Slides на стороне сервера для рендеринга слайдов в виде изображений или HTML и отображать их в браузере. Навигацию и масштабирование можно реализовать с помощью JavaScript для интерактивного взаимодействия.
Как лучше всего отображать слайды в пользовательском .NET‑просмотрщике?
Рекомендуется рендерить каждый слайд как изображение (например, PNG или SVG) или конвертировать его в HTML с помощью Aspose.Slides, после чего показывать результат в элементе picture box (для настольных приложений) или в HTML‑контейнере (для веба).
Как работать с большими презентациями, содержащими много слайдов?
Для больших наборов слайдов рекомендуется использовать отложенную загрузку или рендеринг по запросу. Это означает генерацию содержимого слайда только при переходе к нему, что уменьшает потребление памяти и время загрузки.
