Convertir PPT et PPTX en PDF en PHP [Fonctionnalités avancées incluses]

Aperçu

La conversion de présentations PowerPoint (PPT, PPTX, ODP, etc.) en format PDF avec PHP offre plusieurs avantages, notamment la compatibilité sur différents appareils et la préservation de la mise en page et du formatage de votre présentation. Ce guide montre comment convertir des présentations en documents PDF, utiliser diverses options pour contrôler la qualité des images, inclure les diapositives masquées, protéger les fichiers PDF par mot de passe, détecter les substitutions de polices, sélectionner des diapositives spécifiques pour la conversion et appliquer des normes de conformité aux documents générés.

Conversions PowerPoint vers PDF

Avec Aspose.Slides, vous pouvez convertir les présentations des formats suivants en PDF :

  • PPT
  • PPTX
  • ODP

Pour convertir une présentation en PDF, transmettez le nom du fichier en argument à la classe Presentation puis enregistrez la présentation au format PDF à l’aide de la méthode save. La classe Presentation expose la méthode save qui est généralement utilisée pour convertir une présentation en PDF.

Aspose.Slides vous permet de convertir :

  • Des présentations complètes en PDF
  • Des diapositives spécifiques d’une présentation en PDF

Aspose.Slides exporte les présentations en PDF, en veillant à ce que les PDF résultants correspondent étroitement aux présentations d’origine. Les éléments et attributs sont rendus avec précision lors de la conversion, notamment :

  • Images
  • Zones de texte et formes
  • Formatage du texte
  • Formatage des paragraphes
  • Hyperliens
  • En‑têtes et pieds de page
  • Puces
  • Tableaux

Convertir PowerPoint en PDF

Le processus de conversion standard PowerPoint‑vers‑PDF utilise les options par défaut. Dans ce cas, Aspose.Slides tente de convertir la présentation fournie en PDF en utilisant des paramètres optimaux au niveau de qualité maximal.

Ce code montre comment convertir une présentation (PPT, PPTX, ODP, etc.) en PDF :

# Instancie la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Enregistre la présentation au format PDF.
    $presentation->save("PPT-to-PDF.pdf", SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

Convertir PowerPoint en PDF avec Options

Aspose.Slides fournit des options personnalisées — propriétés de la classe PdfOptions — qui vous permettent de personnaliser le PDF résultant, de verrouiller le PDF avec un mot de passe ou de spécifier comment le processus de conversion doit se dérouler.

Convertir PowerPoint en PDF avec Options Personnalisées

Grâce aux options de conversion personnalisées, vous pouvez définir votre préférence de qualité pour les images raster, préciser la façon dont les métafichiers doivent être traités, définir un niveau de compression pour le texte, configurer le DPI des images, etc.

L’exemple de code ci‑dessous montre comment convertir une présentation PowerPoint en PDF avec plusieurs options personnalisées.

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

# Définit la qualité des images JPG.
$pdfOptions->setJpegQuality(90);

# Définit le DPI pour les images.
$pdfOptions->setSufficientResolution(300);

# Définit le comportement des métafichiers.
$pdfOptions->setSaveMetafilesAsPng(true);

# Définit le niveau de compression du texte pour le contenu textuel.
$pdfOptions->setTextCompression(PdfTextCompression::Flate);

# Définit le mode de conformité PDF.
$pdfOptions->setCompliance(PdfCompliance::Pdf15);

# Instancie la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Enregistre la présentation en tant que document PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Convertir PowerPoint en PDF avec Diapositives Masquées

Si une présentation contient des diapositives masquées, vous pouvez utiliser la méthode setShowHiddenSlides de la classe PdfOptions pour inclure les diapositives masquées en tant que pages dans le PDF résultant.

Ce code montre comment convertir une présentation PowerPoint en PDF en incluant les diapositives masquées :

# Instancie la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Instancie la classe PdfOptions.
    $pdfOptions = new PdfOptions();

    # Ajouter les diapositives masquées.
    $pdfOptions->setShowHiddenSlides(true);

    # Enregistre la présentation au format PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Convertir PowerPoint en PDF protégé par Mot de Passe

Ce code démontre comment convertir une présentation PowerPoint en PDF protégé par mot de passe à l’aide des paramètres de protection de la classe PdfOptions :

# Instancie la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Instancie la classe PdfOptions.
    $pdfOptions = new PdfOptions();

    # Définit un mot de passe PDF et les permissions d'accès.
    $pdfOptions->setPassword("password");
    $pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

    # Enregistre la présentation au format PDF.
    $presentation->save("PPTX-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Détecter les Substitutions de Polices

Aspose.Slides fournit la méthode setWarningCallback sous la classe PdfOptions qui vous permet de détecter les substitutions de polices pendant le processus de conversion de la présentation en PDF.

Ce code montre comment détecter les substitutions de polices :

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;
    }
}

