แสดงสไลด์การนำเสนอเป็นภาพ SVG ใน C++

ภาพรวม

บทความนี้อธิบายวิธีการแสดงสไลด์การนำเสนอเป็นภาพ SVG โดยใช้ Aspose.Slides โดยอธิบายรูปแบบ SVG และข้อดีของมัน รวมถึงความสามารถในการขยายตัว การเข้าถึงได้ง่าย และความเหมาะสมสำหรับการพัฒนาเว็บ

คุณจะได้เรียนรู้วิธีการโหลดไฟล์การนำเสนอ การวนลูปผ่านสไลด์ทั้งหมด และบันทึกแต่ละสไลด์เป็นไฟล์ SVG แยกกัน บทความครอบคลุมรูปแบบการนำเสนอ PowerPoint และ OpenDocument ได้แก่ PPT, PPTX, ODP และ PPS โดยแสดงวิธีทำการแปลงโดยใช้โปรแกรมผ่านคลาส Presentation และเมธอด WriteAsSvg

รูปแบบ SVG

SVG—ย่อมจาก Scalable Vector Graphics—เป็นประเภทหรือรูปแบบกราฟิกมาตรฐานที่ใช้ในการแสดงภาพสองมิติ SVG จัดเก็บภาพเป็นเวกเตอร์ในรูป XML พร้อมรายละเอียดที่กำหนดพฤติกรรมหรือรูปลักษณ์ของภาพ

SVG เป็นหนึ่งในไม่กี่รูปแบบของภาพที่สอดคล้องกับมาตรฐานสูงในด้านต่อไปนี้: ความสามารถในการขยายตัว ความโต้ตอบ ประสิทธิภาพ การเข้าถึง การเขียนโปรแกรม เป็นต้น ด้วยเหตุผลเหล่านี้จึงเป็นที่นิยมใช้ในการพัฒนาเว็บ

คุณอาจต้องการใช้ไฟล์ SVG เมื่อจำเป็นต้อง

  • พิมพ์การนำเสนอของคุณใน รูปแบบขนาดใหญ่มาก. ภาพ SVG สามารถขยายได้ถึงความละเอียดหรือระดับใดก็ได้ คุณสามารถปรับขนาดภาพ SVG ได้หลายครั้งโดยไม่สูญเสียคุณภาพ
  • ใช้แผนภูมิและกราฟจากสไลด์ใน สื่อหรือแพลตฟอร์มต่าง ๆ. ผู้อ่านส่วนใหญ่สามารถอ่านไฟล์ SVG ได้
  • ใช้ ขนาดไฟล์ที่เล็กที่สุดเท่าที่จะเป็นไปได้. ไฟล์ SVG มักมีขนาดเล็กกว่ารูปแบบความละเอียดสูงอื่น ๆ โดยเฉพาะรูปแบบที่อิงบิตแมป (JPEG หรือ PNG)

แสดงสไลด์เป็นภาพ SVG

Aspose.Slides for C++ อนุญาตให้คุณส่งออกสไลด์ในงานนำเสนอเป็นภาพ SVG ทำตามขั้นตอนต่อไปนี้เพื่อสร้างภาพ SVG:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. วนลูปผ่านสไลด์ทั้งหมดในงานนำเสนอ
  3. เขียนแต่ละสไลด์ลงไฟล์ SVG ของมันเองผ่าน FileStream

โค้ดตัวอย่างนี้ใน C++ แสดงวิธีแปลง PPT เป็น SVG ด้วย Aspose.Slides:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
        
for (int32_t index = 0; index < pres->get_Slides()->get_Count(); index++)
{
    auto fileName = String::Format(u"slide-{0}.svg", index);
    auto fileStream = System::MakeObject<FileStream>(fileName, FileMode::Create, FileAccess::Write);

    auto slide = pres->get_Slides()->idx_get(index);
    slide->WriteAsSvg(fileStream);
}

คำถามที่พบบ่อย

ทำไมภาพ SVG ที่ได้จึงอาจดูแตกต่างกันในแต่ละเบราว์เซอร์?

การสนับสนุนคุณลักษณะ SVG เฉพาะแตกต่างกันตามเอนจินของเบราว์เซอร์ พารามิเตอร์ใน SVGOptions ช่วยทำให้ความไม่เข้ากันเหล่านี้สอดคล้องกันได้

สามารถส่งออกไม่ได้แค่สไลด์แต่รวมถึงรูปร่างเดี่ยวเป็น SVG ได้หรือไม่?

ได้. รูปร่างใด ๆ สามารถบันทึกเป็น SVG แยกส่วนได้ ซึ่งสะดวกสำหรับไอคอน ภาพสัญลักษณ์ และการนำกราฟิกกลับมาใช้ใหม่

สามารถรวมหลายสไลด์เป็น SVG หนึ่งไฟล์ (strip/document) ได้หรือไม่?

สถานการณ์มาตรฐานคือหนึ่งสไลด์ → หนึ่ง SVG การรวมหลายสไลด์เป็นแคนวาส SVG เดียวเป็นขั้นตอนหลังประมวลผลที่ทำระดับแอปพลิเคชัน.