Просмотрщик презентаций
Aspose.Slides для .NET используется для создания файлов презентаций, состоящих из слайдов. Эти слайды можно просмотреть, открыв презентации с помощью Microsoft PowerPoint. Но иногда разработчикам также нужно просматривать слайды как изображения в любимом просмотрщике изображений или создать свой собственный просмотрщик презентаций. В таких случаях Aspose.Slides для .NET позволяет экспортировать отдельный слайд в изображение. Эта статья описывает, как это сделать.
Прямой пример
Вы можете попробовать бесплатное приложение Aspose.Slides Viewer, чтобы увидеть, что вы можете реализовать с помощью API Aspose.Slides:
Генерация SVG изображения из слайда
Чтобы сгенерировать SVG изображение из любого нужного слайда с помощью Aspose.Slides.PPTX для .NET, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на нужный слайд, используя его ID или индекс.
- Получите SVG изображение в памяти.
- Сохраните память в файл.
// Создайте экземпляр класса Presentation, представляющего файл презентации
using (Presentation pres = new Presentation("CreateSlidesSVGImage.pptx"))
{
// Получите доступ к первому слайду
ISlide sld = pres.Slides[0];
// Создайте объект памяти
MemoryStream SvgStream = new MemoryStream();
// Генерация SVG изображения слайда и сохранение в памяти
sld.WriteAsSvg(SvgStream);
SvgStream.Position = 0;
// Сохраните поток памяти в файл
using (Stream fileStream = System.IO.File.OpenWrite("Aspose_out.svg"))
{
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = SvgStream.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, len);
}
}
SvgStream.Close();
}
Генерация SVG с пользовательскими идентификаторами форм
Aspose.Slides для .NET может использоваться для генерации SVG из слайда с пользовательским идентификатором формы. Для этого используйте свойство ID из ISvgShape, которое представляет пользовательский идентификатор форм в сгенерированном SVG. Можно использовать CustomSvgShapeFormattingController для установки идентификатора формы.
using (Presentation pres = new Presentation("pptxFileName.pptx"))
{
using (FileStream stream = new FileStream(outputPath, FileMode.OpenOrCreate))
{
SVGOptions svgOptions = new SVGOptions
{
ShapeFormattingController = new CustomSvgShapeFormattingController()
};
pres.Slides[0].WriteAsSvg(stream, 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 для .NET помогает вам генерировать эскизы изображений слайдов. Чтобы создать эскиз любого нужного слайда, используя Aspose.Slides для .NET:
- Создайте экземпляр класса Presentation.
- Получите ссылку на любой нужный слайд, используя его ID или индекс.
- Получите изображение эскиза соответствующего слайда на указанном масштабе.
- Сохраните изображение эскиза в любом нужном формате.
// Создайте экземпляр класса Presentation, представляющего файл презентации
using (Presentation pres = new Presentation("ThumbnailFromSlide.pptx"))
{
// Получите доступ к первому слайду
ISlide sld = pres.Slides[0];
// Создайте изображение полного масштаба
Bitmap bmp = sld.GetThumbnail(1f, 1f);
// Сохраните изображение на диск в формате JPEG
bmp.Save("Thumbnail_out.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
Создание миниатюры с заданными пользователем размерами
- Создайте экземпляр класса Presentation.
- Получите ссылку на любой нужный слайд, используя его ID или индекс.
- Получите изображение эскиза соответствующего слайда на указанном масштабе.
- Сохраните изображение эскиза в любом нужном формате.
// Создайте экземпляр класса Presentation, представляющего файл презентации
using (Presentation pres = new Presentation("ThumbnailWithUserDefinedDimensions.pptx"))
{
// Получите доступ к первому слайду
ISlide sld = pres.Slides[0];
// Пользовательские размеры
int desiredX = 1200;
int desiredY = 800;
// Получение масштабированных значений X и Y
float ScaleX = (float)(1.0 / pres.SlideSize.Size.Width) * desiredX;
float ScaleY = (float)(1.0 / pres.SlideSize.Size.Height) * desiredY;
// Создайте изображение полного масштаба
Bitmap bmp = sld.GetThumbnail(ScaleX, ScaleY);
// Сохраните изображение на диск в формате JPEG
bmp.Save("Thumbnail2_out.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
Создание миниатюры из слайда в режиме заметок
Чтобы создать эскиз любого нужного слайда в режиме заметок с использованием Aspose.Slides для .NET:
- Создайте экземпляр класса Presentation.
- Получите ссылку на любой нужный слайд, используя его ID или индекс.
- Получите изображение эскиза соответствующего слайда на указанном масштабе в режиме заметок.
- Сохраните изображение эскиза в любом нужном формате.
Приведенный ниже фрагмент кода генерирует миниатюру первого слайда презентации в режиме заметок.
// Создайте экземпляр класса Presentation, представляющего файл презентации
using (Presentation pres = new Presentation("ThumbnailFromSlideInNotes.pptx"))
{
// Получите доступ к первому слайду
ISlide sld = pres.Slides[0];
// Пользовательские размеры
int desiredX = 1200;
int desiredY = 800;
// Получение масштабированных значений X и Y
float ScaleX = (float)(1.0 / pres.SlideSize.Size.Width) * desiredX;
float ScaleY = (float)(1.0 / pres.SlideSize.Size.Height) * desiredY;
// Создайте изображение полного масштаба
Bitmap bmp = sld.GetThumbnail(ScaleX, ScaleY);
// Сохраните изображение на диск в формате JPEG
bmp.Save("Notes_tnail_out.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}