แปลง PPT และ PPTX เป็น JPG ใน PHP

บทนำ

การแปลงการนำเสนอ PowerPoint และ OpenDocument ไปเป็นภาพ JPG ช่วยให้การแชร์สไลด์ การเพิ่มประสิทธิภาพการทำงาน และการฝังเนื้อหาในเว็บไซต์หรือแอปพลิเคชันง่ายขึ้น Aspose.Slides ช่วยให้คุณแปลงไฟล์ PPTX, PPT และ ODP เป็นภาพ JPEG คุณภาพสูงได้ คู่มือนี้อธิบายวิธีการแปลงที่แตกต่างกัน

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

แปลง PowerPoint PPT/PPTX เป็น JPG

  1. สร้างอินสแตนซ์ของประเภท Presentation
  2. รับอ็อบเจ็กต์สไลด์ของประเภท Slide จากคอลเลกชัน Presentation::getSlides()
  3. สร้างภาพย่อของแต่ละสไลด์แล้วแปลงเป็น JPG วิธีการ Slide::getImage(float scaleX, float scaleY) ใช้เพื่อดึงภาพย่อของสไลด์ วิธีการ getImage ต้องถูกเรียกจากสไลด์ที่ต้องการของประเภท Slide โดยส่งสเกลของภาพย่อที่ต้องการเข้าไปในเมธอด
  4. หลังจากได้ภาพย่อของสไลด์แล้ว เรียกใช้เมธอด [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();
    }
  }

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

วิธีนี้รองรับการแปลงเป็นชุดหรือไม่?
ใช่, Aspose.Slides รองรับการแปลงหลายสไลด์เป็น JPG ในการดำเนินการเดียว

การแปลงรองรับ SmartArt, แผนภูมิ และออบเจ็กต์ซับซ้อนอื่นๆ หรือไม่?
ใช่, Aspose.Slides เรนเดอร์เนื้อหาทั้งหมดรวมถึง SmartArt, แผนภูมิ, ตาราง, รูปร่าง และอื่นๆ อย่างไรก็ตามความแม่นยำของการเรนเดอร์อาจแตกต่างเล็กน้อยจาก PowerPoint โดยเฉพาะเมื่อใช้ฟอนต์ที่กำหนดเองหรือฟอนต์ที่หายไป

มีข้อจำกัดเรื่องจำนวนสไลด์ที่สามารถประมวลผลได้หรือไม่?
Aspose.Slides เองไม่ได้กำหนดขีดจำกัดที่เข้มงวดเกี่ยวกับจำนวนสไลด์ที่สามารถประมวลผลได้ อย่างไรก็ตามคุณอาจเจอข้อผิดพลาดหน่วยความจำไม่เพียงพอเมื่อทำงานกับการนำเสนอขนาดใหญ่หรือภาพความละเอียดสูง

ดูเพิ่มเติม

ดูตัวเลือกอื่นๆ สำหรับการแปลง PPT/PPTX เป็นภาพ เช่น: