Converti PPT e PPTX in PDF in PHP [Funzionalità Avanzate Incluse]

Panoramica

La conversione delle presentazioni PowerPoint (PPT, PPTX, ODP, ecc.) in formato PDF in PHP offre diversi vantaggi, tra cui la compatibilità su diversi dispositivi e la conservazione del layout e della formattazione della presentazione. Questa guida dimostra come convertire le presentazioni in documenti PDF, utilizzare varie opzioni per controllare la qualità delle immagini, includere le diapositive nascoste, proteggere con password i file PDF, rilevare le sostituzioni di caratteri, selezionare diapositive specifiche per la conversione e applicare standard di conformità ai documenti di output.

Conversioni da PowerPoint a PDF

Utilizzando Aspose.Slides, è possibile convertire le presentazioni nei seguenti formati in PDF:

  • PPT
  • PPTX
  • ODP

Per convertire una presentazione in PDF, passare il nome del file come argomento alla classe Presentation e poi salvare la presentazione come PDF utilizzando il metodo save. La classe Presentation espone il metodo save che è tipicamente usato per convertire una presentazione in PDF.

Aspose.Slides consente di convertire:

  • Tutte le presentazioni in PDF
  • Diapositive specifiche di una presentazione in PDF

Aspose.Slides esporta le presentazioni in PDF, garantendo che i PDF risultanti corrispondano fedelmente alle presentazioni originali. Gli elementi e gli attributi sono renderizzati accuratamente nella conversione, includendo:

  • Immagini
  • Caselle di testo e forme
  • Formattazione del testo
  • Formattazione dei paragrafi
  • Collegamenti ipertestuali
  • Intestazioni e piè di pagina
  • Elenchi puntati
  • Tabelle

Converti PowerPoint in PDF

Il processo standard di conversione da PowerPoint a PDF utilizza le opzioni predefinite. In questo caso, Aspose.Slides tenta di convertire la presentazione fornita in PDF utilizzando impostazioni ottimali al massimo livello di qualità.

Questo codice mostra come convertire una presentazione (PPT, PPTX, ODP, ecc.) in PDF:

# Istanzia la classe Presentation che rappresenta un file PowerPoint o OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Salva la presentazione come PDF.
    $presentation->save("PPT-to-PDF.pdf", SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

Converti PowerPoint in PDF con Opzioni

Aspose.Slides fornisce opzioni personalizzate—proprietà della classe PdfOptions—che consentono di personalizzare il PDF risultante, proteggere il PDF con una password o specificare come deve procedere il processo di conversione.

Converti PowerPoint in PDF con Opzioni Personalizzate

Utilizzando opzioni di conversione personalizzate, è possibile definire l’impostazione di qualità preferita per le immagini raster, specificare come gestire i metafili, impostare un livello di compressione per il testo, configurare i DPI per le immagini e altro ancora.

# Istanzia la classe PdfOptions.
$pdfOptions = new PdfOptions();

# Imposta la qualità per le immagini JPG.
$pdfOptions->setJpegQuality(90);

# Imposta i DPI per le immagini.
$pdfOptions->setSufficientResolution(300);

# Imposta il comportamento per i metafili.
$pdfOptions->setSaveMetafilesAsPng(true);

# Imposta il livello di compressione del testo per il contenuto testuale.
$pdfOptions->setTextCompression(PdfTextCompression::Flate);

# Definisci la modalità di conformità PDF.
$pdfOptions->setCompliance(PdfCompliance::Pdf15);

# Istanzia la classe Presentation che rappresenta un file PowerPoint o OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Salva la presentazione come documento PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Converti PowerPoint in PDF con Diapositive Nascoste

Se una presentazione contiene diapositive nascoste, è possibile utilizzare il metodo setShowHiddenSlides della classe PdfOptions per includere le diapositive nascoste come pagine nel PDF risultante.

# Istanzia la classe Presentation che rappresenta un file PowerPoint o OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Istanzia la classe PdfOptions.
    $pdfOptions = new PdfOptions();

    # Aggiungi le diapositive nascoste.
    $pdfOptions->setShowHiddenSlides(true);

    # Salva la presentazione come PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Converti PowerPoint in PDF Protetto da Password

Questo codice dimostra come convertire una presentazione PowerPoint in un PDF protetto da password utilizzando i parametri di protezione della classe PdfOptions:

# Istanzia la classe Presentation che rappresenta un file PowerPoint o OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Istanzia la classe PdfOptions.
    $pdfOptions = new PdfOptions();

    # Imposta una password PDF e i permessi di accesso.
    $pdfOptions->setPassword("password");
    $pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

    # Salva la presentazione come PDF.
    $presentation->save("PPTX-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Rileva Sostituzioni di Font

Aspose.Slides fornisce il metodo setWarningCallback nella classe PdfOptions, permettendo di rilevare le sostituzioni di font durante il processo di conversione da presentazione a PDF.

Questo codice mostra come rilevare le sostituzioni di font:

class FontSubstitutionHandler {
    function warning($warning)
    {
        if (java_values($warning->getWarningType()) == WarningType::DataLoss &&
        $warning->getDescription()->startsWith("Font will be substituted")) {
            echo("Font substitution warning: " . $warning->getDescription());
        }

        return ReturnAction::Continue;
    }
}

// Imposta il callback di avviso nelle opzioni PDF.
$pdfOptions = new PdfOptions();
$warningCallback = java_closure(new FontSubstitutionHandler(), null, java("com.aspose.slides.IWarningCallback"));
$pdfOptions->setWarningCallback($warningCallback);

// Istanzia la classe Presentation che rappresenta un file PowerPoint o OpenDocument.
$presentation = new Presentation("sample.pptx");
try {
    // Salva la presentazione come PDF.
    $presentation->save("output.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Converti Diapositive Selezionate in PowerPoint in PDF

Questo codice dimostra come convertire solo diapositive specifiche da una presentazione PowerPoint in PDF:

# Istanzia la classe Presentation che rappresenta un file PowerPoint o OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Imposta l'array dei numeri di diapositiva.
    $slides = array(1, 3);

    # Salva la presentazione come PDF.
    $presentation->save("PPTX-to-PDF.pdf", $slides, SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

Converti PowerPoint in PDF con Dimensione Personalizzata della Diapositiva

Questo codice dimostra come convertire una presentazione PowerPoint in PDF con una dimensione di diapositiva specificata:

$slideWidth = 612.0;
$slideHeight = 792.0;

# Istanzia la classe Presentation che rappresenta un file PowerPoint o OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");

# Crea una nuova presentazione con una dimensione della diapositiva regolata.
$resizedPresentation = new Presentation();

try {
    # Imposta la dimensione personalizzata della diapositiva.
    $resizedPresentation->getSlideSize()->setSize($slideWidth, $slideHeight, SlideSizeScaleType::EnsureFit);

    # Clona la prima diapositiva dalla presentazione originale.
    $slide = $presentation->getSlides()->get_Item(0);
    $resizedPresentation->getSlides()->insertClone(0, $slide);

    # Salva la presentazione ridimensionata in PDF con le note.
    $resizedPresentation->save("PDFnotes_out.pdf", SaveFormat::Pdf);
} finally {
    $resizedPresentation->dispose();
    $presentation->dispose();
}

Converti PowerPoint in PDF in Visualizzazione Note delle Diapositive

Questo codice dimostra come convertire una presentazione PowerPoint in un PDF che include le note:

# Istanzia la classe Presentation che rappresenta un file PowerPoint o OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");
try {
    # Configura le opzioni PDF con layout delle note.
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomFull);
    $pdfOptions = new PdfOptions();
    $pdfOptions->setSlidesLayoutOptions($notesOptions);

    # Salva la presentazione in PDF con le note.
    $presentation->save("PDF_with_notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Accessibilità e Standard di Conformità per PDF

Aspose.Slides consente di utilizzare una procedura di conversione che conforma alle Linee Guida per l’Accessibilità dei Contenuti Web (WCAG). È possibile esportare un documento PowerPoint in PDF utilizzando uno di questi standard di conformità: PDF/A1a, PDF/A1b e PDF/UA.

Questo codice dimostra un processo di conversione da PowerPoint a PDF che produce più PDF basati su diversi standard di conformità:

$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();
}

Nota: Quando si esporta in PDF/UA, Aspose.Slides tratta grafiche complesse come SmartArt, chart e formule come una singola figura. Gli elementi di percorso individuali non sono preservati come contenuto separato e possono essere marcati come artefatti; il testo alternativo è fornito solo per l’intera figura.

FAQ

Posso convertire più file PowerPoint in PDF in blocco?
Sì, Aspose.Slides supporta la conversione batch di più file PPT o PPTX in PDF. È possibile iterare sui file e applicare il processo di conversione programmaticamente.

È possibile proteggere con password il PDF convertito?
Assolutamente. Utilizzare la classe PdfOptions per impostare una password e definire i permessi di accesso durante il processo di conversione.

Come includere le diapositive nascoste nel PDF?
Utilizzare il metodo setShowHiddenSlides nella classe PdfOptions per includere le diapositive nascoste nel PDF risultante.

Aspose.Slides può mantenere alta qualità dell’immagine nel PDF?
Sì, è possibile controllare la qualità delle immagini utilizzando metodi come setJpegQuality e setSufficientResolution nella classe PdfOptions per garantire immagini ad alta qualità nel PDF.

Aspose.Slides supporta gli standard di conformità PDF/A?
Sì, Aspose.Slides consente di esportare PDF conformi a vari standard, tra cui PDF/A1a, PDF/A1b e PDF/UA, assicurando che i documenti soddisfino i requisiti di accessibilità e archiviazione.

Risorse Aggiuntive