تقييد تعديلات العرض باستخدام أقفال الأشكال في PHP

نظرة عامة

الاستخدام الشائع لـ Aspose.Slides for PHP via Java هو إنشاء وتحديث وحفظ عروض PowerPoint (PPTX) كجزء من سير عمل آلي. عندما يتلقى المستخدمون هذه العروض، يمكن أن يساعد تقييد التغييرات على الأشكال في الحفاظ على التخطيط والمحتوى المقصود.

تشرح هذه المقالة كيفية تنظيم الأشكال على الشرائح وكيفية تطبيق وإزالة أقفال الأشكال في عرض PPTX. تتيح لك هذه الأقفال تقييد عمليات التحرير المحددة على الأشكال الفردية.

تكوين الشريحة

تتكون شريحة العرض من مكونات مثل الأشكال التلقائية، الجداول، كائنات OLE، الأشكال المجمعة، إطارات الصور، إطارات الفيديو، الموصلات، وعناصر أخرى تُستخدم لبناء العرض. في Aspose.Slides for PHP via Java، يُمثَّل كل عنصر على الشريحة بكائن يرث من الفئة Shape .

تُظهر أنواع الأشكال المختلفة خيارات قفل مختلفة. الفئة BaseShapeLock هي الفئة الأساسية لأقفال الأشكال. توفر Aspose.Slides for PHP via Java الفئات القفلية التالية:

لتطبيق الأقفال عبر Presentation، قم بالتكرار عبر شرائحه واضبط الأقفال المناسبة على كل شكل مدعوم.

تطبيق وإزالة الحماية

أقفال الأشكال تقيّد عمليات مثل اختيار الأشكال، نقلها، وتغيير حجمها. ولا تجعل العرض بالكامل غير قابل للتحرير.

تطبيق الحماية على أشكال PPTX

توفر Aspose.Slides for PHP via 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 for PHP via Java تقييد عمليات التحرير المحددة على الأشكال الفردية أو تطبيق نفس القيود عبر الشرائح. اختر الأقفال المدعومة من كل نوع شكل، واضبط قيمها على false عندما تحتاج إلى إزالة تلك القيود.

الأسئلة الشائعة

هل يمكنني الجمع بين أقفال الأشكال وحماية كلمة المرور في نفس العرض؟

نعم. تقيد أقفال الأشكال عمليات التحرير المحددة، بينما حماية كلمة المرور يمكنها تقييد فتح أو تعديل العرض. يمكنك استخدام كلاهما في نفس الملف.

هل يمكنني تقييد التحرير على شرائح معينة دون التأثير على غيرها؟

نعم. قم بتطبيق الأقفال فقط على الأشكال في الشرائح المختارة. هذا لا يغيّر إعدادات الأقفال في الشرائح الأخرى.

كيف يمكنني تطبيق الأقفال على الأشكال الفردية داخل مجموعة؟

قم بالتكرار عبر المجموعة التي تُرجعها طريقة getShapes للمجموعة وطبق الأقفال المناسبة على كل شكل فرعي. كرر ذلك لأي مجموعات متداخلة. الأمثلة أعلاه تعالج فقط مجموعة الأشكال في الشريحة، لذلك لا تقوم بتعيين أقفال على أعضاء المجموعة الفرديين.