แปลง PPT และ PPTX เป็น JPG ใน PHP
บทนำ
การแปลงการนำเสนอ PowerPoint และ OpenDocument ไปเป็นภาพ JPG ช่วยให้การแชร์สไลด์ การเพิ่มประสิทธิภาพการทำงาน และการฝังเนื้อหาในเว็บไซต์หรือแอปพลิเคชันง่ายขึ้น Aspose.Slides ช่วยให้คุณแปลงไฟล์ PPTX, PPT และ ODP เป็นภาพ JPEG คุณภาพสูงได้ คู่มือนี้อธิบายวิธีการแปลงที่แตกต่างกัน
ด้วยคุณลักษณะเหล่านี้ การสร้างตัวชมรมการนำเสนอของคุณเองและสร้างภาพย่อสำหรับแต่ละสไลด์ก็ทำได้ง่ายขึ้น ซึ่งอาจเป็นประโยชน์หากคุณต้องการปกป้องสไลด์จากการคัดลอกหรือแสดงการนำเสนอในโหมดอ่านอย่างเดียว Aspose.Slides ช่วยให้คุณแปลงทั้งการนำเสนอหรือสไลด์เฉพาะเป็นรูปแบบภาพได้
แปลง PowerPoint PPT/PPTX เป็น JPG
- สร้างอินสแตนซ์ของประเภท Presentation
- รับอ็อบเจ็กต์สไลด์ของประเภท Slide จากคอลเลกชัน Presentation::getSlides()
- สร้างภาพย่อของแต่ละสไลด์แล้วแปลงเป็น JPG วิธีการ Slide::getImage(float scaleX, float scaleY) ใช้เพื่อดึงภาพย่อของสไลด์ วิธีการ getImage ต้องถูกเรียกจากสไลด์ที่ต้องการของประเภท Slide โดยส่งสเกลของภาพย่อที่ต้องการเข้าไปในเมธอด
- หลังจากได้ภาพย่อของสไลด์แล้ว เรียกใช้เมธอด [IImage::save(String formatName, int imageFormat)](https://reference.aspose.com/slides/th/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) จากอ็อบเจ็กต์ภาพย่อ ส่งชื่อไฟล์ผลลัพธ์และรูปแบบภาพเข้าไปในเมธอด
$pres = new Presentation("PowerPoint-Presentation.pptx");
try {
foreach($pres->getSlides() as $sld) {
# สร้างภาพเต็มสเกล
$slideImage = $sld->getImage(1.0, 1.0);
# บันทึกภาพลงดิสก์ในรูปแบบ JPEG
try {
$slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
แปลง PowerPoint PPT/PPTX เป็น JPG พร้อมกำหนดขนาดเอง
หากต้องการเปลี่ยนขนาดของภาพย่อและภาพ JPG ที่ได้ สามารถตั้งค่าตัวแปร ScaleX และ ScaleY โดยส่งค่าเหล่านั้นเข้าไปในเมธอด Slide::getImage(float scaleX, float scaleY) ได้ดังนี้:
$pres = new Presentation("PowerPoint-Presentation.pptx");
try {
# กำหนดมิติ
$desiredX = 1200;
$desiredY = 800;
# รับค่ามาตราส่วนของ X และ Y
$ScaleX = 1.0 / $pres->getSlideSize()->getSize()->getWidth() * $desiredX;
$ScaleY = 1.0 / $pres->getSlideSize()->getSize()->getHeight() * $desiredY;
foreach($pres->getSlides() as $sld) {
# สร้างภาพเต็มสเกล
$slideImage = $sld->getImage($ScaleX, $ScaleY);
# บันทึกภาพลงดิสก์ในรูปแบบ JPEG
try {
$slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
เรนเดอร์คอมเมนต์เมื่อบันทึกสไลด์เป็นภาพ
Aspose.Slides for PHP via Java มีฟีเจอร์ที่ช่วยให้คุณเรนเดอร์คอมเมนต์ในสไลด์ของการนำเสนอเมื่อทำการแปลงสไลด์เป็นภาพ โค้ด PHP ตัวอย่างต่อไปนี้แสดงการทำงาน:
$pres = new Presentation("presentation.pptx");
try {
$notesOptions = new NotesCommentsLayoutingOptions();
$notesOptions->setNotesPosition(NotesPositions::BottomTruncated);
$opts = new RenderingOptions();
$opts->setSlidesLayoutOptions($notesOptions);
foreach($pres->getSlides() as $sld) {
$slideImage = $sld->getImage($opts, new Java("java.awt.Dimension", 740, 960));
try {
$slideImage->save(String->format("Slide_%d.png", $sld->getSlideNumber()));
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Tip
Aspose มีแอปเว็บ Collage ฟรีที่คุณสามารถใช้รวมภาพ JPG to JPG หรือ PNG เป็น PNG, สร้าง photo grids ฯลฯ
โดยใช้หลักการเดียวกันที่อธิบายในบทความนี้ คุณสามารถแปลงภาพจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่งได้ สำหรับข้อมูลเพิ่มเติมดูหน้าต่อไปนี้: แปลง image to JPG; แปลง JPG to image; แปลง JPG to PNG, แปลง PNG to JPG; แปลง PNG to SVG, แปลง SVG to PNG
คำถามที่พบบ่อย
วิธีนี้รองรับการแปลงเป็นชุดหรือไม่?
ใช่, Aspose.Slides รองรับการแปลงหลายสไลด์เป็น JPG ในการดำเนินการเดียว
การแปลงรองรับ SmartArt, แผนภูมิ และออบเจ็กต์ซับซ้อนอื่นๆ หรือไม่?
ใช่, Aspose.Slides เรนเดอร์เนื้อหาทั้งหมดรวมถึง SmartArt, แผนภูมิ, ตาราง, รูปร่าง และอื่นๆ อย่างไรก็ตามความแม่นยำของการเรนเดอร์อาจแตกต่างเล็กน้อยจาก PowerPoint โดยเฉพาะเมื่อใช้ฟอนต์ที่กำหนดเองหรือฟอนต์ที่หายไป
มีข้อจำกัดเรื่องจำนวนสไลด์ที่สามารถประมวลผลได้หรือไม่?
Aspose.Slides เองไม่ได้กำหนดขีดจำกัดที่เข้มงวดเกี่ยวกับจำนวนสไลด์ที่สามารถประมวลผลได้ อย่างไรก็ตามคุณอาจเจอข้อผิดพลาดหน่วยความจำไม่เพียงพอเมื่อทำงานกับการนำเสนอขนาดใหญ่หรือภาพความละเอียดสูง
ดูเพิ่มเติม
ดูตัวเลือกอื่นๆ สำหรับการแปลง PPT/PPTX เป็นภาพ เช่น: