Операции low-code с презентациями на Android
Обзор
Пакет com.aspose.slides предоставляет статические вспомогательные классы для обычных операций с презентациями. Эти помощники инкапсулируют часто используемые рабочие процессы объектной модели в целевых методах, позволяя конвертировать или объединять файлы, обрабатывать элементы презентации, собирать фигуры и удалять неиспользуемый контент с меньшим объёмом кода.
Помощники low-code наиболее полезны, когда операция применяется ко всему файлу или презентации и стандартный рабочий процесс удовлетворяет вашим требованиям. Используйте полную Aspose.Slides object model при необходимости тонкого контроля над отдельными слайдами, шаблонами, макетами, фигурами, параметрами экспорта или взаимосвязями между элементами презентации.
Ниже представлена таблица, суммирующая доступные помощники:
| Помощник | Для чего использовать |
|---|---|
| Convert | Конвертация презентации в другой формат с прямым вызовом файл‑в‑файл. |
| Merger | Объединение полных файлов презентаций одинакового формата. |
| ForEach | Выполнение действия для каждого слайда, фигуры, абзаца или части текста. |
| Collect | Получение фигур из всей презентации для повторной обработки или анализа. |
| Compress | Удаление неиспользуемых шаблонов и макетов и уменьшение встроенных данных шрифтов. |
Конвертировать презентацию
Используйте Convert.autoByExtension когда расширение выходного файла достаточно для выбора формата экспорта. Метод открывает исходную презентацию, определяет требуемый формат по пути вывода и записывает результат.
import com.aspose.slides.Convert;
Convert.autoByExtension("input.pptx", "output.pdf");
Класс Convert также предоставляет специализированные методы для вывода в PDF, SVG, JPEG, PNG и TIFF. Используйте полную объектную модель, когда необходимо просмотреть или изменить презентацию перед экспортом или настроить параметр экспорта, который не доступен выбранному помощнику. См. Convert Presentation для рабочих процессов и параметров, специфичных для формата.
Объединить презентации
Используйте Merger.process для объединения полных файлов презентаций одним вызовом. Входные презентации должны иметь один и тот же формат файла.
import com.aspose.slides.Merger;
String[] inputFiles = { "part-1.pptx", "part-2.pptx" };
Merger.process(inputFiles, "merged.pptx");
Помощник подходит, когда все слайды должны быть добавлены к одному результату без индивидуального выбора или переназначения. Используйте полную объектную модель, если нужно объединить выбранные слайды, применить целевой шаблон или макет, явно сохранить разделы или согласовать различные размеры слайдов. См. Merge Presentations для таких сценариев.
Итерировать элементы презентации
Класс ForEach вызывает обратный вызов для каждого запрошенного типа элемента презентации. Он избавляет от вложенных циклов перебора коллекций и удобен для инспекции или изменения форматирования по всей презентации.
Следующий пример использует ForEach.slide, ForEach.shape, ForEach.paragraph, и ForEach.portion для проверки соответствующих элементов:
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
ForEach.slide(presentation, (slide, index) -> {
System.out.println(String.format("Slide %d: %d shapes", index, slide.getShapes().size()));
});
ForEach.shape(presentation, (shape, slide, index) -> {
System.out.println(String.format("Shape %d on %s: %s", index, slide.getClass().getSimpleName(), shape.getName()));
});
ForEach.paragraph(presentation, (paragraph, slide, index) -> {
System.out.println(String.format("Paragraph %d on %s: %s", index, slide.getClass().getSimpleName(), paragraph.getText()));
});
ForEach.portion(presentation, (portion, paragraph, slide, index) -> {
System.out.println(String.format("Portion %d on %s: %s", index, slide.getClass().getSimpleName(), portion.getText()));
});
} finally {
presentation.dispose();
}
По умолчанию перебор фигур и текста по всей презентации включает обычные, шаблонные и макетные слайды. Перегруженные методы с параметром includeNotes позволяют также обрабатывать слайды заметок. Используйте прямые циклы перебора, когда важен порядок обхода, ранний выход, фильтрация до вызова обратного вызова или детальный контроль иерархии.
Собрать фигуры
Используйте Collect.shapes когда требуется коллекция всех фигур в презентации, а не обратный вызов для каждой фигуры. Это полезно, если один и тот же набор будет фильтроваться, подсчитываться или обрабатываться более одного раза.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Iterable<Shape> shapes = Collect.shapes(presentation);
for (Shape shape : shapes) {
System.out.println(String.format("%s: %s", shape.getName(), shape.getClass().getSimpleName()));
}
} finally {
presentation.dispose();
}
Используйте ForEach.shape если каждую фигуру можно обработать сразу и нет необходимости сохранять собранный результат.
Сжать содержимое презентации
Класс Compress может удалять неиспользуемые структурные элементы и уменьшать объём встроенных данных шрифтов:
- Compress.removeUnusedLayoutSlides удаляет макетные слайды, которые не используются ни одним обычным слайдом.
- Compress.removeUnusedMasterSlides удаляет шаблонные слайды, которые больше не используются.
- Compress.compressEmbeddedFonts удаляет неиспользуемые символы из встроенных шрифтов.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Compress.removeUnusedLayoutSlides(presentation);
Compress.removeUnusedMasterSlides(presentation);
Compress.compressEmbeddedFonts(presentation);
presentation.save("compressed.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Удаляйте неиспользуемые макеты до неиспользуемых шаблонов, чтобы шаблон, ставший без ссылки после очистки макетов, также мог быть удалён. Сохраните оптимизированную презентацию в новый файл, если позже могут понадобиться исходные шаблоны, макеты или полные данные встроенных шрифтов. Для получения более подробной информации см. 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 для записи результата.