ดึงข้อมูลและอัปเดตคุณสมบัติมุมมองของงานนำเสนอใน PHP

บทนำ

มุมมองปกติมีทั้งหมดสามพื้นที่เนื้อหา: สไลด์เอง, พื้นที่เนื้อหาด้านข้าง, และพื้นที่เนื้อหาทางด้านล่าง. คุณสมบัติที่เกี่ยวกับตำแหน่งของพื้นที่เนื้อหาต่าง ๆ นี้ทำให้แอปพลิเคชันสามารถบันทึกสถานะมุมมองลงในไฟล์, เพื่อให้เมื่อเปิดใหม่มุมมองอยู่ในสภาพเดียวกับที่บันทึกล่าสุดของงานนำเสนอ.

Method ViewProperties::getNormalViewProperties ได้ถูกเพิ่มเพื่อให้เข้าถึงคุณสมบัติมุมมองปกติของงานนำเสนอ.

NormalViewProperties, NormalViewRestoredProperties classes และคลาสลูกของมัน, SplitterBarStateType enum ได้ถูกเพิ่ม.

เกี่ยวกับ INormalViewProperties

แสดงถึงคุณสมบัติมุมมองปกติ.

Method getShowOutlineIcons และ setShowOutlineIcons ระบุว่าภายในโหมดมุมมองปกติแอปพลิเคชันควรแสดงไอคอนหรือไม่เมื่อแสดงเนื้อหาโครงร่างในพื้นที่เนื้อหาใด ๆ

Method getSnapVerticalSplitter และ setSnapVerticalSplitter ระบุว่าตัวแบ่งแนวตั้งควรสแนปไปสภาพย่อเล็กเมื่อพื้นที่ด้านข้างมีขนาดเล็กพอ

Property getPreferSingleView และ setPreferSingleView ระบุว่าผู้ใช้ต้องการมองเห็นพื้นที่เนื้อหาเดียวเต็มหน้าต่างแทนมุมมองปกติแบบสามพื้นที่หรือไม่ หากเปิดใช้งาน แอปพลิเคชันอาจเลือกแสดงหนึ่งในพื้นที่เนื้อหาให้เต็มหน้าต่าง

Method getVerticalBarState และ getHorizontalBarState ระบุสภาพที่แถบแบ่งแนวตั้งหรือแนวนอนควรแสดง. แถบแบ่งแนวนอนจะแยกสไลด์ออกจากพื้นที่เนื้อหาด้านล่าง, ส่วนแถบแบ่งแนวตั้งจะแยกสไลด์ออกจากพื้นที่เนื้อหาด้านข้าง. ค่าที่เป็นไปได้คือ: SplitterBarStateType::Minimized, SplitterBarStateType::Maximized และ SplitterBarStateType::Restored.

Method getRestoredLeft และ getRestoredTop ระบุขนาดของพื้นที่สไลด์ด้านบนหรือด้านข้างของมุมมองปกติ, เมื่อค่า SplitterBarStateType::Restored ถูกนำไปใช้กับ getVerticalBarState และ getHorizontalBarState ตามลำดับ.

เกี่ยวกับการคืนค่า INormalViewProperties

ระบุขนาดของพื้นที่สไลด์ (ความกว้างเมื่อเป็นลูกของ getRestoredTop, ความสูงเมื่อเป็นลูกของ getRestoredLeft) ของมุมมองปกติ, เมื่พื้นที่มีขนาดที่เปลี่ยนแปลงได้ (ไม่ย่อเล็กและไม่ขยายเต็ม).

Method getDimensionSize ระบุขนาดของพื้นที่สไลด์ (ความกว้างเมื่อเป็นลูกของ restoredTop, ความสูงเมื่อเป็นลูกของ restoredLeft).

Method 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();
  }

คำถามที่พบบ่อย

ฉันสามารถตั้งค่ามุมมองที่แตกต่างสำหรับส่วนต่าง ๆ ของการนำเสนอได้หรือไม่?

View settings ถูกกำหนดที่ระดับงานนำเสนอ (Normal View/Slide View), ไม่ได้แยกตามส่วน, ดังนั้นชุดพารามิเตอร์เดียวจะนำไปใช้กับเอกสารทั้งหมดเมื่อเปิด.

ฉันสามารถกำหนดค่าเริ่มต้นของมุมมองสำหรับผู้ใช้คนต่าง ๆ ได้หรือไม่?

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

ฉันสามารถสร้างเทมเพลตที่มี View Properties ถูกกำหนดล่วงหน้าเพื่อให้งานนำเสนอใหม่เปิดด้วยการตั้งค่าเดียวกันได้หรือไม่?

ได้. เนื่องจาก view properties ถูกจัดเก็บที่ระดับงานนำเสนอ, คุณสามารถฝังมันลงในเทมเพลตและสร้างเอกสารใหม่จากเทมเพลตนั้นเพื่อให้มีการกำหนดค่ามุมมองเริ่มต้นเดียวกัน.