สร้างตัวดูงานนำเสนอใน C++
บทนำ
Aspose.Slides สำหรับ C++ ใช้สำหรับสร้างไฟล์งานนำเสนอที่มีสไลด์ สไลด์เหล่านี้สามารถดูได้โดยการเปิดงานนำเสนอใน Microsoft PowerPoint ตัวอย่างเช่น อย่างไรก็ตาม บางครั้งนักพัฒนาอาจต้องการดูสไลด์เป็นภาพในโปรแกรมดูภาพที่ต้องการ หรือสร้างโปรแกรมดูงานนำเสนอของตนเอง ในกรณีเช่นนี้ Aspose.Slides ให้คุณส่งออกสไลด์เดี่ยวเป็นภาพ บทความนี้อธิบายวิธีทำ
สร้างภาพ SVG จากสไลด์
เพื่อสร้างภาพ SVG จากสไลด์งานนำเสนอด้วย Aspose.Slides โปรดทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เปิดสตรีมไฟล์
- บันทึกสไลด์เป็นภาพ SVG ไปยังสตรีมไฟล์
auto slideIndex = 0;
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto svgStream = File::Create(u"output.svg");
slide->WriteAsSvg(svgStream);
svgStream->Dispose();
presentation->Dispose();
สร้าง SVG ด้วย ID รูปร่างที่กำหนดเอง
Aspose.Slides สามารถใช้เพื่อสร้าง SVG จากสไลด์ที่มี ID รูปร่างที่กำหนดเอง เพื่อทำเช่นนี้ ให้ใช้เมธอด set_Id จาก ISvgShape. สามารถใช้ CustomSvgShapeFormattingController เพื่อกำหนด ID รูปร่างได้
auto slideIndex = 0;
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto svgOptions = MakeObject<SVGOptions>();
svgOptions->set_ShapeFormattingController(MakeObject<CustomSvgShapeFormattingController>());
auto svgStream = File::Create(u"output.svg");
slide->WriteAsSvg(svgStream, svgOptions);
svgStream->Dispose();
presentation->Dispose();
class CustomSvgShapeFormattingController : public ISvgShapeFormattingController
{
private:
int m_shapeIndex;
public:
CustomSvgShapeFormattingController(int shapeStartIndex = 0)
{
m_shapeIndex = shapeStartIndex;
}
void FormatShape(SharedPtr<ISvgShape> svgShape, SharedPtr<IShape> shape)
{
svgShape->set_Id(String::Format(u"shape-{0}", m_shapeIndex++));
}
};
สร้างภาพย่อสไลด์
Aspose.Slides ช่วยคุณสร้างภาพย่อของสไลด์ เพื่อสร้างภาพย่อของสไลด์โดยใช้ Aspose.Slides โปรดทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- ดึงภาพย่อของสไลด์ที่อ้างอิงโดยกำหนดระดับสเกลที่ต้องการ
- บันทึกภาพย่อในรูปแบบภาพที่ต้องการใดก็ได้
auto slideIndex = 0;
auto scaleX = 1;
auto scaleY = scaleX;
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto image = slide->GetImage(scaleX, scaleY);
image->Save(u"output.jpg", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
สร้างภาพย่อสไลด์ด้วยมิติที่กำหนดโดยผู้ใช้
เพื่อสร้างภาพย่อสไลด์ด้วยมิติที่ผู้ใช้กำหนด โปรดทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- ดึงภาพย่อของสไลด์ที่อ้างอิงพร้อมมิติที่กำหนด
- บันทึกภาพย่อในรูปแบบภาพที่ต้องการใดก็ได้
auto slideIndex = 0;
auto slideSize = Size(1200, 800);
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto image = slide->GetImage(slideSize);
image->Save(u"output.jpg", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
สร้างภาพย่อสไลด์พร้อมบันทึกผู้บรรยาย
เพื่อสร้างภาพย่อของสไลด์พร้อมบันทึกผู้บรรยายโดยใช้ Aspose.Slides โปรดทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาส RenderingOptions
- ใช้เมธอด
RenderingOptions.set_SlidesLayoutOptionsเพื่อกำหนดตำแหน่งของบันทึกผู้บรรยาย - สร้างอินสแตนซ์ของคลาส Presentation
- ดึงอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- ดึงภาพย่อของสไลด์ที่อ้างอิงพร้อมตัวเลือกการเรนเดอร์
- บันทึกภาพย่อในรูปแบบภาพที่ต้องการใดก็ได้
auto slideIndex = 0;
auto layoutingOptions = MakeObject<NotesCommentsLayoutingOptions>();
layoutingOptions->set_NotesPosition(NotesPositions::BottomTruncated);
auto renderingOptions = MakeObject<RenderingOptions>();
renderingOptions->set_SlidesLayoutOptions(layoutingOptions);
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto image = slide->GetImage(renderingOptions);
image->Save(u"output.png", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
ตัวอย่างสด
คุณสามารถลองแอปฟรี Aspose.Slides Viewer เพื่อดูว่าคุณสามารถใช้งานกับ Aspose.Slides API อย่างไร:

FAQ
ฉันสามารถฝังตัวดูงานนำเสนอในแอปพลิเคชันเว็บได้หรือไม่?
ใช่ คุณสามารถใช้ Aspose.Slides บนเซิร์ฟเวอร์เพื่อเรนเดอร์สไลด์เป็นภาพหรือ HTML แล้วแสดงในเบราว์เซอร์ คุณลักษณะการนำทางและการซูมสามารถนำไปใช้ด้วย JavaScript เพื่อประสบการณ์แบบโต้ตอบ
วิธีที่ดีที่สุดในการแสดงสไลด์ภายในตัวดูที่กำหนดเองคืออะไร?
แนวทางที่แนะนำคือเรนเดอร์แต่ละสไลด์เป็นภาพ (เช่น PNG หรือ SVG) หรือแปลงเป็น HTML ด้วย Aspose.Slides แล้วแสดงผลลัพธ์ภายใน picture box (สำหรับเดสก์ท็อป) หรือคอนเทนเนอร์ HTML (สำหรับเว็บ)
ฉันจัดการงานนำเสนอขนาดใหญ่ที่มีสไลด์จำนวนมากอย่างไร?
สำหรับเด็คขนาดใหญ่ ควรพิจารณาการโหลดแบบ lazy-loading หรือการเรนเดอร์ตามความต้องการของสไลด์ ซึ่งหมายถึงการสร้างเนื้อหาของสไลด์เมื่อผู้ใช้เลื่อนไปยังสไลด์นั้นเท่านั้น เพื่อลดการใช้หน่วยความจำและเวลาโหลด