// Définir le rappel d'avertissement dans les options PDF.
$pdfOptions = new PdfOptions();
$warningCallback = java_closure(new FontSubstitutionHandler(), null, java("com.aspose.slides.IWarningCallback"));
$pdfOptions->setWarningCallback($warningCallback);

// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
$presentation = new Presentation("sample.pptx");
try {
    // Enregistrer la présentation au format PDF.
    $presentation->save("output.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Convertir des Diapositives Sélectionnées de PowerPoint en PDF

Ce code montre comment convertir uniquement des diapositives spécifiques d’une présentation PowerPoint en PDF :

# Instancie la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Définir le tableau des numéros de diapositives.
    $slides = array(1, 3);

    # Enregistre la présentation au format PDF.
    $presentation->save("PPTX-to-PDF.pdf", $slides, SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

Convertir PowerPoint en PDF avec Taille de Diapositive Personnalisée

Ce code montre comment convertir une présentation PowerPoint en PDF avec une taille de diapositive spécifiée :

$slideWidth = 612.0;
$slideHeight = 792.0;

# Instancie la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");

# Crée une nouvelle présentation avec une taille de diapositive ajustée.
$resizedPresentation = new Presentation();

try {
    # Définit la taille personnalisée de la diapositive.
    $resizedPresentation->getSlideSize()->setSize($slideWidth, $slideHeight, SlideSizeScaleType::EnsureFit);

    # Clone la première diapositive de la présentation originale.
    $slide = $presentation->getSlides()->get_Item(0);
    $resizedPresentation->getSlides()->insertClone(0, $slide);

    # Enregistre la présentation redimensionnée dans un PDF avec notes.
    $resizedPresentation->save("PDFnotes_out.pdf", SaveFormat::Pdf);
} finally {
    $resizedPresentation->dispose();
    $presentation->dispose();
}

Convertir PowerPoint en PDF en Vue Notes de Diapositive

Ce code montre comment convertir une présentation PowerPoint en PDF incluant les notes :

# Instancie la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");
try {
    # Configure les options PDF avec la disposition des notes.
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomFull);
    $pdfOptions = new PdfOptions();
    $pdfOptions->setSlidesLayoutOptions($notesOptions);

    # Enregistre la présentation dans un PDF avec notes.
    $presentation->save("PDF_with_notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Accessibilité et Normes de Conformité pour le PDF

Aspose.Slides vous permet d’utiliser une procédure de conversion conforme aux Web Content Accessibility Guidelines (WCAG). Vous pouvez exporter un document PowerPoint en PDF en respectant l’une de ces normes de conformité : PDF/A1a, PDF/A1b et PDF/UA.

Ce code illustre un processus de conversion PowerPoint‑vers‑PDF qui produit plusieurs PDF selon différentes normes de 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();
}

FAQ

Puis-je convertir plusieurs fichiers PowerPoint en PDF en lot ?

Oui, Aspose.Slides prend en charge la conversion par lots de plusieurs fichiers PPT ou PPTX en PDF. Vous pouvez parcourir vos fichiers et appliquer le processus de conversion programmatiquement.

Est‑il possible de protéger le PDF converti par mot de passe ?

Absolument. Utilisez la classe PdfOptions pour définir un mot de passe et spécifier les autorisations d’accès pendant la conversion.

Comment inclure les diapositives masquées dans le PDF ?

Utilisez la méthode setShowHiddenSlides de la classe PdfOptions pour inclure les diapositives masquées dans le PDF résultant.

Aspose.Slides peut‑il conserver une haute qualité d’image dans le PDF ?

Oui, vous pouvez contrôler la qualité des images en utilisant des méthodes telles que setJpegQuality et setSufficientResolution de la classe PdfOptions pour garantir des images de haute qualité dans votre PDF.

Aspose.Slides prend‑il en charge les normes de conformité PDF/A ?

Oui, Aspose.Slides vous permet d’exporter des PDF conformes à diverses normes, notamment PDF/A1a, PDF/A1b et PDF/UA, assurant que vos documents répondent aux exigences d’accessibilité et d’archivage.

Ressources supplémentaires