محدود کردن ویرایش‌های ارائه با قفل‌های شکل در PHP

مرور کلی

یک استفاده رایج از Aspose.Slides برای PHP از طریق Java ایجاد، به‌روزرسانی و ذخیره ارائه‌های PowerPoint (PPTX) به‌عنوان بخشی از یک جریان کار خودکار است. هنگامی که کاربران این ارائه‌ها را دریافت می‌کنند، محدود کردن تغییرات شکل‌ها می‌تواند به حفظ چیدمان و محتوای موردنظر کمک کند.

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

ترکیب اسلاید

یک اسلاید ارائه از اجزایی مانند اشکال خودکار، جدول‌ها، اشیاء OLE، گروه‌های شکل، قاب‌های تصویر، قاب‌های ویدئو، اتصال‌دهنده‌ها و عناصر دیگر تشکیل شده است. در Aspose.Slides برای PHP از طریق Java، هر عنصر روی اسلاید توسط یک شیء که از کلاس Shape ارث‌بری می‌کند، نمایش داده می‌شود.

انواع مختلف شکل‌ها گزینه‌های قفل‌گذاری متفاوتی ارائه می‌دهند. کلاس BaseShapeLock پایهٔ قفل‌های شکل است. Aspose.Slides برای PHP از طریق Java کلاس‌های قفل زیر را فراهم می‌کند:

  • AutoShapeLock قفل‌های اشکال خودکار را اعمال می‌کند.
  • ConnectorLock قفل‌های اشکال اتصال‌دهنده را اعمال می‌کند.
  • GraphicalObjectLock قفل‌های اشیاء گرافیکی را اعمال می‌کند.
  • GroupShapeLock قفل‌های گروه‌های شکل را اعمال می‌کند.
  • PictureFrameLock قفل‌های قاب‌های تصویر را اعمال می‌کند.

برای اعمال قفل‌ها بر روی یک Presentation، اسلایدهای آن را مرور کنید و قفل‌های مناسب را بر روی هر شکل پشتیبانی‌شده تنظیم کنید.

اعمال و حذف محافظت

قفل‌های شکل عملیات‌هایی مانند انتخاب، جابه‌جایی و تغییر اندازهٔ شکل‌ها را محدود می‌کنند. این قفل‌ها کل ارائه را به‌طور کلی غیرقابل ویرایش نمی‌سازند.

اعمال محافظت به اشکال PPTX

Aspose.Slides برای PHP از طریق Java کلاس Shape را برای کار با شکل‌ها روی اسلاید فراهم می‌کند.

مثال متدهای setSelectLocked، setPositionLocked و setSizeLocked را با مقدار true برای اشکال خودکار صدا می‌زند، و قفل‌های معادل برای گروه‌های شکل، اتصال‌دهنده‌ها و قاب‌های تصویر نیز اعمال می‌شوند. برای جابه‌جایی اتصال‌دهنده‌ها از setPositionMove استفاده می‌شود؛ گروه‌ها همچنین از setGroupingLocked برای محدود کردن گروه‌بندی استفاده می‌کنند.

مثال یک ارائهٔ PPTX موجود را بارگذاری می‌کند، شکل‌ها را در مجموعهٔ شکل‌های هر اسلاید بررسی می‌کند و یک کپی با این محدودیت‌ها ذخیره می‌کند. شکل‌هایی که در چهار نوع مدیریت‌شده نیستند بدون تغییر باقی می‌مانند. حلقه داخل شکل‌های فرزند یک گروه را پیمایش نمی‌کند.

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

