จัดการ Drawing Guides ในงานนำเสนอด้วย PHP

ภาพรวม

Guides การวาดเป็นเส้นแนวนอนและแนวตั้งที่ปรับได้ซึ่งช่วยให้ผู้ใช้จัดแนวรูปร่างอย่างสม่ำเสมอขณะแก้ไขการนำเสนอใน PowerPoint. มันมีประโยชน์เป็นพิเศษเมื่อแอปพลิเคชันสร้างการนำเสนอแล้วจะต้องทำการปรับแต่งด้วยมือต่อไป: แอปพลิเคชันสามารถบันทึกเครื่องมือจัดแนวเดียวกันที่ผู้เขียนควรปฏิบัติตามเมื่อเพิ่มหรือย้ายเนื้อหา.

Guides การวาดเป็นเครื่องมือช่วยแก้ไข ไม่ใช่เนื้อหาของสไลด์. มันไม่ปรากฏในการนำเสนอสไลด์โชว์หรือผลลัพธ์ที่เรนเดอร์. Aspose.Slides for PHP via Java เปิดเผยพวกมันผ่านคลาส DrawingGuidesCollection . ไกด์หนึ่งตัวแทนโดย DrawingGuide และมีการกำหนดทิศทาง, ตำแหน่ง, และสี.

ตำแหน่งวัดเป็นจุดจากมุมซ้าย‑บนของสไลด์หรือมาสเตอร์ที่เกี่ยวข้อง. ไกด์แนวตั้งใช้พิกัดแนวนอน, โดยปกติมีค่าระหว่างศูนย์และความกว้างของสไลด์. ไกด์แนวนอนใช้พิกัดแนวตั้ง, โดยปกติมีค่าระหว่างศูนย์และความสูงของสไลด์.

เพิ่ม Guides ให้กับมุมมองสไลด์

ใช้ CommonSlideViewProperties::getDrawingGuides เพื่อจัดการ guides ที่แสดงขณะแก้ไขสไลด์ปกติ. เรียก DrawingGuidesCollection::add พร้อมค่าที่เป็น Orientation และตำแหน่งเป็นจุด.

ตัวอย่างต่อไปนี้เพิ่มไกด์แนวตั้งหนึ่งเส้นทางด้านขวากลางสไลด์และไกด์แนวนอนหนึ่งเส้นด้านล่างมัน:

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

