ใช้หรือเปลี่ยนรูปแบบสไลด์ใน Java
บทนำ
รูปแบบสไลด์กำหนดการจัดวางกล่องตัวแทนและการจัดรูปแบบสำหรับเนื้อหาบนสไลด์ โดยควบคุมว่าตัวแทนใดบ้างที่พร้อมใช้งานและปรากฏที่ใด รูปแบบสไลด์ช่วยให้คุณออกแบบการพรีเซนเทชันอย่างรวดเร็วและสอดคล้องกัน—ไม่ว่าจะสร้างสิ่งง่าย ๆ หรือตัวที่ซับซ้อน บางรูปแบบสไลด์ที่พบบ่อยใน PowerPoint มีดังนี้:
Title Slide layout – มีตัวแทนข้อความสองกล่อง: หนึ่งสำหรับหัวเรื่องและอีกหนึ่งสำหรับหัวเรื่องย่อย
Title and Content layout – มีตัวแทนหัวเรื่องขนาดเล็กด้านบนและตัวแทนเนื้อหาหลักที่ใหญ่กว่าอยู่ด้านล่าง (เช่น ข้อความ, จุดรายการ, แผนภูมิ, รูปภาพ ฯลฯ)
Blank layout – ไม่มีตัวแทนใด ๆ ทำให้คุณมีอิสระเต็มที่ในการออกแบบสไลด์ตั้งแต่ต้น
รูปแบบสไลด์เป็นส่วนหนึ่งของหน้าผู้นำสไลด์ (slide master) ซึ่งเป็นสไลด์ระดับบนสุดที่กำหนดสไตล์การจัดวางสำหรับการพรีเซนเทชัน คุณสามารถเข้าถึงและแก้ไขสไลด์รูปแบบผ่านหน้าผู้นำสไลด์—โดยอ้างอิงตามประเภท, ชื่อ หรือ ID ที่ไม่ซ้ำ เรือ, คุณสามารถแก้ไขสไลด์รูปแบบเฉพาะโดยตรงภายในพรีเซนเทชันได้
เพื่อทำงานกับรูปแบบสไลด์ใน Aspose.Slides for Java, คุณสามารถใช้:
- วิธีการเช่น getLayoutSlides และ getMasters ภายใต้คลาส Presentation
- ประเภทเช่น ILayoutSlide, IMasterLayoutSlideCollection, ILayoutPlaceholderManager, และ ILayoutSlideHeaderFooterManager
Info
เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานกับหน้าผู้นำสไลด์, ดูบทความ Slide Master ได้เลยเพิ่มรูปแบบสไลด์ลงในการพรีเซนเทชัน
หากต้องการปรับแต่งรูปลักษณ์และโครงสร้างของสไลด์, คุณอาจต้องเพิ่มสไลด์รูปแบบใหม่ลงในพรีเซนเทชัน Aspose.Slides for Java จะช่วยให้คุณตรวจสอบว่ารูปแบบที่ต้องการมีอยู่แล้วหรือไม่, เพิ่มใหม่หากจำเป็น, และใช้เพื่อแทรกสไลด์ที่อิงตามรูปแบบนั้น
- สร้างออบเจ็กต์จากคลาส Presentation
- เข้าถึง IMasterLayoutSlideCollection
- ตรวจสอบว่ารูปแบบสไลด์ที่ต้องการมีอยู่ในคอลเลกชันหรือไม่ ถ้าไม่มีให้เพิ่มรูปแบบสไลด์ที่ต้องการ
- เพิ่มสไลด์ว่างที่อิงตามรูปแบบสไลด์ใหม่
- บันทึกพรีเซนเทชัน
โค้ด Java ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มรูปแบบสไลด์ลงในพรีเซนเทชัน PowerPoint:
// สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นไฟล์ PowerPoint.
Presentation presentation = new Presentation("Sample.pptx");
try {
// ดำเนินการตรวจสอบประเภทสไลด์เลย์เอาต์เพื่อเลือกสไลด์เลย์เอาต์.
IMasterLayoutSlideCollection layoutSlides = presentation.getMasters().get_Item(0).getLayoutSlides();
ILayoutSlide layoutSlide = null;
if (layoutSlides.getByType(SlideLayoutType.TitleAndObject) != null)
layoutSlide = layoutSlides.getByType(SlideLayoutType.TitleAndObject);
else
layoutSlide = layoutSlides.getByType(SlideLayoutType.Title);
if (layoutSlide == null) {
// สถานการณ์ที่พรีเซนเทชันไม่ได้มีประเภทเลย์เอาต์ทั้งหมด.
// ไฟล์พรีเซนเทชันมีเพียงประเภทเลย์เอตต์ Blank และ Custom เท่านั้น.
// อย่างไรก็ตาม สไลด์เลย์เอาต์ที่มีประเภทแบบกำหนดเองอาจมีชื่อที่จำง่าย,
// เช่น "Title", "Title and Content", เป็นต้น ซึ่งสามารถใช้ในการเลือกสไลด์เลย์เอาต์ได้.
// คุณยังสามารถอาศัยชุดของประเภทรูปทรงตัวแทนได้.
// ตัวอย่างเช่น สไลด์ Title ควรมีเพียงประเภทตัวแทน Title เท่านั้น เป็นต้น.
for (ILayoutSlide titleAndObjectLayoutSlide : layoutSlides) {
if (titleAndObjectLayoutSlide.getName().equals("Title and Object")) {
layoutSlide = titleAndObjectLayoutSlide;
break;
}
}
if (layoutSlide == null) {
for (ILayoutSlide titleLayoutSlide : layoutSlides) {
if (titleLayoutSlide.getName().equals("Title")) {
layoutSlide = titleLayoutSlide;
break;
}
}
if (layoutSlide == null) {
layoutSlide = layoutSlides.getByType(SlideLayoutType.Blank);
if (layoutSlide == null) {
layoutSlide = layoutSlides.add(SlideLayoutType.TitleAndObject, "Title and Object");
}
}
}
}
// เพิ่มสไลด์เปล่าโดยใช้สไลด์เลย์เอาต์ที่เพิ่มเข้ามา.
presentation.getSlides().insertEmptySlide(0, layoutSlide);
// บันทึกพรีเซนเทชันลงดิสก์.
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ลบสไลด์เลย์เอาต์ที่ไม่ได้ใช้
Aspose.Slides มีเมธอด removeUnusedLayoutSlides จากคลาส Compress เพื่อให้คุณลบสไลด์เลย์เอาต์ที่ไม่ต้องการและไม่ได้ใช้ได้
โค้ด Java ตัวอย่างต่อไปนี้แสดงวิธีลบสไลด์เลย์เอาต์จากพรีเซนเทชัน PowerPoint:
Presentation presentation = new Presentation("Presentation.pptx");
try {
Compress.removeUnusedLayoutSlides(presentation);
presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
เพิ่มตัวแทนลงในรูปแบบสไลด์
Aspose.Slides มีเมธอด ILayoutSlide.getPlaceholderManager ที่ช่วยให้คุณเพิ่มตัวแทนใหม่ลงในสไลด์รูปแบบ
ผู้จัดการนี้มีเมธอดสำหรับประเภทตัวแทนต่อไปนี้:
| PowerPoint Placeholder | Method |
|---|---|
![]() |
addContentPlaceholder(float x, float y, float width, float height) |
![]() |
addVerticalContentPlaceholder(float x, float y, float width, float height) |
![]() |
addTextPlaceholder(float x, float y, float width, float height) |
![]() |
addVerticalTextPlaceholder(float x, float y, float width, float height) |
![]() |
addPicturePlaceholder(float x, float y, float width, float height) |
![]() |
addChartPlaceholder(float x, float y, float width, float height) |
![]() |
addTablePlaceholder(float x, float y, float width, float height) |
![]() |
addSmartArtPlaceholder(float x, float y, float width, float height) |
![]() |
addMediaPlaceholder(float x, float y, float width, float height) |
![]() |
addOnlineImagePlaceholder(float x, float y, float width, float height) |
โค้ด Java ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มรูปทรงตัวแทนใหม่ลงในสไลด์รูปแบบ Blank:
Presentation presentation = new Presentation();
try {
// ดึงสไลด์เลย์เอาต์ Blank.
ILayoutSlide layout = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);
// ดึงตัวจัดการตัวแทนของสไลด์เลย์เอต.
ILayoutPlaceholderManager placeholderManager = layout.getPlaceholderManager();
// เพิ่มตัวแทนหลายประเภทลงในสไลด์เลย์เอาต์ Blank.
placeholderManager.addContentPlaceholder(20, 20, 310, 270);
placeholderManager.addVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager.addChartPlaceholder(20, 310, 310, 180);
placeholderManager.addTablePlaceholder(350, 310, 350, 180);
// เพิ่มสไลด์ใหม่ด้วยเลย์เอาต์ Blank.
ISlide newSlide = presentation.getSlides().addEmptySlide(layout);
presentation.save("Placeholders.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ผลลัพธ์:

ตั้งค่าการมองเห็นส่วนท้ายสำหรับสไลด์เลย์เอาต์
ในพรีเซนเทชัน PowerPoint, ส่วนท้ายเช่น วันที่, หมายเลขสไลด์, และข้อความกำหนดเองสามารถแสดงหรือซ่อนได้ตามรูปแบบสไลด์ Aspose.Slides for Java ให้คุณควบคุมการมองเห็นของตัวแทนส่วนท้ายเหล่านี้ ซึ่งมีประโยชน์เมื่อคุณต้องการให้บางรูปแบบแสดงข้อมูลส่วนท้ายขณะที่รูปแบบอื่นคงความเรียบง่าย
- สร้างออบเจ็กต์จากคลาส Presentation
- ดึงอ้างอิงสไลด์รูปแบบด้วยดัชนีของมัน
- ตั้งค่าตัวแทนส่วนท้ายของสไลด์ให้เป็นแบบมองเห็น
- ตั้งค่าตัวแทนหมายเลขสไลด์ให้เป็นแบบมองเห็น
- ตั้งค่าตัวแทนวัน‑เวลาให้เป็นแบบมองเห็น
- บันทึกพรีเซนเทชัน
โค้ด Java ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าการมองเห็นของส่วนท้ายสไลด์และทำงานที่เกี่ยวข้อง:
Presentation presentation = new Presentation("Presentation.ppt");
try {
ILayoutSlideHeaderFooterManager headerFooterManager = presentation.getLayoutSlides().get_Item(0).getHeaderFooterManager();
if (!headerFooterManager.isFooterVisible()) {
headerFooterManager.setFooterVisibility(true);
}
if (!headerFooterManager.isSlideNumberVisible()) {
headerFooterManager.setSlideNumberVisibility(true);
}
if (!headerFooterManager.isDateTimeVisible()) {
headerFooterManager.setDateTimeVisibility(true);
}
headerFooterManager.setFooterText("Footer text");
headerFooterManager.setDateTimeText("Date and time text");
presentation.save("Presentation.ppt", SaveFormat.Ppt);
} finally {
presentation.dispose();
}
ตั้งค่าการมองเห็นส่วนท้ายของสไลด์ลูก
ในพรีเซนเทชัน PowerPoint, ส่วนท้ายเช่น วันที่, หมายเลขสไลด์, และข้อความกำหนดเองสามารถควบคุมได้ระดับหน้าผู้นำสไลด์เพื่อให้สอดคล้องทั่วทั้งสไลด์รูปแบบ Aspose.Slides for Java ช่วยให้คุณตั้งค่าการมองเห็นและเนื้อหาของตัวแทนส่วนท้ายเหล่านี้บนหน้าผู้นำสไลด์และกระจายการตั้งค่าเหล่านั้นไปยังสไลด์รูปแบบลูกทั้งหมด วิธีนี้ทำให้ข้อมูลส่วนท้ายเหมือนกันทั่วพรีเซนเทชันของคุณ
- สร้างออบเจ็กต์จากคลาส Presentation
- ดึงอ้างอิงหน้าผู้นำสไลด์ด้วยดัชนีของมัน
- ตั้งค่าตัวแทนส่วนท้ายของหน้าผู้นำและสไลด์ลูกทั้งหมดให้เป็นแบบมองเห็น
- ตั้งค่าตัวแทนหมายเลขสไลด์ของหน้าผู้นำและสไลด์ลูกทั้งหมดให้เป็นแบบมองเห็น
- ตั้งค่าตัวแทนวัน‑เวลาของหน้าผู้นำและสไลด์ลูกทั้งหมดให้เป็นแบบมองเห็น
- บันทึกพรีเซนเทชัน
โค้ด Java ตัวอย่างต่อไปนี้แสดงการดำเนินการนี้:
Presentation presentation = new Presentation("Presentation.ppt");
try {
IMasterSlideHeaderFooterManager headerFooterManager = presentation.getMasters().get_Item(0).getHeaderFooterManager();
headerFooterManager.setFooterAndChildFootersVisibility(true);
headerFooterManager.setSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager.setDateTimeAndChildDateTimesVisibility(true);
headerFooterManager.setFooterAndChildFootersText("Footer text");
headerFooterManager.setDateTimeAndChildDateTimesText("Date and time text");
presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
คำถามที่พบบ่อย
ความแตกต่างระหว่างหน้าผู้นำสไลด์และสไลด์เลย์เอาต์คืออะไร?
หน้าผู้นำสไลด์กำหนดธีมโดยรวมและการจัดรูปแบบเริ่มต้น, ส่วนสไลด์เลย์เอาต์กำหนดการจัดวางตัวแทนเฉพาะสำหรับประเภทเนื้อหาต่าง ๆ
ฉันสามารถคัดลอกสไลด์เลย์เอาต์จากพรีเซนเทชันหนึ่งไปยังอีกพรีเซนเทชันได้หรือไม่?
ได้, คุณสามารถโคลนสไลด์เลย์เอาต์จากคอลเลกชันสไลด์เลย์เออตของพรีเซนเทชันหนึ่ง (เข้าถึงได้ผ่านเมธอด getLayoutSlides) แล้วแทรกลงในพรีเซนเทชันอื่นโดยใช้เมธอด addClone
เกิดอะไรขึ้นหากฉันลบสไลด์เลย์เอาต์ที่ยังถูกสไลด์อื่นใช้อยู่?
หากคุณพยายามลบสไลด์เลย์เอาต์ที่ยังมีสไลด์อย่างน้อยหนึ่งสไลด์อ้างอิงถึง, Aspose.Slides จะโยนข้อยกเว้น PptxEditException. เพื่อหลีกเลี่ยงสถานการณ์นี้, ใช้เมธอด removeUnusedLayoutSlides ซึ่งจะลบสไลด์เลย์เอาต์ที่ไม่ได้ใช้อย่างปลอดภัย









