Управление руководящими линиями в презентациях в .NET
Обзор
Руководящие линии — это регулируемые горизонтальные и вертикальные линии, помогающие пользователям выравнивать объекты последовательно при редактировании презентации в PowerPoint. Они особенно полезны, когда приложение генерирует презентацию, которую затем нужно доработать вручную: приложение может сохранить те же вспомогательные линии выравнивания, которым авторы должны следовать при добавлении или перемещении содержимого.
Руководящие линии являются средствами редактирования, а не содержимым слайда. Они не отображаются в показе слайдов и не включаются в вывод. Aspose.Slides for .NET предоставляет их через интерфейс IDrawingGuidesCollection. Одна линия представлена объектом IDrawingGuide, у которой есть ориентация, позиция и цвет.
Позиция измеряется в пунктах от верхнего левого угла соответствующего слайда или шаблона. Вертикальная линия использует горизонтальную координату, обычно в диапазоне от нуля до ширины слайда. Горизонтальная линия использует вертикальную координату, обычно в диапазоне от нуля до высоты слайда.
Добавление руководящих линий в представление слайда
Используйте ICommonSlideViewProperties.DrawingGuides для управления линиями, отображаемыми при редактировании обычных слайдов. Вызовите IDrawingGuidesCollection.Add с параметром Orientation и позицией в пунктах.
Следующий пример добавляет одну вертикальную линию справа от центра слайда и одну горизонтальную линию ниже него:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slideSize = presentation.SlideSize.Size;
var guides = presentation.ViewProperties.SlideViewProperties.DrawingGuides;
guides.Add(Orientation.Vertical, slideSize.Width / 2 + 12.5f);
guides.Add(Orientation.Horizontal, slideSize.Height / 2 + 12.5f);
presentation.Save("drawing-guides.pptx", SaveFormat.Pptx);
Доступ к руководящим линиям
Свойство IDrawingGuidesCollection.Count и индексатор предоставляют доступ к существующим линиям. Свойства IDrawingGuide.Orientation, IDrawingGuide.Position и IDrawingGuide.Color можно читать и изменять.
Следующий пример считывает линии представления слайдов из презентации, созданной выше:
using Aspose.Slides;
using var presentation = new Presentation("drawing-guides.pptx");
var guides = presentation.ViewProperties.SlideViewProperties.DrawingGuides;
for (var index = 0; index < guides.Count; index++)
{
var guide = guides[index];
Console.WriteLine($"Guide {index}: orientation = {guide.Orientation}, position = {guide.Position}, color = {guide.Color}");
}
Добавление руководящих линий к мастеру и слайдам макета
У мастера слайда и у каждого его слайда‑макета могут быть собственные коллекции руководящих линий. Используйте IMasterSlide.DrawingGuides для мастера слайда и ILayoutSlide.DrawingGuides для слайда‑макета.
Следующий пример добавляет вертикальную линию к первому мастеру слайдов и горизонтальную линию к первому слайду‑макету:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slideSize = presentation.SlideSize.Size;
var masterGuides = presentation.Masters[0].DrawingGuides;
var layoutGuides = presentation.LayoutSlides[0].DrawingGuides;
masterGuides.Add(Orientation.Vertical, slideSize.Width / 2 - 20f);
layoutGuides.Add(Orientation.Horizontal, slideSize.Height / 2 + 20f);
presentation.Save("master-layout-drawing-guides.pptx", SaveFormat.Pptx);
Добавление руководящих линий к мастерам заметок и раздаточных материалов
Мастера заметок и раздаточных материалов также поддерживают руководящие линии. Используйте IMasterNotesSlide.DrawingGuides и IMasterHandoutSlide.DrawingGuides для доступа к их коллекциям. Если презентация не содержит один из этих мастеров, IMasterNotesSlideManager.SetDefaultMasterNotesSlide или IMasterHandoutSlideManager.SetDefaultMasterHandoutSlide создаёт мастер по умолчанию и возвращает его.
Следующий пример добавляет горизонтальную линию к мастеру заметок и вертикальную линию к мастеру раздаточного материала:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var notesSize = presentation.NotesSize.Size;
var notesMaster = presentation.MasterNotesSlideManager.SetDefaultMasterNotesSlide();
var handoutMaster = presentation.MasterHandoutSlideManager.SetDefaultMasterHandoutSlide();
notesMaster.DrawingGuides.Add(Orientation.Horizontal, notesSize.Height / 2 + 50f);
handoutMaster.DrawingGuides.Add(Orientation.Vertical, notesSize.Width / 2 - 50f);
presentation.Save("notes-handout-drawing-guides.pptx", SaveFormat.Pptx);
Очистка руководящих линий
Вызовите IDrawingGuidesCollection.Clear , чтобы удалить все линии из определенной коллекции. Очистка одной коллекции не влияет на линии, хранящиеся в другой области.
Следующий пример очищает линии представления слайдов и все линии на мастерах слайдов, слайдах‑макетах, мастере заметок и мастере раздаточного материала без создания отсутствующих мастеров:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation-with-guides.pptx");
presentation.ViewProperties.SlideViewProperties.DrawingGuides.Clear();
foreach (var masterSlide in presentation.Masters)
{
masterSlide.DrawingGuides.Clear();
}
foreach (var layoutSlide in presentation.LayoutSlides)
{
layoutSlide.DrawingGuides.Clear();
}
var notesMaster = presentation.MasterNotesSlideManager.MasterNotesSlide;
if (notesMaster != null)
{
notesMaster.DrawingGuides.Clear();
}
var handoutMaster = presentation.MasterHandoutSlideManager.MasterHandoutSlide;
if (handoutMaster != null)
{
handoutMaster.DrawingGuides.Clear();
}
presentation.Save("presentation-without-guides.pptx", SaveFormat.Pptx);
FAQ
Появляются ли руководящие линии в показе слайдов или экспортированных изображениях?
Нет. Руководящие линии служат вспомогательными средствами выравнивания при редактировании и не отображаются как содержимое презентации.
Можно ли добавить руководящую линию непосредственно к отдельному обычному слайду?
Руководящие линии обычных слайдов хранятся в свойствах представления слайдов презентации. Отдельные коллекции линий доступны для мастеров слайдов, слайдов‑макетов, мастеров заметок и мастеров раздаточных материалов.
Какие единицы измерения используются для позиций линий?
Позиции задаются в пунктах, где 72 пункта равны одному дюйму. Вертикальные позиции измеряются от левого края, горизонтальные — от верхнего края.
Удаляет ли очистка руководящих линий формы или изменяет содержимое слайда?
Нет. Метод Clear удаляет только линии в выбранной коллекции. Формы и другое содержимое слайда остаются без изменений.