مدیریت راهنماهای رسم در ارائه‌ها در 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 مقادیری را برمی‌گردانند که می‌توان آنها را با متدهای setter مربوطه نیز تغییر داد.

مثال زیر راهنماهای نمای اسلاید را از ارائه‌ای که در بالا ایجاد شد، می‌خواند:

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()

سؤال‌های متداول

آیا راهنماهای رسم در نمایش اسلاید یا تصاویر صادرشده ظاهر می‌شوند؟

خیر. راهنماهای رسم ابزارهای هم‌راستایی برای ویرایش هستند و به‌عنوان محتوای ارائه رندر نمی‌شوند.

آیا می‌توان یک راهنمای رسم را مستقیماً به یک اسلاید نرمال افزود؟

راهنماهای ویرایشی اسلایدهای نرمال در ویژگی‌های نمای اسلاید ارائه ذخیره می‌شوند. مجموعه‌های راهنماهای جداگانه‌ای برای مسترهای اسلاید، اسلایدهای طرح‌بندی، مسترهای یادداشت و مسترهای جزوه موجود است.

برای موقعیت راهنماها از چه واحدهایی استفاده می‌شود؟

موقعیت‌ها بر حسب پوینت مشخص می‌شوند، جایی که ۷۲ پوینت برابر یک اینچ است. موقعیت‌های عمودی از لبهٔ چپ اندازه‌گیری می‌شوند و موقعیت‌های افقی از لبهٔ بالا.

آیا پاک کردن راهنماهای رسم باعث حذف اشکال یا تغییر محتوی اسلاید می‌شود؟

خیر. متد DrawingGuidesCollection.clear تنها راهنماهای موجود در مجموعهٔ انتخاب‌شده را حذف می‌کند. اشکال و سایر محتویات اسلاید بدون تغییر باقی می‌مانند.