$presentation = new Presentation();
try {
    $slideSize = $presentation->getSlideSize()->getSize();
    $slideWidth = java_values($slideSize->getWidth());
    $slideHeight = java_values($slideSize->getHeight());
    $guides = $presentation->getViewProperties()->getSlideViewProperties()->getDrawingGuides();

    $guides->add(Orientation::Vertical, $slideWidth / 2 + 12.5);
    $guides->add(Orientation::Horizontal, $slideHeight / 2 + 12.5);

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

เข้าถึง Drawing Guides

เมธอด DrawingGuidesCollection::getCount และ DrawingGuidesCollection::get_Item ให้เข้าถึง guides ที่มีอยู่. เมธอด DrawingGuide::getOrientation, DrawingGuide::getPosition, และ DrawingGuide::getColor คืนค่าที่สามารถเปลี่ยนได้ผ่านเมธอด setter ที่สอดคล้องกัน.

ตัวอย่างต่อไปนี้อ่าน guides ของมุมมองสไลด์จากพรีเซนเทชันที่สร้างด้านบน:

use aspose\slides\Presentation;

$presentation = new Presentation("drawing-guides.pptx");
try {
    $guides = $presentation->getViewProperties()->getSlideViewProperties()->getDrawingGuides();
    $guideCount = java_values($guides->getCount());

    for ($index = 0; $index < $guideCount; $index++) {
        $guide = $guides->get_Item($index);
        $orientation = java_values($guide->getOrientation());
        $position = java_values($guide->getPosition());
        $color = java_values($guide->getColor()->toString());
        echo sprintf("Guide %d: orientation = %d, position = %.2f, color = %s", $index, $orientation, $position, $color) . PHP_EOL;
    }
} finally {
    $presentation->dispose();
}

เพิ่ม Guides ให้กับ Master และ Layout Slides

มาสเตอร์สไลด์และสไลด์เลเอาต์แต่ละอันสามารถมีคอลเลกชัน Drawing‑Guide ของตนเอง. ใช้ MasterSlide::getDrawingGuides สำหรับมาสเตอร์สไลด์และ LayoutSlide::getDrawingGuides สำหรับสไลด์เลเอาต์.

ตัวอย่างต่อไปนี้เพิ่มไกด์แนวตั้งหนึ่งเส้นให้กับมาสเตอร์สไลด์แรกและไกด์แนวนอนหนึ่งเส้นให้กับสไลด์เลเอาต์แรก:

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

$presentation = new Presentation();
try {
    $slideSize = $presentation->getSlideSize()->getSize();
    $slideWidth = java_values($slideSize->getWidth());
    $slideHeight = java_values($slideSize->getHeight());
    $masterGuides = $presentation->getMasters()->get_Item(0)->getDrawingGuides();
    $layoutGuides = $presentation->getLayoutSlides()->get_Item(0)->getDrawingGuides();

    $masterGuides->add(Orientation::Vertical, $slideWidth / 2 - 20);
    $layoutGuides->add(Orientation::Horizontal, $slideHeight / 2 + 20);

    $presentation->save("master-layout-drawing-guides.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

เพิ่ม Guides ให้กับ Notes และ Handout Masters

มาสเตอร์ของโน้ตและมาสเตอร์ของเอกสารแจกก็รองรับ Drawing Guides ด้วย. ใช้ MasterNotesSlide::getDrawingGuides และ MasterHandoutSlide::getDrawingGuides เพื่อเข้าถึงคอลเลกชันของพวกเขา. หากพรีเซนเทชันไม่มีมาสเตอร์ประเภทใดประเภทหนึ่งหนึ่ง ให้ดึงผู้จัดการที่เหมาะสมด้วย Presentation::getMasterNotesSlideManager หรือ Presentation::getMasterHandoutSlideManager, แล้วสร้างมาสเตอร์ค่าเริ่มต้นด้วย setDefaultMasterNotesSlide หรือ setDefaultMasterHandoutSlide.

ตัวอย่างต่อไปนี้เพิ่มไกด์แนวนอนหนึ่งเส้นให้กับมาสเตอร์โน้ตและไกด์แนวตั้งหนึ่งเส้นให้กับมาสเตอร์เอกสารแจก:

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

$presentation = new Presentation();
try {
    $notesSize = $presentation->getNotesSize()->getSize();
    $notesWidth = java_values($notesSize->getWidth());
    $notesHeight = java_values($notesSize->getHeight());
    $notesMaster = $presentation->getMasterNotesSlideManager()->setDefaultMasterNotesSlide();
    $handoutMaster = $presentation->getMasterHandoutSlideManager()->setDefaultMasterHandoutSlide();

    $notesMaster->getDrawingGuides()->add(Orientation::Horizontal, $notesHeight / 2 + 50);
    $handoutMaster->getDrawingGuides()->add(Orientation::Vertical, $notesWidth / 2 - 50);

    $presentation->save("notes-handout-drawing-guides.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

ลบ Drawing Guides

เรียก DrawingGuidesCollection::clear เพื่อเอาไกด์ทุกเส้นออกจากคอลเลกชันที่ระบุ. การลบคอลเลกชันหนึ่งไม่ได้กระทบต่อไกด์ที่เก็บไว้ในขอบเขตอื่น.

ตัวอย่างต่อไปนี้ลบ guides ของมุมมองสไลด์และทุกไกด์บนมาสเตอร์สไลด์, สไลด์เลเอาต์, มาสเตอร์โน้ต, และมาสเตอร์เอกสารแจกโดยไม่ต้องสร้างมาสเตอร์ที่หายไป:

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

$presentation = new Presentation("presentation-with-guides.pptx");
try {
    $presentation->getViewProperties()->getSlideViewProperties()->getDrawingGuides()->clear();

    $masterCount = java_values($presentation->getMasters()->size());
    for ($index = 0; $index < $masterCount; $index++) {
        $presentation->getMasters()->get_Item($index)->getDrawingGuides()->clear();
    }

    $layoutCount = java_values($presentation->getLayoutSlides()->size());
    for ($index = 0; $index < $layoutCount; $index++) {
        $presentation->getLayoutSlides()->get_Item($index)->getDrawingGuides()->clear();
    }

    $notesMaster = $presentation->getMasterNotesSlideManager()->getMasterNotesSlide();
    if (!java_is_null($notesMaster)) {
        $notesMaster->getDrawingGuides()->clear();
    }

    $handoutMaster = $presentation->getMasterHandoutSlideManager()->getMasterHandoutSlide();
    if (!java_is_null($handoutMaster)) {
        $handoutMaster->getDrawingGuides()->clear();
    }

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

FAQ

Guides การวาดปรากฏในสไลด์โชว์หรือภาพที่ส่งออกหรือไม่?

ไม่. Guides การวาดเป็นเครื่องมือจัดแนวสำหรับการแก้ไขและไม่ได้แสดงเป็นเนื้อหาการนำเสนอ.

สามารถเพิ่ม Drawing Guide ลงในสไลด์ปกติแต่ละสไลด์โดยตรงได้หรือไม่?

Guides สำหรับการแก้ไขสไลด์ปกติจะถูกเก็บไว้ในคุณสมบัติของมุมมองสไลด์ของพรีเซนเทชัน. มีคอลเลกชัน Guides แยกต่างหากสำหรับมาสเตอร์สไลด์, สไลด์เลเอาต์, มาสเตอร์โน้ต, และมาสเตอร์เอกสารแจก.

หน่วยใดใช้สำหรับตำแหน่งของ Guide?

ตำแหน่งระบุเป็นจุด, โดยที่ 72 จุดเท่ากับหนึ่งนิ้ว. ตำแหน่งแนวตั้งวัดจากขอบซ้าย, และตำแหน่งแนวนอนวัดจากขอบบน.

การลบ Drawing Guides จะลบรูปทรงหรือเปลี่ยนเนื้อหาสไลด์หรือไม่?

ไม่. เมธอด DrawingGuidesCollection::clear จะลบเฉพาะ Guides ในคอลเลกชันที่เลือก. รูปทรงและเนื้อหาอื่น ๆ ของสไลด์จะคงอยู่โดยไม่มีการเปลี่ยนแปลง.