بازیابی و به‌روزرسانی خصوصیات نمایش ارائه در PHP

معرفی

نمای عادی شامل سه ناحیه محتوایی است: اسلاید خود، یک ناحیه محتوای جانبی و یک ناحیه محتوای پایین. خصوصیات مربوط به موقعیت‌گذاری ناحیه‌های مختلف محتوا. این اطلاعات به برنامه اجازه می‌دهد وضعیت نمای خود را در فایل ذخیره کند، به‌طوری که هنگام باز کردن مجدد، نما در همان وضعیتی باشد که ارائه در آخرین بار ذخیره شده بود.

متد ViewProperties::getNormalViewProperties اضافه شده است تا دسترسی به خصوصیات نمای عادی ارائه را فراهم کند.

کلاس‌های NormalViewProperties, NormalViewRestoredProperties و فرزندان آن، و شمارش SplitterBarStateType اضافه شده‌اند.

درباره INormalViewProperties

نمایش‌دهندهٔ خصوصیات نمای عادی است.

متدهای getShowOutlineIcons و setShowOutlineIcons مشخص می‌کنند که آیا برنامه باید هنگام نمایش محتوای نمای کلی در هر یک از ناحیه‌های محتوای حالت نمای عادی، آیکن‌ها را نشان دهد یا نه.

متدهای getSnapVerticalSplitter و setSnapVerticalSplitter مشخص می‌کنند که آیا تقسیم‌کنندهٔ عمودی باید هنگام کوچک بودن کافی ناحیهٔ جانبی، به حالت به‌حداقل‌رسیدهٔ خود چسبیده (snap) شود یا نه.

ویژگی‌های getPreferSingleView و setPreferSingleView مشخص می‌کنند که آیا کاربر ترجیح می‌دهد یک ناحیهٔ محتوای تک‌پنجره‌ای تمام‑صفحه به جای نمای عادی استاندارد با سه ناحیهٔ محتوا ببیند. در صورت فعال‌سازی، برنامه ممکن است یکی از ناحیه‌های محتوا را در تمام پنجره نمایش دهد.

متدهای getVerticalBarState و getHorizontalBarState وضعیت نشان داده شدن میلهٔ تقسیم‌کنندهٔ افقی یا عمودی را مشخص می‌کنند. میلهٔ تقسیم‌کنندهٔ افقی اسلاید را از ناحیهٔ محتوای زیر اسلاید جدا می‌کند، میلهٔ تقسیم‌کنندهٔ عمودی اسلاید را از ناحیهٔ محتوای جانبی جدا می‌کند. مقادیر ممکن عبارتند از: SplitterBarStateType::Minimized, SplitterBarStateType::Maximized و SplitterBarStateType::Restored.

متدهای getRestoredLeft و getRestoredTop اندازهٔ ناحیهٔ بالایی یا جانبی اسلاید در نمای عادی را مشخص می‌کنند، زمانی که مقدار SplitterBarStateType::Restored برای getVerticalBarState و getHorizontalBarState به‌طور متناسب اعمال شده باشد.

درباره بازگردانی INormalViewProperties

ابعاد ناحیهٔ اسلاید (عرض وقتی فرزند getRestoredTop باشد، ارتفاع وقتی فرزند getRestoredLeft باشد) در نمای عادی را مشخص می‌کند، زمانی که ناحیه دارای اندازهٔ بازگرداندهٔ متغیر (نه به‌حداقل‌رسیده و نه به‌حداکثر) باشد.

متد getDimensionSize اندازهٔ ناحیهٔ اسلاید را مشخص می‌کند (عرض وقتی فرزند restoredTop باشد، ارتفاع وقتی فرزند restoredLeft باشد).

متد getAutoAdjust تعیین می‌کند که آیا اندازهٔ ناحیهٔ محتوای جانبی باید هنگام تغییر اندازهٔ پنجرهٔ حاوی نما در برنامه، خود را متناسب با اندازهٔ جدید تنظیم کند یا خیر.

مثالی در زیر نشان می‌دهد چگونه می‌توانید به خصوصیات ViewProperties::getNormalViewProperties یک ارائه دسترسی پیدا کنید.

  $pres = new Presentation();
  try {
    $pres->getViewProperties()->getNormalViewProperties()->setHorizontalBarState(SplitterBarStateType::Restored);
    $pres->getViewProperties()->getNormalViewProperties()->setVerticalBarState(SplitterBarStateType::Maximized);

    # بازگرداندن خصوصیات نمایش ارائه
    $pres->getViewProperties()->getNormalViewProperties()->getRestoredTop()->setAutoAdjust(true);
    $pres->getViewProperties()->getNormalViewProperties()->getRestoredTop()->setDimensionSize(80);
    $pres->getViewProperties()->getNormalViewProperties()->setShowOutlineIcons(true);
    $pres->save("presentation_normal_view_state.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

تنظیم مقدار زوم پیش‌فرض

برای تنظیم خصوصیات نما، لطفاً مراحل زیر را دنبال کنید:

  1. یک نمونه از کلاس Presentation ایجاد کنید.
  2. View Properties را برای Presentation تنظیم کنید.
  3. ارائه را به عنوان یک فایل PPTX ذخیره کنید. در مثال زیر، مقدار زوم برای نمای اسلاید و همچنین نمای یادداشت‌ها تنظیم شده است.
  $presentation = new 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 فاصلهٔ شبکهٔ ویرایشی زیرین را می‌خوانند یا تغییر می‌دهند. این تنظیم برای کل ارائه اعمال می‌شود، نه برای اسلایدی منفرد. فاصلهٔ شبکه بر حسب پوینت تعیین می‌شود، به‌طوری که ۷۲ پوینت معادل یک اینچ است. طبق مستندات API باید از مقدار مثبت استفاده کنید.

مثال زیر یک فایل demo.pptx موجود را باز می‌کند، فاصلهٔ فعلی شبکه را چاپ می‌کند، فاصلهٔ یک‌چهارم اینچ را تنظیم می‌نماید و نتیجه را ذخیره می‌کند.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("demo.pptx");
try {
    $gridSpacing = $presentation->getViewProperties()->getGridSpacing();
    echo "Current grid spacing: " . $gridSpacing . " points\n";

    $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 برای پیکربندی نمای اولیهٔ ویرایش به همراه قابلیت مشاهده نظرات استفاده می‌کند.

use aspose\slides\NullableBool;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ViewType;

$presentation = new Presentation("comments.pptx");
try {
    $showComments = $presentation->getViewProperties()->getShowComments();
    echo "Current comment visibility: " . java_values($showComments) . PHP_EOL;

    $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 پیش‌تعریف‌شده آماده کنم تا ارائه‌های جدید به همان شکل باز شوند؟

بله. از آنجا که view properties در سطح ارائه ذخیره می‌شوند، می‌توانید آنها را در یک قالب قرار دهید و اسناد جدید را از آن با همان پیکربندی نمای اولیه ایجاد کنید.