Операции low-code презентаций в .NET
Обзор
Пространство имён Aspose.Slides.LowCode предоставляет статические вспомогательные классы для общих операций с презентациями. Эти вспомогательные классы инкапсулируют часто используемые рабочие процессы объектной модели в специализированных методах, позволяя конвертировать или объединять файлы, обрабатывать элементы презентации, собирать фигуры и удалять неиспользуемый контент с меньшим количеством кода.
Вспомогательные функции low‑code наиболее полезны, когда операция применяется ко всему файлу или презентации и стандартный рабочий процесс соответствует вашим требованиям. Используйте полную Aspose.Slides object model при необходимости детального управления отдельными слайдами, шаблонами, макетами, фигурами, параметрами экспорта или взаимосвязями между элементами презентации.
Ниже представлена таблица с доступными вспомогательными классами:
| Помощник | Для чего использовать |
|---|---|
| Convert | Конвертация презентации в другой формат с прямым вызовом файл‑в‑файл. |
| Merger | Объединение полных файлов презентаций одинакового формата. |
| ForEach | Выполнение действия для каждого слайда, фигуры, абзаца или части текста. |
| Collect | Получение фигур из всей презентации для повторной обработки или анализа. |
| Compress | Удаление неиспользуемых шаблонов и макетов и уменьшение встроенных данных шрифтов. |
Конвертация презентации
Используйте Convert.AutoByExtension когда расширение выходного файла достаточно для выбора формата экспорта. Метод открывает исходную презентацию, определяет требуемый формат по пути к выходному файлу и записывает результат.
using Aspose.Slides.LowCode;
Convert.AutoByExtension("input.pptx", "output.pdf");
Класс Convert также предоставляет специальные методы для вывода в PDF, SVG, JPEG, PNG и TIFF. Используйте полную объектную модель, когда необходимо изучить или изменить презентацию перед экспортом или настроить параметр экспорта, который не доступен в выбранном помощнике. См. Convert Presentation для рабочих процессов и параметров, специфичных для форматов.
Объединение презентаций
Используйте Merger.Process для объединения полных файлов презентаций одним вызовом. Входные презентации должны иметь одинаковый файловый формат.
using Aspose.Slides.LowCode;
var inputFiles = new[] { "part-1.pptx", "part-2.pptx" };
Merger.Process(inputFiles, "merged.pptx");
Этот помощник подходит, когда все слайды должны быть добавлены к одному результату без индивидуального выбора или переопределения. Используйте полную объектную модель, когда нужно объединять выбранные слайды, применять целевой шаблон или макет, явно сохранять секции или согласовать разные размеры слайдов. См. Merge Presentations для таких сценариев.
Итерация по элементам презентации
Класс ForEach вызывает обратный вызов для каждого запрошенного типа элемента презентации. Он избавляет от вложенных циклов перебора коллекций и удобен для проверки или изменения параметров по всей презентации.
В следующем примере используются ForEach.Slide, ForEach.Shape, ForEach.Paragraph и ForEach.Portion для проверки соответствующих элементов:
using System;
using Aspose.Slides;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
ForEach.Slide(presentation, (slide, index) =>
{
Console.WriteLine($"Slide {index}: {slide.Shapes.Count} shapes");
});
ForEach.Shape(presentation, (shape, slide, index) =>
{
Console.WriteLine($"Shape {index} on {slide.GetType().Name}: {shape.Name}");
});
ForEach.Paragraph(presentation, (paragraph, slide, index) =>
{
Console.WriteLine($"Paragraph {index} on {slide.GetType().Name}: {paragraph.Text}");
});
ForEach.Portion(presentation, (portion, paragraph, slide, index) =>
{
Console.WriteLine($"Portion {index} on {slide.GetType().Name}: {portion.Text}");
});
По умолчанию обход всех фигур и текста в презентации включает обычные, шаблонные и макетные слайды. Перегрузки с параметром includeNotes могут также обрабатывать слайды заметок. Используйте прямые циклы перебора, когда важен порядок обхода, ранний выход, фильтрация перед вызовом обратного вызова или детальный контроль родитель‑дочерних отношений.
Сбор фигур
Используйте Collect.Shapes когда нужен набор всех фигур в презентации, а не обратный вызов для каждой фигуры. Это удобно, если один и тот же набор будет фильтроваться, подсчитываться или обрабатываться более одного раза.
using System;
using Aspose.Slides;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
var shapes = Collect.Shapes(presentation);
foreach (var shape in shapes)
{
Console.WriteLine($"{shape.Name}: {shape.GetType().Name}");
}
Применяйте ForEach.Shape вместо этого, когда каждую фигуру можно обработать сразу и нет необходимости сохранять собранный результат.
Сжатие содержимого презентации
Класс Compress может удалять неиспользуемые структурные элементы и уменьшать объём встроенных шрифтов:
- Compress.RemoveUnusedLayoutSlides удаляет макетные слайды, на которые не ссылаются обычные слайды.
- Compress.RemoveUnusedMasterSlides удаляет шаблонные слайды, которые больше не используются.
- Compress.CompressEmbeddedFonts удаляет неиспользуемые символы из встроенных шрифтов.
using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
Compress.RemoveUnusedLayoutSlides(presentation);
Compress.RemoveUnusedMasterSlides(presentation);
Compress.CompressEmbeddedFonts(presentation);
presentation.Save("compressed.pptx", SaveFormat.Pptx);
Сначала удаляйте неиспользуемые макетные слайды, а затем неиспользуемые шаблоны, чтобы шаблон, ставший неиспользуемым после очистки макетов, также был удалён. Сохраните оптимизированную презентацию в новый файл, если позже могут понадобиться исходные шаблоны, макеты или полные данные встроенных шрифтов. Подробнее см. Slide Master и Embedded Font.
FAQ
Когда следует использовать low‑code API вместо полной объектной модели?
Используйте low‑code помощники, когда стандартная операция применяется к целому файлу или презентации и не требует детального управления отдельными элементами. Применяйте полную объектную модель, если необходимо выбрать конкретные слайды, управлять связями шаблонов и макетов, изучать промежуточное состояние или настраивать поведение, которое помощник не раскрывает.
Может ли Merger объединять презентации разных файловых форматов?
Нет. Merger.Process требует, чтобы входные презентации имели один и тот же формат. Сначала преобразуйте входные файлы в общий формат, например с помощью Convert.AutoByExtension, а затем объедините полученные файлы.
Обрабатывает ли ForEach шаблонные, макетные и слайды заметок?
ForEach.Slide проходит только по обычным слайдам презентации. По всей презентации ForEach.Shape, ForEach.Paragraph и ForEach.Portion включают обычные, шаблонные и макетные слайды по умолчанию. Используйте их перегрузки с параметром includeNotes, установленным в true, чтобы включить слайды заметок.
В чём разница между ForEach.Shape и Collect.Shapes?
Применяйте ForEach.Shape для непосредственной обработки каждой фигуры через обратный вызов. Используйте Collect.Shapes когда нужен перечисляемый результат, который можно сохранить, отфильтровать, подсчитать или пройти несколько раз.
Всегда ли Compress уменьшает размер файла презентации?
Не обязательно. Результат зависит от наличия неиспользуемых макетов, шаблонов или встроенных шрифтов с неиспользуемыми символами. Если таких элементов нет, соответствующие операции Compress могут не уменьшить размер файла.
Сохраняются ли изменения, внесённые ForEach или Compress, автоматически?
Нет. Эти помощники работают с загруженным объектом Presentation в памяти. После изменения элементов в обратном вызове ForEach или выполнения Compress вызовите Presentation.Save для записи результата.