นำไปใช้หรือเปลี่ยนแปลงเค้าโครงสไลด์บน Android
ภาพรวม
เค้าโครงสไลด์กำหนดตำแหน่งและรูปแบบของตัวแทนตำแหน่งต่าง ๆ เช่น ชื่อเรื่อง, ข้อความ, รูปภาพ, แผนภูมิ, และตาราง การใช้เค้าโครงทำให้สไลด์มีโครงสร้างที่สอดคล้องกันพร้อมกับให้แต่ละสไลด์สามารถมีเนื้อหาของตนเองได้
เค้าโครงที่พบบ่อยที่สุดได้แก่:
- สไลด์หัวเรื่อง: มีตัวแทนตำแหน่งชื่อเรื่องและชื่อเรื่องย่อย
- หัวเรื่องและเนื้อหา: มีตัวแทนตำแหน่งชื่อเรื่องและตัวแทนตำแหน่งเนื้อหาทั่วไป
- ว่าง: ไม่มีตัวแทนตำแหน่งเนื้อหาและมีประโยชน์เมื่อทุกรูปทรงต้องกำหนดตำแหน่งด้วยตนเอง
ทำความเข้าใจการสืบทอดเค้าโครง
การนำเสนอมีระดับที่เกี่ยวข้องสามระดับ:
- มาสเตอร์สไลด์ กำหนดธีม การจัดรูปแบบที่ใช้ร่วมกัน พื้นหลัง และวัตถุทั่วไป
- เลย์เอาต์สไลด์ เป็นส่วนหนึ่งของมาสเตอร์และกำหนดการจัดเรียงตัวแทนตำแหน่งเฉพาะ
- สไลด์ปกติ ใช้เลย์เอาต์หนึ่งและเก็บเนื้อหาที่ป้อนสำหรับสไลด์นั้น
สไลด์ปกติสืบทอดธีมและการจัดรูปแบบจากเลย์เอาต์ของมัน และเลย์เอาต์สืบทอดจากมาสเตอร์ ค่าที่กำหนดโดยตรงบนสไลด์ปกติจะทับค่าที่สืบทอดไว้ในระดับนั้น เมื่อสร้างสไลด์ปกติ ตัวรูปทรงตัวแทนตำแหน่งจะถูกสร้างจากเลย์เอาต์ที่เลือกไว้ ในขณะที่เนื้อหาที่ป้อนลงในตัวแทนตำแหน่งเหล่านั้นเป็นของสไลด์ปกติ
เพิ่มตัวแทนตำแหน่งที่จำเป็นลงในเลย์เอาต์ก่อนสร้างสไลด์จากมัน การเพิ่มตัวแทนตำแหน่งใหม่ในเลย์เอาต์ภายหลังจะไม่ทำให้สไลด์ปกติที่มีอยู่แล้วเพิ่มรูปทรงตัวแทนตำแหน่งโดยอัตโนมัติ
ความสัมพันธ์นี้มีผลสำคัญสองประการ:
- การเปลี่ยนการจัดรูปแบบที่สืบทอดหรือรูปทรงของตัวแทนตำแหน่งที่มีอยู่บนเลย์เอาต์อาจอัปเดตสไลด์ทั้งหมดที่พึ่งพาเลย์เอาต์นั้น ก่อนแก้ไขเลย์เอาต์ที่กำลังใช้งานอยู่ให้ตรวจสอบสไลด์ที่พึ่งพาและตรวจทานผลลัพธ์ของการนำเสนอ
- เลย์เอาต์ที่ยังถูกสไลด์ใช้งานอยู่ไม่สามารถลบได้ ต้องมอบหมายสไลด์ที่พึ่งพาให้กับเลย์เอาต์อื่นก่อน หรือทำการลบเฉพาะเลย์เอาต์ที่ไม่ได้ใช้
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับระดับบนสุดของโครงสร้างนี้ ดูที่ มาสเตอร์สไลด์
เพื่อซ่อนโลโก้หรือรูปแบบมาสเตอร์ที่สืบทอดบนสไลด์เดียวหรือผ่านเลย์เอาต์ที่ใช้ร่วมกัน ดูที่ ควบคุมการมองเห็นกราฟิกมาสเตอร์ ตัวอย่างเปรียบเทียบสองสไลด์ที่ใช้มาสเตอร์เดียวกัน
เลือกและใช้เค้าโครงสไลด์
ใช้ประเภทเค้าโครงเมื่อการนำเสนอปฏิบัติตามคำนิยามเค้าโครง PowerPoint มาตรฐาน ชื่อเค้าโครงสามารถแก้ไขได้โดยผู้ใช้และสามารถแปลเป็นภาษาต่าง ๆ ได้ ดังนั้นการเลือกโดยอ้างอิงชื่ออาจไม่เชื่อถือได้หากคุณไม่ได้ควบคุมแม่แบบต้นฉบับ
ตัวอย่างต่อไปมองหา หัวเรื่องและเนื้อหา บนมาสเตอร์แรก หากเค้าโครงนั้นไม่มีอยู่จะย้อนกลับไปใช้ ว่าง โดยเจตนา การตรวจสอบค่า null ครั้งที่สองจำเป็นเพราะการนำเสนออาจมีเฉพาะเค้าโครงที่กำหนดเองเท่านั้น เค้าโครงที่เลือกแล้วจะถูกนำไปใช้กับสไลด์ปกติแรกผ่านเมธอด ISlide.setLayoutSlide
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
IMasterLayoutSlideCollection layoutSlides = presentation.getMasters().get_Item(0).getLayoutSlides();
ILayoutSlide targetLayout = layoutSlides.getByType(SlideLayoutType.TitleAndObject);
if (targetLayout == null) {
targetLayout = layoutSlides.getByType(SlideLayoutType.Blank);
}
if (targetLayout == null) {
throw new IllegalStateException("The first master does not contain a suitable layout slide.");
}
presentation.getSlides().get_Item(0).setLayoutSlide(targetLayout);
presentation.save("output-with-new-layout.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
การเปลี่ยนเค้าโครงของสไลด์จะไม่ลบรูปทรงปกติที่เพิ่มโดยตรงลงในสไลด์ อย่างไรก็ตาม ตำแหน่งของตัวแทนตำแหน่ง การจัดรูปแบบที่สืบทอด และความสัมพันธ์ระหว่างตัวแทนตำแหน่งที่มีอยู่กับเค้าโครงใหม่อาจเปลี่ยนแปลงได้ ดังนั้นให้ตรวจสอบผลลัพธ์เมื่อสลับระหว่างเค้าโครงที่แตกต่างกันอย่างมาก
เพิ่มเค้าโครงสไลด์
การเลือกและการสร้างเป็นการทำงานที่แยกจากกัน ตัวอย่างก่อนหน้าเลือกเค้าโครงที่มีอยู่แล้ว; ไม่ได้สร้างเค้าโครงใหม่ เพื่อสร้างเค้าโครง ให้เรียกเมธอด IMasterLayoutSlideCollection.add บนคอลเลกชันเลย์เอาต์ของมาสเตอร์เป้าหมาย
ตัวอย่างต่อไปจะเพิ่มเค้าโครง หัวเรื่องและเนื้อหา ใหม่ที่ชื่อ Report Title and Content เสมอ แล้วจึงเพิ่มสไลด์ปกติที่อิงจากเค้าโครงนั้น ชื่อเค้าโครงต้องไม่ซ้ำกันภายในคอลเลกชัน
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
ILayoutSlide reportLayout = masterSlide.getLayoutSlides().add(SlideLayoutType.TitleAndObject, "Report Title and Content");
presentation.getSlides().addEmptySlide(reportLayout);
presentation.save("output-with-report-layout.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
เพิ่มเค้าโครงเฉพาะเมื่อแม่แบบต้องการโครงสร้างที่ใช้งานซ้ำได้จริง หากเค้าโครงที่เหมาะสมมีอยู่แล้ว ให้เลือกและใช้ซ้ำแทนการสร้างสำเนาใหม่
เพิ่มตัวแทนตำแหน่งในเค้าโครงสไลด์
เมธอด ILayoutSlide.getPlaceholderManager ให้บริการ ILayoutPlaceholderManager สำหรับการเพิ่มรูปทรงตัวแทนตำแหน่งลงในเค้าโครง
ตัวอย่างต่อไปตรวจสอบว่าเค้าโครง ว่าง มีอยู่แล้ว เพิ่มตัวแทนตำแหน่งสี่ตำแหน่งลงในมัน แล้วจึงสร้างสไลด์ปกติที่ใช้เค้าโครงที่แก้ไขแล้ว การจัดลำดับนี้ตั้งใจไว้: ตัวแทนตำแหน่งถูกเพิ่มก่อนสร้างสไลด์ปกติเพื่อให้ Aspose.Slides สามารถสร้างรูปทรงตัวแทนตำแหน่งที่สอดคล้องบนสไลด์นั้น
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ILayoutSlide blankLayout = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);
if (blankLayout == null) {
throw new IllegalStateException("The presentation does not contain a Blank layout slide.");
}
ILayoutPlaceholderManager placeholderManager = blankLayout.getPlaceholderManager();
placeholderManager.addContentPlaceholder(20, 20, 310, 270);
placeholderManager.addVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager.addChartPlaceholder(20, 310, 310, 180);
placeholderManager.addTablePlaceholder(350, 310, 350, 180);
presentation.getSlides().addEmptySlide(blankLayout);
presentation.save("output-with-placeholders.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ผลลัพธ์:

Warning
การเปลี่ยนการจัดรูปแบบที่สืบทอดหรือรูปทรงของตัวแทนตำแหน่งเค้าโครงที่มีอยู่สามารถส่งผลต่อสไลด์ที่พึ่งพาได้ ตัวแทนตำแหน่งที่เพิ่มใหม่จะไม่ถูกเติมกลับเข้าไปในสไลด์ปกติที่มีอยู่แล้ว ให้ทดสอบการเปลี่ยนแปลงเค้าโครงบนสำเนาของการนำเสนอและตรวจสอบสไลด์ที่พึ่งพาทุกสไลด์ลบเค้าโครงสไลด์ที่ไม่ได้ใช้
ใช้เมธอด Compress.removeUnusedLayoutSlides เพื่อลบเค้าโครงที่ไม่มีสไลด์ปกติอ้างอิง เมธอดจะปล่อยเค้าโครงที่ยังคงใช้งานอยู่ไว้ไม่เปลี่ยน
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Compress.removeUnusedLayoutSlides(presentation);
presentation.save("output-without-unused-layouts.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
เพื่อทำการลบเค้าโครงเฉพาะหนึ่งรายการ ให้ใช้เมธอด hasDependingSlides หรือ getDependingSlides ของเค้าโครงนั้นก่อนลบ ย้ายสไลด์ที่พึ่งพาไปยังเค้าโครงอื่นก่อนเรียก ILayoutSlide.remove การพยายามลบเค้าโครงที่กำลังใช้งานจะทำให้เกิดข้อผิดพลาด PptxEditException
ควบคุมการมองเห็นส่วนท้ายบนเค้าโครงสไลด์
เค้าโครงมีตัวแทนตำแหน่งส่วนท้าย, ตัวเลขสไลด์, และวัน‑เวลาของตนเอง ใช้เมธอด ILayoutSlide.getHeaderFooterManager เพื่อควบคุมตัวแทนตำแหน่งเหล่านี้สำหรับเค้าโครงหนึ่ง ตัวอย่างเช่น เนื้อหาเค้าโครงอาจต้องแสดงส่วนท้าย แต่เค้าโครงหัวเรื่องไม่ต้องการ
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
ILayoutSlide layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.TitleAndObject);
if (layoutSlide == null) {
layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);
}
if (layoutSlide == null) {
throw new IllegalStateException("The presentation does not contain a suitable layout slide.");
}
ILayoutSlideHeaderFooterManager headerFooterManager = layoutSlide.getHeaderFooterManager();
headerFooterManager.setFooterVisibility(true);
headerFooterManager.setSlideNumberVisibility(true);
headerFooterManager.setDateTimeVisibility(true);
headerFooterManager.setFooterText("Footer text");
headerFooterManager.setDateTimeText("Date and time text");
presentation.save("output-with-layout-footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ควบคุมการมองเห็นส่วนท้ายบนมาสเตอร์และเค้าโครงลูกของมัน
เพื่อกำหนดการตั้งค่าส่วนท้ายอย่างสม่ำเสมอในระดับมาสเตอร์ ให้ใช้เมธอด IMasterSlide.getHeaderFooterManager วิธีการกระจายของ IMasterSlideHeaderFooterManager จะทำงานบนมาสเตอร์และเค้าโครงสไลด์และสไลด์ปกติที่พึ่งพา; ไม่ได้มุ่งหมายเฉพาะสไลด์ปกติหนึ่งรายการ
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
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-with-master-footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
คำถามที่พบบ่อย
ความแตกต่างระหว่างมาสเตอร์สไลด์และเลย์เอาต์สไลด์คืออะไร?
มาสเตอร์สไลด์กำหนดธีมและการจัดรูปแบบที่ใช้ร่วมกันของการนำเสนอ เลย์เอาต์สไลด์เป็นส่วนหนึ่งของมาสเตอร์และกำหนดการจัดเรียงตัวแทนตำแหน่งที่สามารถนำไปใช้ซ้ำได้ สไลด์ปกติใช้เลย์เอาต์เหล่านั้นและเก็บเนื้อหาเฉพาะสไลด์ของตนเอง
ฉันสามารถคัดลอกเลย์เอาต์สไลด์จากการนำเสนอหนึ่งไปยังอีกการนำเสนอหนึ่งได้หรือไม่?
ทำได้ สามารถเพิ่มสำเนาไปยังคอลเลกชันปลายทางด้วยเมธอด addClone เมื่อคัดลอกระหว่างการนำเสนอ ควรตรวจสอบแบบอักษร, ธีม, รูปภาพและทรัพยากรอื่น ๆ ที่เลย์เอาต์ต้นฉบับใช้
จะเกิดอะไรขึ้นเมื่อแก้ไขเลย์เอาต์ที่กำลังใช้งานอยู่?
สไลด์ที่พึ่งพาจะสืบทอดการเปลี่ยนแปลงของเลย์เออตจนกว่าจะมีการทับค่าการจัดรูปแบบหรือวัตถุในระดับท้องถิ่น รูปร่างของตัวแทนตำแหน่งและสไตล์ที่สืบทอดอาจเปลี่ยนแปลงบนหลายสไลด์พร้อมกัน ใช้เมธอด getDependingSlides เพื่อระบุสไลด์ที่ได้รับผลกระทบก่อนแก้ไขเลย์เออต
จะเกิดอะไรขึ้นหากลบเลย์เอาต์ที่ยังคงถูกใช้งาน?
Aspose.Slides จะโยนข้อผิดพลาด PptxEditException ให้มอบหมายสไลด์ที่พึ่งพาไปยังเลย์เอาต์อื่นก่อน หรือใช้เมธอด removeUnusedLayoutSlides เพื่อลบเฉพาะเลย์เอาต์ที่ไม่มีการอ้างอิง









