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

Vue d’ensemble

Convertir les présentations PowerPoint (PPT, PPTX, ODP, etc.) en format PDF en PHP offre plusieurs avantages, notamment la compatibilité entre 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 de sortie.

Conversions de PowerPoint en PDF

En utilisant Aspose.Slides, vous pouvez convertir les présentations dans les 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 généralement utilisée pour convertir une présentation en PDF.

Aspose.Slides vous permet de convertir :

  • Des présentations entières en PDF
  • Des diapositives spécifiques d’une présentation en PDF

Aspose.Slides exporte les présentations vers PDF, garantissant 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, y compris :

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

Convertir PowerPoint en PDF

Le processus standard de conversion 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 aux niveaux de qualité maximale.

L’exemple suivant charge une présentation et enregistre toutes les diapositives visibles en PDF en utilisant les paramètres d’exportation par défaut.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("PowerPoint.pptx");
try {
    $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 le protéger par mot de passe ou de spécifier le déroulement du processus de conversion.

Convertir PowerPoint en PDF avec Options Personnalisées

À l’aide d’options de conversion personnalisées, vous pouvez définir votre paramètre de qualité préféré pour les images raster, indiquer comment gérer les métafichiers, définir un niveau de compression pour le texte, configurer le DPI des images, etc.

L’exemple suivant exporte une présentation vers PDF 1.5 avec une qualité JPEG de 90, une résolution d’image de 300 DPI, les métafichiers enregistrés en PNG et une compression texte Flate.

use aspose\slides\PdfCompliance;
use aspose\slides\PdfOptions;
use aspose\slides\PdfTextCompression;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$pdfOptions = new PdfOptions();
$pdfOptions->setJpegQuality(90);
$pdfOptions->setSufficientResolution(300);
$pdfOptions->setSaveMetafilesAsPng(true);
$pdfOptions->setTextCompression(PdfTextCompression::Flate);
$pdfOptions->setCompliance(PdfCompliance::Pdf15);

$presentation = new Presentation("PowerPoint.pptx");
try {
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Conserver les Fichiers OLE Intégrés comme Pièces Jointes PDF

Si une présentation contient un classeur Excel intégré, vous pouvez souhaiter que les destinataires du PDF accèdent aux données du classeur ainsi qu’aux diapositives. Appelez setIncludeOleData avec true pour conserver les fichiers OLE intégrés comme pièces jointes dans le PDF résultant.

La valeur par défaut est false : l’image d’aperçu ou l’icône de l’objet OLE est rendue sur la page PDF, mais le fichier intégré n’est pas ajouté en tant que pièce jointe. Le définir à true ajoute également les données du fichier. L’aperçu reste une représentation visuelle ; la pièce jointe permet aux destinataires d’ouvrir ou d’enregistrer le fichier intégré séparément. L’objet OLE ne devient pas une feuille de calcul Excel interactive sur la page PDF.

L’exemple suivant charge une présentation contenant déjà un classeur Excel intégré et l’exporte en PDF avec le classeur attaché.

use aspose\slides\PdfOptions;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$pdfOptions = new PdfOptions();
$pdfOptions->setIncludeOleData(true);

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

Pour vérifier le résultat :

  1. Ouvrez le PDF exporté avec un lecteur qui accepte les pièces jointes, comme Adobe Acrobat Reader.
  2. Ouvrez le panneau Attachments du lecteur et localisez le classeur intégré.
  3. Enregistrez la pièce jointe et ouvrez‑la dans Excel pour examiner les données, ou ouvrez‑la directement si le lecteur le permet. L’aperçu sur la page PDF est séparé de la pièce jointe.

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 du PDF résultant.

L’exemple suivant exporte une présentation en PDF, incluant les diapositives masquées.

use aspose\slides\PdfOptions;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$pdfOptions = new PdfOptions();
$pdfOptions->setShowHiddenSlides(true);

$presentation = new Presentation("PowerPoint.pptx");
try {
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

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

L’exemple suivant exporte une présentation en PDF qui nécessite le mot de passe password pour être ouvert. Les autorisations d’accès permettent l’impression, y compris l’impression haute qualité.

use aspose\slides\PdfAccessPermissions;
use aspose\slides\PdfOptions;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$pdfOptions = new PdfOptions();
$pdfOptions->setPassword("password");
$pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

$presentation = new Presentation("PowerPoint.pptx");
try {
    $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 de la classe PdfOptions qui permet de détecter les substitutions de polices pendant la conversion présentation‑vers‑PDF.

L’exemple suivant exporte une présentation en PDF et affiche les avertissements de substitution de police dans la console. Un avertissement est émis uniquement lorsqu’une police indisponible est substituée lors de l’export.

use aspose\slides\PdfOptions;
use aspose\slides\Presentation;
use aspose\slides\ReturnAction;
use aspose\slides\SaveFormat;
use aspose\slides\WarningType;

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

$warningCallback = java_closure(new FontSubstitutionHandler(), null, java("com.aspose.slides.IWarningCallback"));

$pdfOptions = new PdfOptions();
$pdfOptions->setWarningCallback($warningCallback);

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

Gérer les Polices Sans Variante Gras Dédiée

Une présentation peut appliquer le gras à du texte même si la police ne possède pas de variante gras dédiée. Le texte apparaît alors en gras grâce à un “synthetic bold”, qui épaissit artificiellement les glyphes normaux. Lorsque ce texte paraît trop lourd ou diffère de l’apparence attendue dans le PDF, essayez d’appeler PdfOptions::setRasterizeUnsupportedFontStyles avec true. Cette option rend le texte concerné sous forme de bitmap lors de l’export PDF et peut améliorer son apparence pour certaines polices. Sa valeur par défaut est false.

La présentation d’exemple contient deux zones de texte : une avec texte normal et une avec mise en gras appliquée à la même police, qui ne possède pas de variante gras dédiée. L’exemple suivant charge la présentation, active la rasterisation des styles de police non pris en charge, et l’exporte en PDF :

use aspose\slides\PdfOptions;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$pdfOptions = new PdfOptions();
$pdfOptions->setRasterizeUnsupportedFontStyles(true);

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

Les aperçus suivants montrent le résultat désactivé et le résultat activé. Dans cet exemple, le texte gras possède des traits plus épais avec l’option désactivée. Avec l’option activée, ses traits sont plus légers ; le texte normal reste inchangé. Comparez les résultats avant de choisir le paramètre pour votre présentation.

Option désactivée (false, la valeur par défaut) Option activée (true)
PDF with unsupported font style rasterization disabled PDF with unsupported font style rasterization enabled

Dans cet exemple, l’activation de l’option ne transforme en bitmap que le texte gras : il ne peut pas être sélectionné, copié ou recherché en tant que texte sans OCR, et ses bords apparaissent plus doux à 800 % de zoom. Le texte normal reste recherchable. Avec l’option désactivée, les deux chaînes restent du texte.

Cette option rasterise le texte formaté en gras lorsque sa police n’a pas de variante gras dédiée. La Font substitution sélectionne plutôt une autre police lorsque l’originale est indisponible.

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

L’exemple suivant exporte les diapositives 1 et 3 d’une présentation vers PDF. Les numéros de diapositives dans ce tableau sont indicés à partir de 1, et la présentation d’entrée doit contenir au moins trois diapositives.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

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

Convertir PowerPoint en PDF avec Taille de Diapositive Personnalisée

L’exemple suivant copie la première diapositive d’une présentation dans une nouvelle présentation avec une taille de diapositive de 612 × 792 points (8,5 × 11 pouces). Il redimensionne le contenu de la diapositive pour l’ajuster et exporte la diapositive unique en PDF.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\SlideSizeScaleType;

$slideWidth = 612.0;
$slideHeight = 792.0;

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

    // Supprimer la diapositive vide créée avec la nouvelle présentation.
    $resizedPresentation->getSlides()->removeAt(1);

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

Convertir PowerPoint en PDF en Vue Notes de Diapositive

L’exemple suivant exporte une présentation en PDF, plaçant les notes du présentateur de chaque diapositive sous la diapositive. Utilisez une présentation contenant des notes du présentateur pour voir le résultat.

use aspose\slides\NotesCommentsLayoutingOptions;
use aspose\slides\NotesPositions;
use aspose\slides\PdfOptions;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$notesOptions = new NotesCommentsLayoutingOptions();
$notesOptions->setNotesPosition(NotesPositions::BottomFull);

$pdfOptions = new PdfOptions();
$pdfOptions->setSlidesLayoutOptions($notesOptions);

$presentation = new Presentation("SelectedSlides.pptx");
try {
    $presentation->save("PDF_with_notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Accessibilité et Normes de Conformité pour 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 suivant l’une de ces normes de conformité : PDF/A1a, PDF/A1b et PDF/UA.

Ce code montre 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();
}

Note : Lors de l’exportation vers PDF/UA, Aspose.Slides traite les graphiques complexes tels que SmartArt, graphiques et formules comme une figure unique. Les éléments de chemin individuels ne sont pas conservés comme contenu séparé et peuvent être marqués comme artefacts ; le texte alternatif est fourni uniquement pour la figure entière.

FAQ

Puis‑je convertir plusieurs fichiers PowerPoint en PDF en masse ?

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 ?

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

Comment inclure les diapositives masquées dans le PDF ?

Appelez setShowHiddenSlides avec true dans la classe PdfOptions pour inclure les diapositives masquées dans le PDF résultant.

Aspose.Slides peut‑il maintenir 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 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 aux différentes normes, y compris PDF/A1a, PDF/A1b et PDF/UA, assurant que vos documents répondent aux exigences d’accessibilité et d’archivage.

Ressources Supplémentaires