Получение и обновление свойств представления презентации в Python через Java
Введение
Обычный вид состоит из трёх областей содержимого: самого слайда, боковой области содержимого и нижней области содержимого. Свойства обычного вида описывают расположение этих областей. Эта информация позволяет приложению сохранять состояние представления в файл, так что при повторном открытии вид будет находиться в том же состоянии, в котором презентация была сохранена в последний раз.
Метод ViewProperties.getNormalViewProperties был добавлен для предоставления доступа к свойствам обычного вида презентации.
Классы NormalViewProperties и NormalViewRestoredProperties и перечисление SplitterBarStateType были добавлены.
О NormalViewProperties
Представляет свойства обычного вида.
Методы getShowOutlineIcons и setShowOutlineIcons указывают, следует ли приложению показывать значки при отображении контурного содержимого в любой из областей обычного режима просмотра.
Методы getSnapVerticalSplitter и setSnapVerticalSplitter задают, должен ли вертикальный разделитель переходить в минимизированное состояние, когда боковая область достаточно мала.
Методы getPreferSingleView и setPreferSingleView определяют, предпочитает ли пользователь видеть одну область содержимого во весь экран вместо стандартного обычного вида с тремя областями. При включении приложение может отобразить одну из областей содержимого на всём окне.
Методы getVerticalBarState и getHorizontalBarState задают состояние, в котором должна отображаться горизонтальная или вертикальная полоса разделителя. Горизонтальная полоса разделяет слайд и область содержимого под слайдом; вертикальная полоса разделяет слайд и боковую область содержимого. Возможные значения: SplitterBarStateType.Minimized, SplitterBarStateType.Maximized и SplitterBarStateType.Restored.
Методы getRestoredLeft и getRestoredTop определяют размеры верхней или боковой области слайда обычного вида, когда значение SplitterBarStateType.Restored применяется к getVerticalBarState и getHorizontalBarState соответственно.
О восстановлении NormalViewProperties
Определяет размеры области слайда (ширина, когда это дочерний элемент getRestoredTop, высота, когда это дочерний элемент getRestoredLeft) обычного вида, когда область имеет переменный восстановленный размер (не минимизирована и не максимизирована).
Метод getDimensionSize задаёт размер области слайда (ширина, когда это дочерний элемент getRestoredTop, высота, когда это дочерний элемент getRestoredLeft).
Метод getAutoAdjust указывает, должна ли боковая область содержимого компенсировать новый размер при изменении размеров окна, содержащего представление в приложении.
Ниже показан пример, как получить доступ к ViewProperties.getNormalViewProperties для презентации.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SplitterBarStateType
presentation = Presentation()
try:
normal_view_properties = presentation.getViewProperties().getNormalViewProperties()
normal_view_properties.setHorizontalBarState(SplitterBarStateType.Restored)
normal_view_properties.setVerticalBarState(SplitterBarStateType.Maximized)
# Восстановить свойства представления презентации.
normal_view_properties.getRestoredTop().setAutoAdjust(True)
normal_view_properties.getRestoredTop().setDimensionSize(80)
normal_view_properties.setShowOutlineIcons(True)
presentation.save("presentation_normal_view_state.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Установка значения масштабирования по умолчанию
Note
Aspose.Slides for Python via Java поддерживает установку значения масштабирования по умолчанию, которое применяется сразу при открытии презентации. Это можно сделать, задав ViewProperties презентации. Методы getSlideViewProperties и getNotesViewProperties могут быть сконфигурированы программно. В этой статье мы покажем пример того, как задать View Properties у Presentation в Aspose.Slides.Чтобы задать свойства представления, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Задайте View Properties у Presentation.
- Сохраните презентацию как файл PPTX.
В приведённом ниже примере задаётся значение масштабирования как для просмотра слайдов, так и для просмотра заметок.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation()
try:
# Установить свойства представления презентации.
presentation.getViewProperties().getSlideViewProperties().setScale(100) # Процент масштабирования для просмотра слайда.
presentation.getViewProperties().getNotesViewProperties().setScale(100) # Процент масштабирования для просмотра заметок.
presentation.save("Zoom_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Установка интервала сетки
Используйте Presentation.getViewProperties для доступа к настройкам представления, применимым ко всей презентации. Методы ViewProperties.getGridSpacing и ViewProperties.setGridSpacing читают или изменяют интервал базовой сетки редактирования. Эта настройка применяется ко всей презентации, а не к отдельному слайду. Интервал сетки указывается в пунктах, где 72 пункта равны одному дюйму. Используйте положительное значение, как предписано в документации API.
В следующем примере открывается существующий файл demo.pptx, выводится текущий интервал сетки, задаётся интервал в четверть дюйма и сохраняется результат.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("demo.pptx")
try:
grid_spacing = presentation.getViewProperties().getGridSpacing()
print(f"Current grid spacing: {grid_spacing} points")
presentation.getViewProperties().setGridSpacing(18.0)
presentation.save("grid-spacing.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Сетка отличается от drawing guides. Интервал сетки задаёт регулярный шаг, тогда как направляющие — это отдельные горизонтальные или вертикальные линии выравнивания. Добавление, перемещение или удаление направляющих не меняет интервал сетки.
И сетка, и направляющие являются вспомогательными средствами редактирования. Они не отображаются как содержимое слайда в PDF, изображениях, SVG или при показе слайдов. Сохранение интервала сетки не гарантирует, что редактор отобразит её: её видимость также зависит от настроек просмотрщика или редактора.
Показ или скрытие комментариев при открытии презентации
Используйте Presentation.getViewProperties для доступа к настройкам представления, применимым ко всей презентации. Методы ViewProperties.getShowComments и ViewProperties.setShowComments позволяют считать или изменить сохранённую настройку отображения комментариев при открытии презентации в PowerPoint или другом совместимом редакторе.
Эта настройка управляет только сохранённым предпочтением представления. Она не добавляет, не удаляет, не редактирует и не разрешает комментарии. Скрытие комментариев сохраняет их содержимое, авторов, позиции, ответы и статусы. См. раздел Presentation Comments для операций, изменяющих сами комментарии.
В следующем примере требуется существующий файл comments.pptx с комментариями. Пример выводит текущую настройку видимости, запрашивает скрытие комментариев и сохраняет новый PPTX без удаления каких‑либо комментариев. Он также использует ViewProperties.setLastView с ViewType.SlideView для конфигурирования начального режима редактирования вместе с видимостью комментариев.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import NullableBool, Presentation, SaveFormat, ViewType
presentation = Presentation("comments.pptx")
try:
show_comments = presentation.getViewProperties().getShowComments()
print(f"Current comment visibility: {show_comments}")
presentation.getViewProperties().setShowComments(NullableBool.False_)
presentation.getViewProperties().setLastView(ViewType.SlideView)
presentation.save("comments-hidden.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Эта настройка не определяет, будут ли комментарии включены в экспорты PDF, HTML, изображений, заметок или раздаточных материалов. Настройте соответствующие параметры экспорта отдельно.
FAQ
Почему сетка не видна после повторного открытия презентации?
Файл сохраняет интервал сетки, но редактор контролирует её отображение. Проверьте настройки видимости сетки в редакторе.
Изменит ли очистка направляющих интервал сетки?
Нет. Направляющие и интервал сетки — независимые параметры. Очистка направляющих не меняет сохранённый интервал сетки.
Можно ли задать разные настройки представления для разных секций презентации?
View settings определяются на уровне презентации (Normal View/Slide View), а не для каждой секции, поэтому один набор параметров применяется ко всему документу при открытии.
Можно ли заранее определить разные состояния представления для разных пользователей?
Нет. Настройки хранятся в файле и являются общими. Приложения‑просмотрщики могут учитывать предпочтения пользователя, но сам файл содержит один набор свойств представления.
Можно ли подготовить шаблон с предустановленными свойствами представления, чтобы новые презентации открывались одинаково?
Да. Поскольку view properties сохраняются на уровне презентации, их можно включить в шаблон и создавать новые документы на его основе с тем же начальным конфигурированием представления.