مدیریت راهنماهای رسم در ارائهها با C++
نمای کلی
راهنماهای رسم خطوط افقی و عمودی قابل تنظیمی هستند که به کاربران کمک میکنند هنگام ویرایش یک ارائه در PowerPoint بهصورت مداوم اشکال را همراستا کنند. این راهنماها بهویژه زمانی مفیدند که یک برنامه ارائهای را تولید میکند که بعدها بهصورت دستی اصلاح میشود: برنامه میتواند همان ابزارهای همراستایی را ذخیره کند تا نویسندگان هنگام افزودن یا جابهجا کردن محتوا از آن پیروی کنند.
راهنماهای رسم ابزارهای ویرایشی هستند، نه محتوای اسلاید. آنها در نمایش اسلاید یا خروجی رندر شده ظاهر نمیشوند. Aspose.Slides برای C++ آنها را از طریق رابط IDrawingGuidesCollection در دسترس قرار میدهد. یک راهنما توسط IDrawingGuide نمایانده میشود و دارای جهت، موقعیت و رنگ است.
موقعیت بهواحد نقطه از گوشهٔ بالا‑چپ اسلاید یا مستر مربوطه اندازهگیری میشود. یک راهنمأ عمودی از مختصات افقی استفاده میکند که معمولاً بین صفر و عرض اسلاید قرار دارد. یک راهنمأ افقی از مختصات عمودی استفاده میکند که معمولاً بین صفر و ارتفاع اسلاید است.
افزودن راهنماها به نمای اسلاید
از ICommonSlideViewProperties::get_DrawingGuides برای مدیریت راهنماهایی که در حین ویرایش اسلایدهای معمولی نمایش داده میشوند، استفاده کنید. با فراخوانی IDrawingGuidesCollection::Add یک مقدار Orientation و موقعیتی بهواحد نقطه، یک راهنما اضافه میشود.
مثال زیر یک راهنمأ عمودی را در سمت راست مرکز اسلاید و یک راهنمأ افقی را در زیر آن اضافه میکند:
#include <DOM/ICommonSlideViewProperties.h>
#include <DOM/IDrawingGuidesCollection.h>
#include <DOM/ISlideSize.h>
#include <DOM/IViewProperties.h>
#include <DOM/Orientation.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>();
auto slideSize = presentation->get_SlideSize()->get_Size();
auto guides = presentation->get_ViewProperties()->get_SlideViewProperties()->get_DrawingGuides();
guides->Add(Orientation::Vertical, slideSize.get_Width() / 2 + 12.5f);
guides->Add(Orientation::Horizontal, slideSize.get_Height() / 2 + 12.5f);
presentation->Save(u"drawing-guides.pptx", SaveFormat::Pptx);
presentation->Dispose();
دسترسی به راهنماهای رسم
متد IDrawingGuidesCollection::get_Count و متد IDrawingGuidesCollection::idx_get امکان دسترسی به راهنماهای موجود را فراهم میکنند. متدهای IDrawingGuide::get_Orientation، IDrawingGuide::get_Position و IDrawingGuide::get_Color مقادیر فعلی یک راهنما را برمیگردانند. متدهای setter مربوطه میتوانند این ویژگیها را تغییر دهند.
مثال زیر راهنماهای نمای اسلاید را از ارائهٔ ساختهشده در بالا میخواند:
#include <DOM/ICommonSlideViewProperties.h>
#include <DOM/IDrawingGuide.h>
#include <DOM/IDrawingGuidesCollection.h>
#include <DOM/IViewProperties.h>
#include <DOM/Presentation.h>
#include <drawing/color.h>
#include <system/console.h>
using namespace Aspose::Slides;
auto presentation = System::MakeObject<Presentation>(u"drawing-guides.pptx");
auto guides = presentation->get_ViewProperties()->get_SlideViewProperties()->get_DrawingGuides();
for (int32_t index = 0; index < guides->get_Count(); index++)
{
auto guide = guides->idx_get(index);
System::Console::WriteLine(
System::String::Format(
u"Guide {0}: orientation = {1}, position = {2}, color = {3}",
index,
guide->get_Orientation(),
guide->get_Position(),
guide->get_Color()));
}
presentation->Dispose();
افزودن راهنماها به اسلایدهای مستر و لایهبندی
یک اسلاید مستر و هر یک از اسلایدهای لایهبندی آن میتوانند مجموعهٔ راهنماهای رسم خود را داشته باشند. برای یک اسلاید مستر از IMasterSlide::get_DrawingGuides و برای یک اسلاید لایهبندی از ILayoutSlide::get_DrawingGuides استفاده کنید.
مثال زیر یک راهنمأ عمودی را به اولین اسلاید مستر و یک راهنمأ افقی را به اولین اسلاید لایهبندی اضافه میکند:
#include <DOM/IDrawingGuidesCollection.h>
#include <DOM/ILayoutSlide.h>
#include <DOM/IMasterSlide.h>
#include <DOM/ISlideSize.h>
#include <DOM/Orientation.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>();
auto slideSize = presentation->get_SlideSize()->get_Size();
auto masterGuides = presentation->get_Master(0)->get_DrawingGuides();
auto layoutGuides = presentation->get_LayoutSlide(0)->get_DrawingGuides();
masterGuides->Add(Orientation::Vertical, slideSize.get_Width() / 2 - 20.0f);
layoutGuides->Add(Orientation::Horizontal, slideSize.get_Height() / 2 + 20.0f);
presentation->Save(u"master-layout-drawing-guides.pptx", SaveFormat::Pptx);
presentation->Dispose();
افزودن راهنماها به مسترهای یادداشت و برگههای توزیع
مسترهای یادداشت و برگههای توزیع نیز از راهنماهای رسم پشتیبانی میکنند. برای دسترسی به مجموعههای آنها از IMasterNotesSlide::get_DrawingGuides و IMasterHandoutSlide::get_DrawingGuides استفاده کنید. اگر ارائهای یکی از این مسترها را نداشته باشد، IMasterNotesSlideManager::SetDefaultMasterNotesSlide یا IMasterHandoutSlideManager::SetDefaultMasterHandoutSlide مستر پیشفرض را ایجاد کرده و برمیگرداند.
مثال زیر یک راهنمأ افقی را به یک مستر یادداشت و یک راهنمأ عمودی را به یک مستر برگهٔ توزیع اضافه میکند:
#include <DOM/IDrawingGuidesCollection.h>
#include <DOM/IMasterHandoutSlide.h>
#include <DOM/IMasterHandoutSlideManager.h>
#include <DOM/IMasterNotesSlide.h>
#include <DOM/IMasterNotesSlideManager.h>
#include <DOM/INotesSize.h>
#include <DOM/Orientation.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>();
auto notesSize = presentation->get_NotesSize()->get_Size();
auto notesMaster = presentation->get_MasterNotesSlideManager()->SetDefaultMasterNotesSlide();
auto handoutMaster = presentation->get_MasterHandoutSlideManager()->SetDefaultMasterHandoutSlide();
notesMaster->get_DrawingGuides()->Add(Orientation::Horizontal, notesSize.get_Height() / 2 + 50.0f);
handoutMaster->get_DrawingGuides()->Add(Orientation::Vertical, notesSize.get_Width() / 2 - 50.0f);
presentation->Save(u"notes-handout-drawing-guides.pptx", SaveFormat::Pptx);
presentation->Dispose();
پاکسازی راهنماهای رسم
برای حذف همهٔ راهنماها از یک مجموعهٔ خاص، متد IDrawingGuidesCollection::Clear را فراخوانی کنید. پاکسازی یک مجموعه، راهنماهای ذخیرهشده در حوزهٔ دیگر را تحتتأثیر قرار نمیدهد.
مثال زیر راهنماهای نمای اسلاید و تمام راهنماهای موجود بر روی اسلایدهای مستر، اسلایدهای لایهبندی، مستر یادداشت و مستر برگهٔ توزیع را بدون ایجاد مسترهای مفقود پاکسازی میکند:
#include <DOM/ICommonSlideViewProperties.h>
#include <DOM/IDrawingGuidesCollection.h>
#include <DOM/IGlobalLayoutSlideCollection.h>
#include <DOM/ILayoutSlide.h>
#include <DOM/IMasterHandoutSlide.h>
#include <DOM/IMasterHandoutSlideManager.h>
#include <DOM/IMasterNotesSlide.h>
#include <DOM/IMasterNotesSlideManager.h>
#include <DOM/IMasterSlide.h>
#include <DOM/IMasterSlideCollection.h>
#include <DOM/IViewProperties.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>(u"presentation-with-guides.pptx");
presentation->get_ViewProperties()->get_SlideViewProperties()->get_DrawingGuides()->Clear();
for (auto&& masterSlide : presentation->get_Masters())
{
masterSlide->get_DrawingGuides()->Clear();
}
for (auto&& layoutSlide : presentation->get_LayoutSlides())
{
layoutSlide->get_DrawingGuides()->Clear();
}
auto notesMaster = presentation->get_MasterNotesSlideManager()->get_MasterNotesSlide();
if (notesMaster != nullptr)
{
notesMaster->get_DrawingGuides()->Clear();
}
auto handoutMaster = presentation->get_MasterHandoutSlideManager()->get_MasterHandoutSlide();
if (handoutMaster != nullptr)
{
handoutMaster->get_DrawingGuides()->Clear();
}
presentation->Save(u"presentation-without-guides.pptx", SaveFormat::Pptx);
presentation->Dispose();
FAQ
آیا راهنماهای رسم در یک نمایش اسلاید یا تصاویر خروجی ظاهر میشوند؟
نه. راهنماهای رسم ابزارهای همراستایی برای ویرایش هستند و به عنوان محتوای ارائه رندر نمیشوند.
آیا میتوان یک راهنما را مستقیماً به یک اسلاید عادی اضافه کرد؟
راهنماهای ویرایشی اسلاید عادی در ویژگیهای نمای اسلاید ارائه ذخیره میشوند. مجموعههای راهنماهای جداگانهای برای اسلایدهای مستر، اسلایدهای لایهبندی، مسترهای یادداشت و مسترهای برگهٔ توزیع موجود است.
کدام واحد برای موقعیت راهنماها استفاده میشود؟
موقعیتها بر حسب نقطه مشخص میشوند که در آن ۷۲ نقطه برابر با یک اینچ است. موقعیتهای عمودی از لبهٔ چپ اندازهگیری میشوند و موقعیتهای افقی از لبهٔ بالا.
آیا پاکسازی راهنماهای رسم باعث حذف اشکال یا تغییر محتوای اسلاید میشود؟
نه. متد Clear فقط راهنماهای موجود در مجموعه انتخابشده را حذف میکند. اشکال و سایر محتوای اسلاید بدون تغییر باقی میمانند.