แปลงสไลด์ PowerPoint เป็น PNG ใน PHP
ภาพรวม
บทความนี้อธิบายวิธีแปลงไฟล์งานนำเสนอ PowerPoint ให้เป็นภาพ PNG ด้วย Aspose.Slides แสดงวิธีโหลดไฟล์งานนำเสนอในรูปแบบต่าง ๆ เช่น PPT, PPTX และ ODP เรนเดอร์สไลด์เป็นภาพและบันทึกผลลัพธ์เป็นรูปแบบ PNG
บทความยังแสดงวิธีปรับแต่งภาพ PNG ที่สร้างขึ้นโดยตั้งค่าการสเกลหรือระบุความกว้างและความสูงที่ต้องการ
แปลง PowerPoint เป็น PNG
ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงอ็อบเจกต์สไลด์จากคอลเลกชัน Presentation.getSlides() ภายใต้คลาส Slide
- ใช้วิธีการ Slide.getImage() เพื่อรับภาพย่อของแต่ละสไลด์
- ใช้วิธีการ IImage.save(String formatName, int imageFormat) เพื่อบันทึกภาพย่อสไลด์เป็นรูปแบบ PNG
โค้ด PHP นี้แสดงวิธีแปลงงานนำเสนอ PowerPoint เป็น PNG:
$pres = new Presentation("pres.pptx");
try {
for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
$slide = $pres->getSlides()->get_Item($index);
$slideImage = $slide->getImage();
try {
$slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
แปลง PowerPoint เป็น PNG ด้วยมิติที่กำหนดเอง
หากต้องการไฟล์ PNG ที่มีสเกลเฉพาะ คุณสามารถตั้งค่าตัวแปร desiredX และ desiredY ซึ่งกำหนดมิติของภาพย่อที่ได้ผลลัพธ์
โค้ดนี้สาธิตการทำงานที่อธิบายไว้:
$pres = new Presentation("pres.pptx");
try {
$scaleX = 2.0;
$scaleY = 2.0;
for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
$slide = $pres->getSlides()->get_Item($index);
$slideImage = $slide->getImage($scaleX, $scaleY);
try {
$slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
แปลง PowerPoint เป็น PNG ด้วยขนาดที่กำหนดเอง
หากต้องการไฟล์ PNG ที่มีขนาดเฉพาะ คุณสามารถส่งอาร์กิวเมนต์ width และ height ที่ต้องการสำหรับ ImageSize
โค้ดนี้แสดงวิธีแปลง PowerPoint เป็น PNG โดยระบุขนาดของภาพ:
$pres = new Presentation("pres.pptx");
try {
$size = new Java("java.awt.Dimension", 960, 720);
for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
$slide = $pres->getSlides()->get_Item($index);
$slideImage = $slide->getImage($size);
try {
$slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
คำถามที่พบบ่อย
ฉันจะส่งออกเฉพาะรูปร่างที่กำหนด (เช่น แผนภูมิหรือรูปภาพ) แทนการส่งออกทั้งสไลด์ได้อย่างไร?
Aspose.Slides รองรับ การสร้างภาพย่อสำหรับรูปร่างแต่ละอัน คุณสามารถเรนเดอร์รูปร่างเป็นภาพ PNG
การแปลงแบบขนานได้รับการสนับสนุนบนเซิร์ฟเวอร์หรือไม่?
ได้ แต่ อย่าแชร์ อินสแตนซ์งานนำเสนอเดียวระหว่างเธรด ควรใช้อินสแตนซ์แยกตามเธรดหรือกระบวนการ
ข้อจำกัดของเวอร์ชันทดลองเมื่อส่งออกเป็น PNG มีอะไรบ้าง?
โหมดประเมินผลจะเพิ่มลายน้ำลงบนภาพที่ส่งออกและบังคับใช้ ข้อจำกัดอื่น ๆ จนกว่าจะมีการใช้งานใบอนุญาต