เรนเดอร์สไลด์การนำเสนอเป็นภาพ SVG ใน PHP
ภาพรวม
บทความนี้อธิบายวิธีเรนเดอร์สไลด์การนำเสนอเป็นภาพ 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 PHP via Java ให้คุณส่งออกสไลด์ในงานนำเสนอเป็นภาพ SVG ให้ทำตามขั้นตอนต่อไปนี้เพื่อสร้างภาพ SVG:
- สร้างอินสแตนซ์ของคลาส
Presentation. - วนซ้ำผ่านสไลด์ทั้งหมดในงานนำเสนอ.
- เขียนแต่ละสไลด์เป็นไฟล์ SVG ของตนเองผ่าน
FileOutputStream.
ตัวอย่างโค้ดนี้แสดงวิธีแปลง PPT เป็น SVG ด้วย Aspose.Slides:
$pres = new Presentation("pres.pptx");
try {
for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
$slide = $pres->getSlides()->get_Item($index);
$fileStream = new Java("java.io.FileOutputStream", "slide-" . $index . ".svg");
try {
$slide->writeAsSvg($fileStream);
} finally {
$fileStream->close();
}
}
} catch (JavaException $e) {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
คำถามที่พบบ่อย
ทำไม SVG ที่ได้อาจดูแตกต่างกันระหว่างเบราว์เซอร์?
การสนับสนุนคุณสมบัติเฉพาะของ SVG ถูกนำไปใช้แตกต่างกันโดยเอนจิ้นของเบราว์เซอร์ พารามิเตอร์ SVGOptions ช่วยปรับความไม่เข้ากัน
สามารถส่งออกไม่ใช่แค่สไลด์เท่านั้น แต่รวมถึงรูปร่างแต่ละรูปเป็น SVG ได้หรือไม่?
ใช่. รูปร่างใดก็สามารถบันทึกเป็น SVG แยกส่วนได้, ซึ่งสะดวกสำหรับไอคอน, ไอคอนภาพ, และการนำกราฟิกกลับมาใช้ใหม่
สามารถรวมหลายสไลด์เป็น SVG เดียว (strip/document) ได้หรือไม่?
สถานการณ์มาตรฐานคือสไลด์หนึ่ง → SVG หนึ่ง การรวมหลายสไลด์เป็นแคนวาส SVG เดียวเป็นขั้นตอนการประมวลผลหลังที่ทำระดับแอปพลิเคชัน