$presentation = new Presentation("Sample.pptx");
try {
    foreach ($presentation->getSlides()->toArray() as $slide) {
        foreach ($slide->getShapes()->toArray() as $shape) {
            if (java_instanceof($shape, new JavaClass("com.aspose.slides.AutoShape"))) {
                $shapeLock = $shape->getShapeLock();
                $shapeLock->setPositionLocked(true);
                $shapeLock->setSelectLocked(true);
                $shapeLock->setSizeLocked(true);
            } elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.GroupShape"))) {
                $shapeLock = $shape->getShapeLock();
                $shapeLock->setGroupingLocked(true);
                $shapeLock->setPositionLocked(true);
                $shapeLock->setSelectLocked(true);
                $shapeLock->setSizeLocked(true);
            } elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.Connector"))) {
                $shapeLock = $shape->getShapeLock();
                $shapeLock->setPositionMove(true);
                $shapeLock->setSelectLocked(true);
                $shapeLock->setSizeLocked(true);
            } elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.PictureFrame"))) {
                $shapeLock = $shape->getShapeLock();
                $shapeLock->setPositionLocked(true);
                $shapeLock->setSelectLocked(true);
                $shapeLock->setSizeLocked(true);
            }
        }
    }

    $presentation->save("ProtectedSample.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

حذف محافظت

برای حذف قفل یک شکل، مقدار آن را به false تنظیم کنید. مثال زیر یک ارائه با قفل‌های شکل بارگذاری می‌کند و محدودیت‌های انتخاب، جابه‌جایی و تغییر اندازه را از طریق AutoShapeLock، GroupShapeLock، ConnectorLock و PictureFrameLock پاک می‌کند. همچنین محدودیت گروه‌بندی را با ارسال false به GroupShapeLock::setGroupingLocked حذف می‌کند و یک کپی از ارائه را ذخیره می‌نماید. سایر تنظیمات قفل دست‌نخورده می‌مانند.

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

$presentation = new Presentation("ProtectedSample.pptx");
try {
    foreach ($presentation->getSlides()->toArray() as $slide) {
        foreach ($slide->getShapes()->toArray() as $shape) {
            if (java_instanceof($shape, new JavaClass("com.aspose.slides.AutoShape"))) {
                $shapeLock = $shape->getShapeLock();
                $shapeLock->setPositionLocked(false);
                $shapeLock->setSelectLocked(false);
                $shapeLock->setSizeLocked(false);
            } elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.GroupShape"))) {
                $shapeLock = $shape->getShapeLock();
                $shapeLock->setGroupingLocked(false);
                $shapeLock->setPositionLocked(false);
                $shapeLock->setSelectLocked(false);
                $shapeLock->setSizeLocked(false);
            } elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.Connector"))) {
                $shapeLock = $shape->getShapeLock();
                $shapeLock->setPositionMove(false);
                $shapeLock->setSelectLocked(false);
                $shapeLock->setSizeLocked(false);
            } elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.PictureFrame"))) {
                $shapeLock = $shape->getShapeLock();
                $shapeLock->setPositionLocked(false);
                $shapeLock->setSelectLocked(false);
                $shapeLock->setSizeLocked(false);
            }
        }
    }

    $presentation->save("RemovedProtectionSample.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

نتیجه‌گیری

Aspose.Slides برای PHP از طریق Java به شما امکان می‌دهد عملیات ویرایشی خاصی را بر روی شکل‌های جداگانه محدود کنید یا همان محدودیت‌ها را بر روی اسلایدهای مختلف اعمال کنید. قفل‌های پشتیبانی‌شده توسط هر نوع شکل را انتخاب کنید و مقادیر آن‌ها را به false تنظیم کنید زمانی که نیاز به حذف این محدودیت‌ها دارید.

سوالات متداول

آیا می‌توانم قفل‌های شکل و محافظت با رمز عبور را در همان ارائه ترکیب کنم؟

بله. قفل‌های شکل عملیات‌های ویرایشی خاصی را محدود می‌کنند، در حالی که محافظت با رمز عبور می‌تواند بازکردن یا تغییر ارائه را محدود کند. می‌توانید هر دو را در یک فایل استفاده کنید.

آیا می‌توانم ویرایش را روی اسلایدهای خاص محدود کنم بدون اینکه بر اسلایدهای دیگر تأثیر بگذارد؟

بله. قفل‌ها را فقط بر روی شکل‌های اسلایدهای انتخاب‌شده اعمال کنید. این کار تنظیمات قفل در سایر اسلایدها را تغییر نمی‌دهد.

چگونه می‌توانم قفل‌ها را بر روی شکل‌های منفرد داخل یک گروه اعمال کنم؟

در مجموعه‌ای که توسط متد getShapes گروه بازگردانده می‌شود، تکرار کنید و قفل‌های مناسب را بر روی هر شکل فرزند اعمال کنید. این کار را برای هر گروه تو در تو نیز تکرار کنید. مثال‌های بالا فقط مجموعهٔ شکل‌های اسلاید را پردازش می‌کنند، بنابراین قفل‌ها را بر روی اعضای فردی یک گروه تنظیم نمی‌کنند.