จัดการการเปลี่ยนสไลด์ในการนำเสนอด้วย Java

ภาพรวม

บทความนี้อธิบายวิธีจัดการการเปลี่ยนสไลด์ในการนำเสนอด้วย Aspose.Slides โดยแสดงวิธีใช้ประเภทการเปลี่ยนสไลด์บนสไลด์ กำหนดพฤติกรรมการเปลี่ยนเช่น เลื่อนไปเมื่อคลิกหรือหลังจากเวลาที่กำหนด ตรวจสอบและปิดการเลื่อนอัตโนมัติ ใช้การเปลี่ยนแบบ Morph และประเภทของมัน พร้อมตั้งค่าตัวเลือกเอฟเฟกต์การเปลี่ยน ตัวอย่างแสดงวิธีโหลดหรือสร้างการนำเสนอ แก้ไขการตั้งค่าการเปลี่ยนสำหรับสไลด์ที่เลือก และบันทึกผลเป็นไฟล์ PPTX บทความยังตอบคำถามทั่วไปเกี่ยวกับความเร็วของการเปลี่ยน เสียงของการเปลี่ยน การใช้การเปลี่ยนเดียวกันกับหลายสไลด์ และการตรวจสอบการเปลี่ยนที่ตั้งอยู่บนสไลด์ปัจจุบัน

เพิ่มการเปลี่ยนสไลด์

เพื่อสร้างเอฟเฟกต์การเปลี่ยนสไลด์อย่างง่าย ให้ทำตามขั้นตอนด้านล่าง:

  1. สร้างอินสแตนซ์ของ Presentation class.
  2. ใช้ Slide Transition Type บนสไลด์จากหนึ่งในเอฟเฟกต์การเปลี่ยนที่ Aspose.Slides for Java มีให้ผ่าน enum TransitionType
  3. เขียนไฟล์การนำเสนอที่แก้ไขแล้ว
// สร้างอินสแตนซ์ของคลาส Presentation เพื่อโหลดไฟล์การนำเสนอต้นฉบับ
Presentation presentation = new Presentation("AccessSlides.pptx");
try {
    // ใช้การเปลี่ยนแบบวงกลมบนสไลด์ที่ 1
    presentation.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Circle);

    // ใช้การเปลี่ยนแบบคอมบบนสไลด์ที่ 2
    presentation.getSlides().get_Item(1).getSlideShowTransition().setType(TransitionType.Comb);

    // เขียนการนำเสนอลงดิสก์
    presentation.save("SampleTransition_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

เพิ่มการเปลี่ยนสไลด์ขั้นสูง

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

  1. สร้างอินสแตนซ์ของ Presentation class.
  2. ใช้ Slide Transition Type บนสไลด์จากหนึ่งในเอฟเฟกต์การเปลี่ยนที่ Aspose.Slides for Java มีให้
  3. คุณสามารถตั้งให้การเปลี่ยน Advance On Click, หลังจากระยะเวลาที่กำหนด หรือทั้งสองอย่างได้
  4. หากการเปลี่ยนสไลด์เปิดให้ Advance On Click, การเปลี่ยนจะเกิดขึ้นเมื่อมีการคลิกเมาส์เท่านั้น อีกทั้งหากตั้งค่า Advance After Time, การเปลี่ยนจะดำเนินอัตโนมัติหลังจากเวลาที่กำหนดผ่านไป
  5. เขียนการนำเสนอที่แก้ไขแล้วเป็นไฟล์การนำเสนอ
// สร้างอินสแตนซ์ของคลาส Presentation ที่แสดงไฟล์การนำเสนอ
Presentation pres = new Presentation("BetterSlideTransitions.pptx");
try {
    // ใช้การเปลี่ยนแบบวงกลมบนสไลด์ที่ 1
    pres.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Circle);

    // ตั้งเวลาการเปลี่ยนเป็น 3 วินาที
    pres.getSlides().get_Item(0).getSlideShowTransition().setAdvanceOnClick(true);
    pres.getSlides().get_Item(0).getSlideShowTransition().setAdvanceAfterTime(3000);

    // ใช้การเปลี่ยนแบบคอมบบนสไลด์ที่ 2
    pres.getSlides().get_Item(1).getSlideShowTransition().setType(TransitionType.Comb);
    
    // ตั้งเวลาการเปลี่ยนเป็น 5 วินาที
    pres.getSlides().get_Item(1).getSlideShowTransition().setAdvanceOnClick(true);
    pres.getSlides().get_Item(1).getSlideShowTransition().setAdvanceAfterTime(5000);

    // ใช้การเปลี่ยนแบบซูมบนสไลด์ที่ 3
    pres.getSlides().get_Item(2).getSlideShowTransition().setType(TransitionType.Zoom);
    
    // ตั้งเวลาการเปลี่ยนเป็น 7 วินาที
    pres.getSlides().get_Item(2).getSlideShowTransition().setAdvanceOnClick(true);
    pres.getSlides().get_Item(2).getSlideShowTransition().setAdvanceAfterTime(7000);

    // เขียนการนำเสนอลงดิสก์
    pres.save("SampleTransition_out.pptx", SaveFormat.Pptx);
} finally {
    pres.dispose();
}

การเปลี่ยนแบบ Morph

