Управление направляющими в презентациях на Python
Обзор
Направляющие – это регулируемые горизонтальные и вертикальные линии, помогающие пользователям последовательно выравнивать фигуры при редактировании презентации в PowerPoint. Они особенно полезны, когда приложение генерирует презентацию, которую затем необходимо доработать вручную: приложение может сохранить те же вспомогательные ориентиры, которым должны следовать авторы при добавлении или перемещении содержимого.
Направляющие являются средствами редактирования, а не содержимым слайда. Они не отображаются в режиме показа слайдов и не попадают в готовый вывод. Aspose.Slides for Python via Java предоставляет их через класс DrawingGuidesCollection. Одна направляющая представлена объектом DrawingGuide и имеет ориентацию, позицию и цвет.
Позиция измеряется в пунктах от верхнего левого угла соответствующего слайда или шаблона. Вертикальная направляющая использует горизонтальную координату, обычно в диапазоне от нуля до ширины слайда. Горизонтальная направляющая использует вертикальную координату, обычно в диапазоне от нуля до высоты слайда.
Добавление направляющих в режим слайда
Используйте CommonSlideViewProperties.getDrawingGuides для управления направляющими, отображаемыми при редактировании обычных слайдов. Вызовите DrawingGuidesCollection.add с значением Orientation и позицией в пунктах.
В следующем примере добавляется одна вертикальная направляющая справа от центра слайда и одна горизонтальная направляющая ниже него:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, Orientation, SaveFormat
presentation = Presentation()
try:
slide_size = presentation.getSlideSize().getSize()
guides = presentation.getViewProperties().getSlideViewProperties().getDrawingGuides()
guides.add(Orientation.Vertical, slide_size.getWidth() / 2 + 12.5)
guides.add(Orientation.Horizontal, slide_size.getHeight() / 2 + 12.5)
presentation.save("drawing-guides.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Доступ к направляющим
Методы DrawingGuidesCollection.getCount и DrawingGuidesCollection.get_Item предоставляют доступ к существующим направляющим. Методы DrawingGuide.getOrientation, DrawingGuide.getPosition и DrawingGuide.getColor возвращают значения, которые также можно изменить соответствующими методами‑установщиками.
В следующем примере читаются направляющие режима слайда из презентации, созданной выше:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("drawing-guides.pptx")
try:
guides = presentation.getViewProperties().getSlideViewProperties().getDrawingGuides()
for index in range(guides.getCount()):
guide = guides.get_Item(index)
print(f"Guide {index}: orientation = {guide.getOrientation()}, position = {guide.getPosition()}, color = {guide.getColor()}")
finally:
presentation.dispose()
Добавление направляющих к слайдам‑мастерам и макетам
Слайд‑мастер и каждый из его макетов могут иметь собственные коллекции направляющих. Используйте MasterSlide.getDrawingGuides для слайда‑мастера и LayoutSlide.getDrawingGuides для макет‑слайда.
В следующем примере добавляется вертикальная направляющая к первому слайду‑мастеру и горизонтальная направляющая к первому макет‑слайду:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, Orientation, SaveFormat
presentation = Presentation()
try:
slide_size = presentation.getSlideSize().getSize()
master_guides = presentation.getMasters().get_Item(0).getDrawingGuides()
layout_guides = presentation.getLayoutSlides().get_Item(0).getDrawingGuides()
master_guides.add(Orientation.Vertical, slide_size.getWidth() / 2 - 20)
layout_guides.add(Orientation.Horizontal, slide_size.getHeight() / 2 + 20)
presentation.save("master-layout-drawing-guides.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Добавление направляющих к заметкам и раздаточным листам мастеров
Мастера заметок и раздаточных листов также поддерживают направляющие. Используйте MasterNotesSlide.getDrawingGuides и MasterHandoutSlide.getDrawingGuides для доступа к их коллекциям. Если в презентации отсутствует один из этих мастеров, MasterNotesSlideManager.setDefaultMasterNotesSlide или MasterHandoutSlideManager.setDefaultMasterHandoutSlide создаёт мастер по умолчанию и возвращает его.
В следующем примере добавляется горизонтальная направляющая к мастеру заметок и вертикальная направляющая к мастеру раздаточного листа:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, Orientation, SaveFormat
presentation = Presentation()
try:
notes_size = presentation.getNotesSize().getSize()
notes_master = presentation.getMasterNotesSlideManager().setDefaultMasterNotesSlide()
handout_master = presentation.getMasterHandoutSlideManager().setDefaultMasterHandoutSlide()
notes_master.getDrawingGuides().add(Orientation.Horizontal, notes_size.getHeight() / 2 + 50)
handout_master.getDrawingGuides().add(Orientation.Vertical, notes_size.getWidth() / 2 - 50)
presentation.save("notes-handout-drawing-guides.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Очистка направляющих
Вызовите DrawingGuidesCollection.clear, чтобы удалить все направляющие из конкретной коллекции. Очистка одной коллекции не влияет на направляющие, хранящиеся в другой области.
В следующем примере очищаются направляющие режима слайда и все направляющие на слайдах‑мастерах, макет‑слайдах, мастере заметок и мастере раздаточного листа без создания недостающих мастеров:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation-with-guides.pptx")
try:
presentation.getViewProperties().getSlideViewProperties().getDrawingGuides().clear()
for master_slide in presentation.getMasters():
master_slide.getDrawingGuides().clear()
for layout_slide in presentation.getLayoutSlides():
layout_slide.getDrawingGuides().clear()
notes_master = presentation.getMasterNotesSlideManager().getMasterNotesSlide()
if notes_master is not None:
notes_master.getDrawingGuides().clear()
handout_master = presentation.getMasterHandoutSlideManager().getMasterHandoutSlide()
if handout_master is not None:
handout_master.getDrawingGuides().clear()
presentation.save("presentation-without-guides.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Часто задаваемые вопросы
Появляются ли направляющие в показе слайдов или экспортированных изображениях?
Нет. Направляющие служат вспомогательными средствами выравнивания при редактировании и не выводятся как содержимое презентации.
Можно ли добавить направляющую непосредственно к отдельному обычному слайду?
Обычные направляющие хранятся в свойствах режима просмотра слайдов презентации. Отдельные коллекции направляющих доступны для мастеров слайдов, макет‑слайдов, мастеров заметок и мастеров раздаточных листов.
Какие единицы измерения используются для позиций направляющих?
Позиции задаются в пунктах, где 72 пункта равны одному дюйму. Вертикальные позиции измеряются от левого края, горизонтальные – от верхнего края.
Удаляет ли очистка направляющих формы или изменяет содержимое слайда?
Нет. Метод DrawingGuidesCollection.clear удаляет только направляющие в выбранной коллекции. Формы и прочее содержимое слайда остаются без изменений.