แปลง PPT และ PPTX เป็น PDF ใน PHP [รวมคุณลักษณะขั้นสูง]

ภาพรวม

การแปลงงานนำเสนอ PowerPoint (PPT, PPTX, ODP ฯลฯ) เป็นรูปแบบ PDF ใน PHP มีข้อได้เปรียบหลายประการ รวมถึงความเข้ากันได้กับอุปกรณ์ต่าง ๆ และการรักษารูปแบบและการจัดหน้าของงานนำเสนอของคุณ คู่มือนี้จะแสดงวิธีการแปลงงานนำเสนอเป็นเอกสาร PDF ใช้ตัวเลือกต่าง ๆ เพื่อควบคุมคุณภาพของภาพ รวมถึงการใส่สไลด์ที่ซ่อนอยู่ ป้องกัน PDF ด้วยรหัสผ่าน ตรวจจับการแทนที่ฟอนต์ เลือกสไลด์เฉพาะสำหรับการแปลง และใช้มาตรฐานการปฏิบัติตามกับเอกสารผลลัพธ์

การแปลง PowerPoint เป็น PDF

โดยใช้ Aspose.Slides คุณสามารถแปลงงานนำเสนอในรูปแบบต่อไปนี้เป็น PDF:

  • PPT
  • PPTX
  • ODP

ในการแปลงงานนำเสนอเป็น PDF ให้ส่งชื่อไฟล์เป็นอาร์กิวเมนต์ให้กับคลาส Presentation แล้วบันทัตว์งานนำเสนอเป็น PDF ด้วยเมธอด save คลาส Presentation แสดงเมธอด save ที่โดยปกติใช้เพื่อแปลงงานนำเสนอเป็น PDF

Aspose.Slides อนุญาตให้คุณแปลง:

  • งานนำเสนอทั้งหมดเป็น PDF
  • สไลด์เฉพาะจากงานนำเสนอเป็น PDF

Aspose.Slides ส่งออกงานนำเสนอเป็น PDF โดยทำให้ PDF ที่ได้ตรงกับงานนำเสนอเดิมอย่างใกล้เคียง ส่วนประกอบและแอตทริบิวต์จะถูกแสดงอย่างแม่นยำในการแปลง รวมถึง:

  • ภาพ
  • กล่องข้อความและรูปทรง
  • การจัดรูปแบบข้อความ
  • การจัดรูปแบบย่อหน้า
  • ไฮเปอร์ลิงก์
  • หัวกระดาษและท้ายกระดาษ
  • สัญลักษณ์หัวข้อย่อย
  • ตาราง

แปลง PowerPoint เป็น PDF