การเปลี่ยนแบบ Morph อนุญาตให้คุณทำแอนิเมชันการเคลื่อนที่อย่างราบรื่นจากสไลด์หนึ่งไปยังสไลด์ถัดไป บทความนี้อธิบายแนวคิดและวิธีใช้ Morph อย่างมีประสิทธิภาพ คุณจะต้องมีสองสไลด์ที่มีอย่างน้อยหนึ่งอ็อบเจกต์ร่วมกัน วิธีที่ง่ายที่สุดคือทำสำเนาสไลด์แล้วย้ายอ็อบเจกต์บนสไลด์ที่สองไปยังตำแหน่งอื่น

โค้ดตัวอย่างต่อไปนี้แสดงวิธีเพิ่มสำเนาของสไลด์ที่มีข้อความลงในการนำเสนอและตั้งค่าการเปลี่ยนเป็น morph type บนสไลด์ที่สอง

Presentation presentation = new Presentation();
try {
    AutoShape autoshape = (AutoShape)presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 400, 100);
    autoshape.getTextFrame().setText("Morph Transition in PowerPoint Presentations");

    presentation.getSlides().addClone(presentation.getSlides().get_Item(0));

    IShape shape = presentation.getSlides().get_Item(1).getShapes().get_Item(0);
    shape.setX(shape.getX() + 100);
    shape.setY(shape.getY() + 50);
    shape.setWidth(shape.getWidth() - 200);
    shape.setHeight(shape.getHeight() - 10);

    presentation.getSlides().get_Item(1).getSlideShowTransition().setType(com.aspose.slides.TransitionType.Morph);

    presentation.save("presentation-out.pptx", SaveFormat.Pptx);
}
finally {
    presentation.dispose();
}

ประเภทการเปลี่ยนแบบ Morph

enum TransitionMorphType ใหม่ได้ถูกเพิ่มเข้ามา ซึ่งแสดงประเภทต่าง ๆ ของการเปลี่ยนสไลด์แบบ Morph

enum TransitionMorphType มีสามสมาชิก:

  • ByObject: การเปลี่ยน Morph จะดำเนินการโดยพิจารณารูปร่างเป็นอ็อบเจกต์ที่ไม่แยกย่อย
  • ByWord: การเปลี่ยน Morph จะดำเนินการโดยถ่ายโอนข้อความเป็นคำเมื่อทำได้
  • ByChar: การเปลี่ยน Morph จะดำเนินการโดยถ่ายโอนข้อความเป็นอักขระเมื่อทำได้

โค้ดตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าการเปลี่ยน Morph บนสไลด์และเปลี่ยนประเภท Morph:

Presentation presentation = new Presentation("presentation.pptx");
try {
    presentation.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Morph);
    ((IMorphTransition)presentation.getSlides().get_Item(0).getSlideShowTransition().getValue()).setMorphType(TransitionMorphType.ByWord);
    presentation.save("presentation-out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

ตั้งค่าเอฟเฟกต์การเปลี่ยน

Aspose.Slides for Java รองรับการตั้งค่าเอฟเฟกต์การเปลี่ยน เช่น from black, from left, from right เป็นต้น เพื่อกำหนด Transition Effect โปรดทำตามขั้นตอนด้านล่าง:

  • สร้างอินสแตนซ์ของ Presentation class.
  • รับอ้างอิงของสไลด์
  • ตั้งค่าเอฟเฟกต์การเปลี่ยน
  • เขียนการนำเสนอเป็นไฟล์ PPTX file

ในตัวอย่างด้านล่าง เราได้ตั้งค่าเอฟเฟกต์การเปลี่ยน

// สร้างอินสแตนซ์ของคลาส Presentation
Presentation presentation = new Presentation("AccessSlides.pptx");
try {
    // ตั้งค่าเอฟเฟ็กต์
    presentation.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Cut);
    ((OptionalBlackTransition)presentation.getSlides().get_Item(0).getSlideShowTransition().getValue()).setFromBlack(true);
    
    // เขียนการนำเสนอลงดิสก์
    presentation.save("SetTransitionEffects_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

FAQ

ฉันสามารถควบคุมความเร็วในการเล่นของการเปลี่ยนสไลด์ได้หรือไม่?

ได้ คุณสามารถตั้งค่า speed ของการเปลี่ยนโดยใช้การตั้งค่า TransitionSpeed (เช่น ช้า/ปานกลาง/เร็ว)

ฉันสามารถแนบเสียงเข้ากับการเปลี่ยนและทำให้วนซ้ำได้หรือไม่?

ได้ คุณสามารถฝังเสียงสำหรับการเปลี่ยนและควบคุมพฤติกรรมผ่านการตั้งค่าเช่น โหมดเสียงและการวนซ้ำ (เช่น setSound, setSoundMode, setSoundLoop, รวมถึงเมตาดาต้าเช่น setSoundIsBuiltIn และ setSoundName)

วิธีที่เร็วที่สุดในการใช้การเปลี่ยนเดียวกันกับทุกสไลด์คืออะไร?

กำหนดประเภทการเปลี่ยนที่ต้องการในการตั้งค่าการเปลี่ยนของแต่ละสไลด์; การเปลี่ยนถูกจัดเก็บแยกตามสไลด์ ดังนั้นการใช้ประเภทเดียวกันทั่วทุกสไลด์จะให้ผลลัพธ์ที่สอดคล้องกัน

ฉันจะตรวจสอบว่าการเปลี่ยนใดถูกตั้งอยู่บนสไลด์ในขณะนี้ได้อย่างไร?

ตรวจสอบ transition settings ของสไลด์และอ่านค่า transition type ; ค่านั้นจะแสดงให้คุณทราบว่าเอฟเฟกต์ใดถูกนำมาใช้ในขณะนั้น