ใช้หรือเปลี่ยนเค้าโครงสไลด์บน Android
ภาพรวม
เค้าโครงสไลด์กำหนดตำแหน่งและรูปแบบของตัวแสดงตำแหน่ง (placeholder) เช่น ชื่อเรื่อง, ข้อความ, รูปภาพ, แผนภูมิ, และตาราง การใช้เค้าโครงทำให้สไลด์มีโครงสร้างสอดคล้องกันในขณะที่แต่ละสไลด์สามารถมีเนื้อหาของตนเองได้.
เค้าโครงที่พบบ่อยที่สุดได้แก่:
- สไลด์หัวข้อ: มีตัวแสดงตำแหน่งชื่อเรื่องและคำบรรยาย.
- หัวข้อและเนื้อหา: มีตัวแสดงตำแหน่งชื่อเรื่องและตัวแสดงตำแหน่งเนื้อหาทั่วไป.
- เปล่า: ไม่มีตัวแสดงตำแหน่งเนื้อหาและมีประโยชน์เมื่อรูปแบบทุกอย่างจะถูกจัดตำแหน่งด้วยตนเอง.
ทำความเข้าใจการสืบทอดเค้าโครง
งานนำเสนอมีระดับที่เกี่ยวข้องกันสามระดับ:
- A master slide กำหนดธีม, การจัดรูปแบบที่ใช้ร่วมกัน, พื้นหลัง, และวัตถุทั่วไป.
- A layout slide เป็นของสไลด์แม่และกำหนดการจัดเรียงตัวแสดงตำแหน่งเฉพาะ.
- A normal slide ใช้เค้าโครงหนึ่งอันและเก็บเนื้อหาที่ป้อนสำหรับสไลด์นั้น.
สไลด์ปกติสืบทอดธีมและการจัดรูปแบบจากเค้าโครงของมัน, และเค้าโครงสืบทอดจากสไลด์แม่. ค่าที่ตั้งโดยตรงบนสไลด์ปกติจะทับค่าที่สืบทอดมาที่ระดับนั้น. เมื่อสไลด์ปกติถูกสร้าง, รูปร่างของตัวแสดงตำแหน่งจะถูกสร้างจากเค้าโครงที่เลือก, ขณะที่เนื้อหาที่ป้อนลงในตัวแสดงตำแหน่งนั้นเป็นของสไลด์ปกติ.
เพิ่มตัวแสดงตำแหน่งที่จำเป็นลงในเค้าโครงก่อนสร้างสไลด์จากมัน. การเพิ่มตัวแสดงตำแหน่งใหม่ในเค้าโครงภายหลังจะไม่ทำให้รูปร่างตัวแสดงตำแหน่งที่สอดคล้องกันถูกเพิ่มโดยอัตโนมัติในสไลด์ปกติที่มีอยู่แล้ว.
ความสัมพันธ์นี้มีผลสำคัญสองประการ:
- การเปลี่ยนการจัดรูปแบบที่สืบทอดหรือรูปทรงของตัวแสดงตำแหน่งที่มีอยู่บนเค้าโครงสามารถอัปเดตทุกสไลด์ที่พึ่งพาเค้าโครงนั้นได้. ก่อนแก้ไขเค้าโครงที่กำลังใช้งานอยู่, ให้ตรวจสอบสไลด์ที่พึ่งพาและทบทวนงานนำเสนอที่ได้.
- เค้าโครงที่ยังคงถูกสไลด์ใช้งานอยู่ไม่สามารถลบได้. ให้เปลี่ยนสไลด์ที่พึ่งพาไปใช้เค้าโครงอื่นก่อน, หรือให้ลบเฉพาะเค้าโครงที่ไม่มีการใช้งาน.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับระดับบนสุดของโครงสร้างนี้ โปรดดู สไลด์แม่.
เลือกและใช้เค้าโครงสไลด์
ใช้ประเภทเค้าโครงเมื่อการนำเสนอปฏิบัติตามคำนิยามเค้าโครง 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();
}
ผลลัพธ์:

คำเตือน
การเปลี่ยนการจัดรูปแบบที่สืบทอดหรือรูปทรงของตัวแสดงตำแหน่งเค้าโครงที่มีอยู่สามารถส่งผลต่อสไลด์ที่พึ่งพาได้. ตัวแสดงตำแหน่งที่เพิ่มใหม่จะไม่ถูกเติมกลับไปยังสไลด์ปกติที่มีอยู่แล้ว. ให้ทดสอบการเปลี่ยนแปลงเค้าโครงบนสำเนาของงานนำเสนอและตรวจสอบทุกสไลด์ที่พึ่งพา.ลบสไลด์เค้าโครงที่ไม่ได้ใช้
ใช้วิธี 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 เพื่อลบเฉพาะเค้าโครงที่ไม่ได้อ้างอิง.