กระบวนการแปลง PowerPoint เป็น PDF มาตรฐานใช้ตัวเลือกเริ่มต้น ในกรณีนี้ Aspose.Slides จะพยายามแปลงงานนำเสนอที่ระบุเป็น PDF โดยใช้การตั้งค่าที่เหมาะสมที่สุดที่ระดับคุณภาพสูงสุด

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PowerPoint หรือ OpenDocument
$presentation = new Presentation("PowerPoint.pptx");
try {
    # บันทึกงานนำเสนอเป็น PDF
    $presentation->save("PPT-to-PDF.pdf", SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

แปลง PowerPoint เป็น PDF พร้อมตัวเลือก

Aspose.Slides มีตัวเลือกแบบกำหนดเอง — คุณสมบัติภายใต้คลาส PdfOptions — ที่ให้คุณปรับแต่ง PDF ที่ได้, ล็อค PDF ด้วยรหัสผ่าน, หรือระบุวิธีการดำเนินการแปลง

แปลง PowerPoint เป็น PDF ด้วยตัวเลือกแบบกำหนดเอง

โดยใช้ตัวเลือกการแปลงแบบกำหนดเอง คุณสามารถกำหนดการตั้งค่าคุณภาพที่ต้องการสำหรับภาพเรสเตอร์ ระบุวิธีการจัดการเมตาไฟล์ ตั้งระดับการบีบอัดสำหรับข้อความ ปรับค่า DPI สำหรับภาพ และอื่น ๆ

ตัวอย่างโค้ดด้านล่างแสดงวิธีการแปลงงานนำเสนอ PowerPoint เป็น PDF พร้อมตัวเลือกแบบกำหนดเองหลายอย่าง.

# สร้างอินสแตนซ์ของคลาส PdfOptions.
$pdfOptions = new PdfOptions();

# ตั้งค่าคุณภาพสำหรับภาพ JPG.
$pdfOptions->setJpegQuality(90);

# ตั้งค่า DPI สำหรับภาพ.
$pdfOptions->setSufficientResolution(300);

# ตั้งค่าการทำงานสำหรับเมตาไฟล์.
$pdfOptions->setSaveMetafilesAsPng(true);

# ตั้งค่าระดับการบีบอัดข้อความสำหรับเนื้อหาข้อความ.
$pdfOptions->setTextCompression(PdfTextCompression::Flate);

# กำหนดโหมดการปฏิบัติตาม PDF.
$pdfOptions->setCompliance(PdfCompliance::Pdf15);

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PowerPoint หรือ OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Save the presentation as a PDF document.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

แปลง PowerPoint เป็น PDF พร้อมสไลด์ที่ซ่อน

ถ้างานนำเสนอมีสไลด์ที่ซ่อนอยู่ คุณสามารถใช้เมธอด setShowHiddenSlides ของคลาส PdfOptions เพื่อใส่สไลด์ที่ซ่อนเป็นหน้าใน PDF ที่ได้

โค้ดนี้แสดงวิธีการแปลงงานนำเสนอ PowerPoint เป็น PDF พร้อมรวมสไลด์ที่ซ่อน:

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PowerPoint หรือ OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # สร้างอินสแตนซ์ของคลาส PdfOptions.
    $pdfOptions = new PdfOptions();

    # เพิ่มสไลด์ที่ซ่อนอยู่.
    $pdfOptions->setShowHiddenSlides(true);

    # บันทึกงานนำเสนอเป็น PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

แปลง PowerPoint เป็น PDF ที่มีการป้องกันด้วยรหัสผ่าน

โค้ดนี้แสดงวิธีการแปลงงานนำเสนอ PowerPoint เป็น PDF ที่มีการป้องกันด้วยรหัสผ่านโดยใช้พารามิเตอร์การป้องกันจากคลาส PdfOptions :

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PowerPoint หรือ OpenDocument file.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # สร้างอินสแตนซ์ของคลาส PdfOptions.
    $pdfOptions = new PdfOptions();

    # ตั้งรหัสผ่าน PDF และกำหนดสิทธิ์การเข้าถึง.
    $pdfOptions->setPassword("password");
    $pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

    # บันทึกงานนำเสนอเป็น PDF.
    $presentation->save("PPTX-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

ตรวจจับการแทนที่ฟอนต์

Aspose.Slides มีเมธอด setWarningCallback ภายใต้คลาส PdfOptions ที่ช่วยให้คุณตรวจจับการแทนที่ฟอนต์ระหว่างกระบวนการแปลงงานนำเสนอเป็น PDF

โค้ดนี้แสดงวิธีการตรวจจับการแทนที่ฟอนต์:

// ตั้งค่าฟังก์ชันคอลแบ็คการแจ้งเตือนในตัวเลือก PDF.
$pdfOptions = new PdfOptions();
$warningCallback = java_closure(new FontSubstitutionHandler(), null, java("com.aspose.slides.IWarningCallback"));
$pdfOptions->setWarningCallback($warningCallback);

// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PowerPoint หรือ OpenDocument file.
$presentation = new Presentation("sample.pptx");
try {
    // บันทึกงานนำเสนอเป็น PDF.
    $presentation->save("output.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

แปลงสไลด์ที่เลือกใน PowerPoint เป็น PDF

โค้ดนี้แสดงวิธีการแปลงเฉพาะสไลด์ที่เลือกจากงานนำเสนอ PowerPoint เป็น PDF:

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PowerPoint หรือ OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # ตั้งค่าอาร์เรย์ของหมายเลขสไลด์.
    $slides = array(1, 3);

    # บันทึกงานนำเสนอเป็น PDF.
    $presentation->save("PPTX-to-PDF.pdf", $slides, SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

แปลง PowerPoint เป็น PDF ด้วยขนาดสไลด์ที่กำหนดเอง

โค้ดนี้แสดงวิธีการแปลงงานนำเสนอ PowerPoint เป็น PDF ด้วยขนาดสไลด์ที่ระบุ:

$slideWidth = 612.0;
$slideHeight = 792.0;

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PowerPoint หรือ OpenDocument file.
$presentation = new Presentation("SelectedSlides.pptx");

# สร้างงานนำเสนอใหม่โดยปรับขนาดสไลด์.
$resizedPresentation = new Presentation();

try {
    # ตั้งค่าขนาดสไลด์ที่กำหนดเอง.
    $resizedPresentation->getSlideSize()->setSize($slideWidth, $slideHeight, SlideSizeScaleType::EnsureFit);

    # คัดลอกสไลด์แรกจากงานนำเสนอเดิม.
    $slide = $presentation->getSlides()->get_Item(0);
    $resizedPresentation->getSlides()->insertClone(0, $slide);

    # บันทึกงานนำเสนอที่ปรับขนาดเป็น PDF พร้อมบันทึกย่อ.
    $resizedPresentation->save("PDFnotes_out.pdf", SaveFormat::Pdf);
} finally {
    $resizedPresentation->dispose();
    $presentation->dispose();
}

แปลง PowerPoint เป็น PDF ในมุมมองบันทึกย่อของสไลด์

โค้ดนี้แสดงวิธีการแปลงงานนำเสนอ PowerPoint เป็น PDF ที่รวมบันทึกย่อของสไลด์:

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PowerPoint หรือ OpenDocument
$presentation = new Presentation("SelectedSlides.pptx");
try {
    # กำหนดค่าตัวเลือก PDF ด้วยรูปแบบบันทึกย่อ.
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomFull);
    $pdfOptions = new PdfOptions();
    $pdfOptions->setSlidesLayoutOptions($notesOptions);

    # บันทึกงานนำเสนอเป็น PDF พร้อมบันทึกย่อ.
    $presentation->save("PDF_with_notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

มาตรฐานการเข้าถึงและการปฏิบัติตามสำหรับ PDF

Aspose.Slides อนุญาตให้คุณใช้ขั้นตอนการแปลงที่สอดคล้องกับ Web Content Accessibility Guidelines (WCAG) คุณสามารถส่งออกเอกสาร PowerPoint เป็น PDF โดยใช้มาตรฐานการปฏิบัติตามเหล่านี้: PDF/A1a, PDF/A1b, และ PDF/UA.

โค้ดนี้แสดงกระบวนการแปลง PowerPoint เป็น PDF ที่สร้าง PDF หลายไฟล์ตามมาตรฐานการปฏิบัติตามที่ต่างกัน:

$presentation = new Presentation("pres.pptx");
try {
    $pdfOptions = new PdfOptions();

    $pdfOptions->setCompliance(PdfCompliance::PdfA1a);
    $presentation->save("pres-a1a-compliance.pdf", SaveFormat::Pdf, $pdfOptions);

    $pdfOptions->setCompliance(PdfCompliance::PdfA1b);
    $presentation->save("pres-a1b-compliance.pdf", SaveFormat::Pdf, $pdfOptions);

    $pdfOptions->setCompliance(PdfCompliance::PdfUa);
    $presentation->save("pres-ua-compliance.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Note: เมื่อส่งออกเป็น PDF/UA, Aspose.Slides จะถือกราฟิกซับซ้อนเช่น SmartArt, แผนภูมิ, และสูตรเป็นรูปเดียว องค์ประกอบเส้นทางแยกต่างหากจะไม่ถูกเก็บเป็นเนื้อหาแยกและอาจถูกทำเครื่องหมายเป็นศิลปวัตถุ; ข้อความแทนที่จะให้เฉพาะกับรูปทั้งหมดเท่านั้น.

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

สามารถแปลงไฟล์ PowerPoint หลายไฟล์เป็น PDF อย่างเป็นกลุ่มได้หรือไม่?
ใช่, Aspose.Slides รองรับการแปลงเป็นชุดของไฟล์ PPT หรือ PPTX หลายไฟล์เป็น PDF คุณสามารถวนลูปผ่านไฟล์ของคุณและใช้กระบวนการแปลงแบบโปรแกรมได้

สามารถตั้งรหัสผ่านป้องกัน PDF ที่แปลงแล้วได้หรือไม่?
แน่นอน. ใช้คลาส PdfOptions เพื่อตั้งรหัสผ่านและกำหนดสิทธิ์การเข้าถึงระหว่างกระบวนการแปลง

จะใส่สไลด์ที่ซ่อนใน PDF อย่างไร?
ใช้เมธอด setShowHiddenSlides ในคลาส PdfOptions เพื่อใส่สไลด์ที่ซ่อนใน PDF ที่ได้

Aspose.Slides สามารถรักษาคุณภาพภาพสูงใน PDF ได้หรือไม่?
ใช่, คุณสามารถควบคุมคุณภาพของภาพโดยใช้เมธอดเช่น setJpegQuality และ setSufficientResolution ในคลาส PdfOptions เพื่อให้ได้ภาพคุณภาพสูงใน PDF ของคุณ

Aspose.Slides รองรับมาตรฐานการปฏิบัติตาม PDF/A หรือไม่?
ใช่, Aspose.Slides ให้คุณส่งออก PDF ที่สอดคล้องกับมาตรฐานต่าง ๆ รวมถึง PDF/A1a, PDF/A1b, และ PDF/UA เพื่อให้เอกสารของคุณตรงตามข้อกำหนดการเข้าถึงและการเก็บรักษา

แหล่งข้อมูลเพิ่มเติม