Convert PowerPoint to PDF
Overview
This article explains how you can convert PowerPoint file formats into PDF using PHP. It covers wide range of topics e.g.
- Convert PPT to PDF
- Convert PPTX to PDF
- Convert ODP to PDF
- Convert PowerPoint to PDF
Java PowerPoint to PDF Conversions
Using Aspose.Slides, you can convert presentations in these formats to PDF:
- PPT
- PPTX
- ODP
To convert a presentation to PDF, you simply have to pass the file name as an argument in the Presentation class and then save the presentation as a PDF using a Save method. The Presentation class exposes the Save method that is typically used to convert a presentation to PDF.
NOTE
Aspose.Slides for PHP via Java directly writes API information and Version Number in output documents. For example, when it converts a presentation to PDF, Aspose.Slides for PHP via Java populates the Application field with the ‘Aspose.Slides’ value and the PDF Producer field with a value in ‘Aspose.Slides v XX.XX’ form. Note that you cannot instruct Aspose.Slides for PHP via Java to change or remove this information from output documents.Aspose.Slides allows you to convert:
- an entire presentation to PDF
- specific slides in a presentation to PDF
- a presentation
Aspose.Slides exports presentations to PDF in a way that makes the contents of the resulting PDFs very similar to those in the original presentations. These known elements and attributes are often rendered properly in presentation to PDF conversions:
- images
- text boxes and other shapes
- texts and their formatting
- paragraphs and their formatting
- hyperlinks
- headers and footers
- bullets
- tables
Convert PowerPoint to PDF
The standard PowerPoint PDF conversion operation is executed using default options. In this case, Aspose.Slides tries to convert the provided presentation to PDF using optimal settings at the maximum quality levels.
This PHP code shows you how to convert a PowerPoint to PDF:
# Instantiates a Presentation class that represents a PowerPoint file
$pres = new Presentation("PowerPoint.ppt");
try {
# Saves the presentation as a PDF
$pres->save("PPT-to-PDF.pdf", SaveFormat::Pdf);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Convert PowerPoint to PDF with Options
Aspose.Slides provides custom options—properties under the PdfOptions class—that allow you to customize the PDF (resulting from the conversion process), lock the PDF with a password, or even specify how the conversion process should go.
Convert PowerPoint to PDF with Custom Options
Using custom conversion options, you can set your preferred quality setting for JPG images, specify how metafiles should be handled, set a compression level for texts, etc.
This PHP code demonstrates an operation in which a PowerPoint is converted to PDF with several custom options:
// Instantiates a Presentation class that represents a PowerPoint file
$pres = new Presentation("PowerPoint.pptx");
try {
# Instantiates the PdfOptions class
$pdfOptions = new PdfOptions();
# Sets the Jpeg quality
$pdfOptions->setJpegQuality(90);
# Sets the behavior for metafiles
$pdfOptions->setSaveMetafilesAsPng(true);
# Sets the text compression level
$pdfOptions->setTextCompression(PdfTextCompression::Flate);
# Defines the PDF standard
$pdfOptions->setCompliance(PdfCompliance::Pdf15);
# Saves the presentation as a PDF
$pres->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Convert PowerPoint to PDF with Hidden Slides
If a presentation contains hidden slides, you can use a custom option—the ShowHiddenSlides property from the PdfOptions class—to instruct Aspose.Slides to include the hidden slides as pages in the resulting PDF.
This PHP code shows you how to convert a PowerPoint presentation to PDF with hidden slides included:
// Instantiates a Presentation class that represents a PowerPoint file
$pres = new Presentation("PowerPoint.pptx");
try {
# Instantiates the PdfOptions class
$pdfOptions = new PdfOptions();
# Adds hidden slides
$pdfOptions->setShowHiddenSlides(true);
# Saves the presentation as a PDF
$pres->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Convert PowerPoint to Password Protected PDF
This PHP code shows you how to convert a PowerPoint to a password-protected PDF (using protection parameters from the PdfOptions class):
// Instantiates a Presentation object that represents a PowerPoint file
$pres = new Presentation("PowerPoint.pptx");
try {
# / Instantiates the PdfOptions class
$pdfOptions = new PdfOptions();
# Sets PDF password and access permissions
$pdfOptions->setPassword("password");
$pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);
# Saves the presentation as a PDF
$pres->save("PPTX-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Detect Font Substitutions
Aspose.Slides provides the getWarningCallback method under the SaveOptions class to allow you to detect font substitutions in a presentation to PDF conversion process.
This PHP code shows you how to detect font substitutions:
class FontSubstSendsWarningCallback {
function warning($warning)
{
if (java_values($warning->getWarningType() == WarningType::CompatibilityIssue)) {
return ReturnAction::Continue;
}
if (java_values($warning->getWarningType() == WarningType::DataLoss && $warning->getDescription()->startsWith("Font will be substituted"))) {
echo ("Font substitution warning: " . $warning->getDescription());
}
return ReturnAction::Continue;
}
}
$loadOptions = new LoadOptions();
$warningCallback = java_closure(new FontSubstSendsWarningCallback(), null, java("com.aspose.slides.IWarningCallback"));
$loadOptions->setWarningCallback($warningCallback);
$pres = new Presentation("pres.pptx", $loadOptions);
try {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
For more information on getting callbacks for font substitutions in a rendering process, see Getting Warning Callbacks for Fonts Substitution.
For more information on font substitution, see the Font Substitution article.
Convert Selected Slides in PowerPoint to PDF
This PHP code shows you how to convert specific slides in a PowerPoint presentation to PDF:
// Instantiates a Presentation object that represents a PowerPoint file
$pres = new Presentation("PowerPoint.pptx");
try {
# Sets an array of slides positions
$slides = array(1, 3 );
# Saves the presentation as a PDF
$pres->save("PPTX-to-PDF.pdf", $slides, SaveFormat::Pdf);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Convert PowerPoint to PDF with Custom Slide Size
This PHP code shows you how to convert a PowerPoint when its slide size is specified to a PDF:
// Instantiates a Presentation object that represents a PowerPoint file
$pres = new Presentation("SelectedSlides.pptx");
try {
$outPres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$outPres->getSlides()->insertClone(0, $slide);
# Sets the slide type and size
$outPres->getSlideSize()->setSize(612.0, 792.0, SlideSizeScaleType::EnsureFit);
$pdfOptions = new PdfOptions();
$options = $pdfOptions->getNotesCommentsLayouting();
$options->setNotesPosition(NotesPositions::BottomFull);
$outPres->save("PDFnotes_out.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Convert PowerPoint to PDF in Notes Slide View
This PHP code shows you how to convert a PowerPoint to PDF notes:
// Instantiates a Presentation class that represents a PowerPoint file
$pres = new Presentation("SelectedSlides.pptx");
try {
$pdfOptions = new PdfOptions();
$options = $pdfOptions->getNotesCommentsLayouting();
$options->setNotesPosition(NotesPositions::BottomFull);
$pres->save("Pdf_With_Notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Accessibility and Compliance Standards for PDF
Aspose.Slides allows you to use a conversion procedure that complies with Web Content Accessibility Guidelines (WCAG). You can export a PowerPoint document to PDF using any of these compliance standards: PDF/A1a, PDF/A1b, and PDF/UA.
This PHP code demonstrates a PowerPoint to PDF conversion operation in which multiple PDFs based on different compliance standards are obtained:
$pres = new Presentation("pres.pptx");
try {
$pdfOptions = new PdfOptions();
$pdfOptions->setCompliance(PdfCompliance::PdfA1a);
$pres->save("pres-a1a-compliance.pdf", SaveFormat::Pdf, $pdfOptions);
$pdfOptions->setCompliance(PdfCompliance::PdfA1b);
$pres->save("pres-a1b-compliance.pdf", SaveFormat::Pdf, $pdfOptions);
$pdfOptions->setCompliance(PdfCompliance::PdfUa);
$pres->save("pres-ua-compliance.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}