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

ภาพรวม

การแปลงงานนำเสนอ PowerPoint (PPT, PPTX, ODP ฯลฯ) เป็นรูปแบบ PDF ด้วย Java มีข้อได้เปรียบหลายประการ รวมถึงความเข้ากันได้กับอุปกรณ์ต่าง ๆ และการรักษาเค้าโครงและการจัดรูปแบบของงานนำเสนอ ไฟล์นี้จะแสดงวิธีแปลงงานนำเสนอเป็นเอกสาร 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 ด้วยการตั้งค่าที่เหมาะสมที่สุดในระดับคุณภาพสูงสุด

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.ppt");
try {
    presentation.save("PPT-to-PDF.pdf", SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

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

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

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

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

import com.aspose.slides.*;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setJpegQuality((byte)90);
pdfOptions.setSufficientResolution(300);
pdfOptions.setSaveMetafilesAsPng(true);
pdfOptions.setTextCompression(PdfTextCompression.Flate);
pdfOptions.setCompliance(PdfCompliance.Pdf15);

Presentation presentation = new Presentation("PowerPoint.pptx");

try {
    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

เลือกการบีบอัดภาพอัตโนมัติ

เมื่อการนำเสนอมีภาพถ่ายหรือสกรีนช็อตจำนวนมาก การลดขนาด PDF ที่ส่งออกจะทำให้ส่งอีเมลหรือดาวน์โหลดได้ง่ายขึ้น เรียกใช้เมธอด PdfOptions.setBestImagesCompressionRatio ด้วย true เพื่อให้ระบบเลือกอัลกอริทึมการบีบอัดที่เหมาะสมที่สุดสำหรับแต่ละภาพระหว่างการส่งออก PDF

ตัวอย่างต่อไปนี้โหลดการนำเสนอที่มีอยู่ เปิดใช้งานการเลือกการบีบอัดภาพอัตโนมัติ และบันทึกเป็นเอกสาร PDF การตั้งค่าอื่น ๆ ของการส่งออก PDF จะคงเป็นค่าเริ่มต้น

import com.aspose.slides.PdfOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setBestImagesCompressionRatio(true);

Presentation presentation = new Presentation("image-heavy.pptx");
try {
    presentation.save("image-heavy.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

ตัวเลือกนี้เลือกอัลกอริทึมการบีบอัดสำหรับแต่ละภาพ การลดค่าที่ส่งไปยังเมธอด setJpegQuality จะลดคุณภาพภาพ JPEG ส่วนการลดค่าที่ส่งไปยังเมธอด setSufficientResolution จะทำให้ภาพถูกลดความละเอียด ซึ่งอาจทำให้รายละเอียดลดลง การเปิดใช้งานการเลือกการบีบอัดอัตโนมัติเองไม่ทำให้ค่าทั้งสองนี้ลดลง

การเลือกอัลกอริทึมการบีบอัดภาพต้องใช้เวลาและหน่วยความจำเพิ่มเติม การลดขนาดขึ้นอยู่กับภาพและการตั้งค่าการส่งออกของการนำเสนอ; การลดขนาดคงที่ไม่ได้รับประกันสำหรับทุกการนำเสนอ

คงไฟล์ OLE ฝังเป็นไฟล์แนบ PDF

หากการนำเสนอมีเวิร์กบุ๊ก Excel ฝังอยู่ คุณอาจต้องการให้ผู้รับ PDF สามารถเข้าถึงข้อมูลของเวิร์กบุ๊กนั้นได้พร้อมกับดูสไลด์ เรียกเมธอด setIncludeOleData ด้วย true เพื่อคงไฟล์ OLE ที่ฝังเป็นไฟล์แนบใน PDF ที่ได้

ค่าปริยายคือ false: ภาพตัวอย่างหรือไอคอนของวัตถุ OLE จะแสดงบนหน้า PDF แต่ไฟล์ที่ฝังอยู่จะไม่ถูกแนบ การตั้งค่าเป็น true จะเพิ่มข้อมูลไฟล์เพิ่มเติม ตัวอย่างยังคงแสดงเป็นภาพตัวอย่าง ส่วนไฟล์แนบทำให้ผู้รับสามารถเปิดหรือบันทึกไฟล์ที่ฝังแยกออกมาได้ วัตถุ OLE จะไม่กลายเป็นแผ่นงาน Excel ที่โต้ตอบได้บนหน้า PDF

import com.aspose.slides.*;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setIncludeOleData(true);

Presentation presentation = new Presentation("presentation.pptx");
try {
    presentation.save("presentation.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

เพื่อดูผลลัพธ์:

  1. เปิด PDF ที่ส่งออกในโปรแกรมดูไฟล์ที่รองรับไฟล์แนบ เช่น Adobe Acrobat Reader
  2. เปิดแผง Attachments ของโปรแกรมและค้นหาเวิร์กบุ๊กที่ฝังอยู่
  3. บันทึกไฟล์แนบและเปิดใน Excel เพื่อตรวจสอบข้อมูล หรือเปิดโดยตรงหากโปรแกรมรองรับ การแสดงตัวอย่างบนหน้า PDF เป็นส่วนแยกจากไฟล์แนบ

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

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setShowHiddenSlides(true);

    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

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

ตัวอย่างต่อไปนี้ส่งออกการนำเสนอเป็น PDF ที่ต้องใช้รหัสผ่าน password เพื่อเปิด การอนุญาตการเข้าถึงอนุญาตให้พิมพ์รวมถึงการพิมพ์คุณภาพสูง

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setPassword("password");
    pdfOptions.setAccessPermissions(PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint);

    presentation.save("PPTX-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

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

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

import com.aspose.slides.*;

class FontSubstitutionHandler implements IWarningCallback {
    public int warning(IWarningInfo warning) {
        if (warning.getWarningType() == WarningType.DataLoss && warning.getDescription().startsWith("Font will be substituted")) {
            System.out.println("Font substitution warning: " + warning.getDescription());
        }
        return ReturnAction.Continue;
    }
}

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setWarningCallback(new FontSubstitutionHandler());

Presentation presentation = new Presentation("sample.pptx");
try {
    presentation.save("output.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

จัดการแบบอักษรที่ไม่มีแบบหนาเฉพาะ

การนำเสนออาจกำหนดการทำตัวหนาให้กับข้อความแม้ว่าแบบอักษรนั้นจะไม่มีรูปแบบหนาเฉพาะ การทำตัวหนาอาจเกิดจากการทำตัวหนาสังเคราะห์ซึ่งทำให้ glyph ปกติหนาขึ้น เมื่อข้อความแบบหนาดูหนักเกินไปหรือดูแตกต่างจากที่ต้องการใน PDF ให้ลองเรียกเมธอด PdfOptions.setRasterizeUnsupportedFontStyles ด้วย true ตัวเลือกนี้จะเรนเดอร์ข้อความที่ได้รับผลกระทบเป็นบิทแมพในระหว่างการส่งออก PDF และอาจทำให้แสดงผลดีขึ้นสำหรับแบบอักษรบางประเภท ค่าเริ่มต้นคือ false

ตัวอย่างการนำเสนอมีสองกล่องข้อความ: หนึ่งเป็นข้อความปกติและอีกหนึ่งเป็นข้อความหนาที่ใช้แบบอักษรเดียวกันซึ่งไม่มีรูปแบบหนาเฉพาะ ตัวอย่างต่อไปนี้โหลดการนำเสนอ เปิดใช้งานการเรซอร์ไลซ์สไตล์แบบอักษรที่ไม่รองรับ และส่งออกเป็น PDF:

import com.aspose.slides.PdfOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setRasterizeUnsupportedFontStyles(true);

Presentation presentation = new Presentation("unsupported-bold.pptx");
try {
    presentation.save("rasterized.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

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

ตัวเลือกปิดใช้งาน (false, ค่าเริ่มต้น) ตัวเลือกเปิดใช้งาน (true)
PDF with unsupported font style rasterization disabled PDF with unsupported font style rasterization enabled

ในตัวอย่างนี้การเปิดใช้งานตัวเลือกทำให้ข้อความหนาแปลงเป็นบิทแมพเท่านั้น: ไม่สามารถเลือก คัดลอก หรือค้นหาเป็นข้อความได้หากไม่มี OCR และขอบจะดูนุ่มขึ้นเมื่อซูม 800% ข้อความปกติยังคงค้นหาได้ เมื่อปิดใช้งานตัวเลือก ทั้งสองสตริงยังคงเป็นข้อความ

ตัวเลือกนี้เรซอร์ไลซ์ข้อความที่ถูกกำหนดเป็นตัวหนาเมื่อแบบอักษรไม่มีรูปแบบหนาเฉพาะ การ การแทนที่แบบอักษร จะเลือกแบบอักษรอื่นเมื่อแบบอักษรต้นฉบับไม่มีอยู่

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

ตัวอย่างต่อไปนี้ส่งออกสไลด์ที่ 1 และ 3 จากการนำเสนอเป็น PDF หมายเลขสไลด์ในอาร์เรย์นี้เริ่มจาก 1 และการนำเข้าต้องมีอย่างน้อยสามสไลด์

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    int[] slides = { 1, 3 };
    presentation.save("PPTX-to-PDF.pdf", slides, SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

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

ตัวอย่างต่อไปนี้คัดลอกสไลด์แรกจากการนำเสนอไปยังการนำเสนอใหม่โดยกำหนดขนาดสไลด์เป็น 612 × 792 จุด (8.5 × 11 นิ้ว) แล้วปรับสเกลเนื้อหาสไลด์ให้พอดีและส่งออกสไลด์เดียวเป็น PDF

import com.aspose.slides.*;

float slideWidth = 612;
float slideHeight = 792;

Presentation presentation = new Presentation("SelectedSlides.pptx");
Presentation resizedPresentation = new Presentation();

try {
    resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, SlideSizeScaleType.EnsureFit);
    
    ISlide slide = presentation.getSlides().get_Item(0);
    resizedPresentation.getSlides().insertClone(0, slide);

    // ลบสไลด์เปล่าที่สร้างขึ้นพร้อมการนำเสนอใหม่
    resizedPresentation.getSlides().removeAt(1);

    resizedPresentation.save("PDF_with_custom_slide_size.pdf", SaveFormat.Pdf);
} finally {
    resizedPresentation.dispose();
    presentation.dispose();
}

แปลง PowerPoint เป็น PDF ในมุมมองสไลด์หมายเหตุ

ตัวอย่างต่อไปนี้ส่งออกการนำเสนอเป็น PDF โดยวางบันทึกนักพูดของแต่ละสไลด์ใต้สไลด์ ใช้งานการนำเสนอที่มีบันทึกนักพูดเพื่อดูผลลัพธ์

import com.aspose.slides.*;

Presentation presentation = new Presentation("SelectedSlides.pptx");
try {
    NotesCommentsLayoutingOptions notesOptions = new NotesCommentsLayoutingOptions();
    notesOptions.setNotesPosition(NotesPositions.BottomFull);
    
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setSlidesLayoutOptions(notesOptions);

    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

import com.aspose.slides.*;

Presentation presentation = new Presentation("pres.pptx");
try {
    PdfOptions 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, แผนภูมิ, และสูตรเป็นรูปทรงเดียว ส่วนองค์ประกอบเส้นทางแยกจะไม่ถูกเก็บเป็นเนื้อหาแยกและอาจถูกทำเครื่องหมายว่าเป็น artefact; ข้อความแทนที่จะให้เฉพาะรูปทรงทั้งหมดเท่านั้น

FAQ

สามารถแปลงไฟล์ PowerPoint หลายไฟล์เป็น PDF เป็นชุดได้หรือไม่?

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

สามารถปกป้อง PDF ที่แปลงแล้วด้วยรหัสผ่านได้หรือไม่?

ได้ ใช้คลาส PdfOptions เพื่อกำหนดรหัสผ่านและกำหนดการอนุญาตการเข้าถึงในระหว่างกระบวนการแปลง

ทำอย่างไรให้สไลด์ที่ซ่อนอยู่รวมอยู่ใน PDF?

เรียกเมธอด setShowHiddenSlides ด้วย true ในคลาส PdfOptions เพื่อรวมสไลด์ที่ซ่อนอยู่ใน PDF ที่ได้

Aspose.Slides สามารถรักษาคุณภาพภาพสูงใน PDF ได้หรือไม่?

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

Aspose.Slides รองรับมาตรฐานการปฏิบัติตาม PDF/A หรือไม่?

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

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