สร้างตัวดูงานนำเสนอใน C++

บทนำ

Aspose.Slides สำหรับ C++ ใช้สำหรับสร้างไฟล์งานนำเสนอที่มีสไลด์ สไลด์เหล่านี้สามารถดูได้โดยการเปิดงานนำเสนอใน Microsoft PowerPoint ตัวอย่างเช่น อย่างไรก็ตาม บางครั้งนักพัฒนาอาจต้องการดูสไลด์เป็นภาพในโปรแกรมดูภาพที่ต้องการ หรือสร้างโปรแกรมดูงานนำเสนอของตนเอง ในกรณีเช่นนี้ Aspose.Slides ให้คุณส่งออกสไลด์เดี่ยวเป็นภาพ บทความนี้อธิบายวิธีทำ

สร้างภาพ SVG จากสไลด์

เพื่อสร้างภาพ SVG จากสไลด์งานนำเสนอด้วย Aspose.Slides โปรดทำตามขั้นตอนด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. ดึงอ้างอิงสไลด์โดยใช้ดัชนีของมัน
  3. เปิดสตรีมไฟล์
  4. บันทึกสไลด์เป็นภาพ 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 โปรดทำตามขั้นตอนด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. ดึงอ้างอิงสไลด์โดยใช้ดัชนีของมัน
  3. ดึงภาพย่อของสไลด์ที่อ้างอิงโดยกำหนดระดับสเกลที่ต้องการ
  4. บันทึกภาพย่อในรูปแบบภาพที่ต้องการใดก็ได้
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();

สร้างภาพย่อสไลด์ด้วยมิติที่กำหนดโดยผู้ใช้

เพื่อสร้างภาพย่อสไลด์ด้วยมิติที่ผู้ใช้กำหนด โปรดทำตามขั้นตอนด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. ดึงอ้างอิงสไลด์โดยใช้ดัชนีของมัน
  3. ดึงภาพย่อของสไลด์ที่อ้างอิงพร้อมมิติที่กำหนด
  4. บันทึกภาพย่อในรูปแบบภาพที่ต้องการใดก็ได้
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 โปรดทำตามขั้นตอนด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส RenderingOptions
  2. ใช้เมธอด RenderingOptions.set_SlidesLayoutOptions เพื่อกำหนดตำแหน่งของบันทึกผู้บรรยาย
  3. สร้างอินสแตนซ์ของคลาส Presentation
  4. ดึงอ้างอิงสไลด์โดยใช้ดัชนีของมัน
  5. ดึงภาพย่อของสไลด์ที่อ้างอิงพร้อมตัวเลือกการเรนเดอร์
  6. บันทึกภาพย่อในรูปแบบภาพที่ต้องการใดก็ได้
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 อย่างไร:

ตัวดู PowerPoint ออนไลน์

FAQ

ฉันสามารถฝังตัวดูงานนำเสนอในแอปพลิเคชันเว็บได้หรือไม่?

ใช่ คุณสามารถใช้ Aspose.Slides บนเซิร์ฟเวอร์เพื่อเรนเดอร์สไลด์เป็นภาพหรือ HTML แล้วแสดงในเบราว์เซอร์ คุณลักษณะการนำทางและการซูมสามารถนำไปใช้ด้วย JavaScript เพื่อประสบการณ์แบบโต้ตอบ

วิธีที่ดีที่สุดในการแสดงสไลด์ภายในตัวดูที่กำหนดเองคืออะไร?

แนวทางที่แนะนำคือเรนเดอร์แต่ละสไลด์เป็นภาพ (เช่น PNG หรือ SVG) หรือแปลงเป็น HTML ด้วย Aspose.Slides แล้วแสดงผลลัพธ์ภายใน picture box (สำหรับเดสก์ท็อป) หรือคอนเทนเนอร์ HTML (สำหรับเว็บ)

ฉันจัดการงานนำเสนอขนาดใหญ่ที่มีสไลด์จำนวนมากอย่างไร?

สำหรับเด็คขนาดใหญ่ ควรพิจารณาการโหลดแบบ lazy-loading หรือการเรนเดอร์ตามความต้องการของสไลด์ ซึ่งหมายถึงการสร้างเนื้อหาของสไลด์เมื่อผู้ใช้เลื่อนไปยังสไลด์นั้นเท่านั้น เพื่อลดการใช้หน่วยความจำและเวลาโหลด