Convertir des présentations PowerPoint en Markdown en PHP

Vue d’ensemble

Aspose.Slides for PHP via Java permet de convertir le contenu des présentations en Markdown, vous permettant de réutiliser les fichiers PowerPoint (PPT, PPTX) et OpenDocument (ODP) pour les wikis, les dépôts Git et les générateurs de sites statiques. L’API préserve la hiérarchie des diapositives tout en produisant un Markdown léger et lisible, vous permettant d’automatiser les pipelines de documentation et de garder les présentations sources et les fichiers Markdown parfaitement synchronisés.

La prise en charge de la conversion PowerPoint‑vers‑Markdown a été implémentée dans Aspose.Slides 23.7.

Convertir une présentation en Markdown

Cette section explique comment Aspose.Slides convertit les présentations PowerPoint et OpenDocument (PPT, PPTX, ODP) en Markdown propre, en conservant la hiérarchie originale des diapositives, le texte et le formatage de base intacts, afin que vous puissiez réutiliser le contenu dans la documentation ou des flux de travail contrôlés par version sans effort manuel supplémentaire.

  1. Créez une instance de la classe Presentation pour représenter la présentation.
  2. Utilisez la méthode save pour l’exporter en tant que fichier Markdown.

Ce code PHP montre comment convertir une présentation PowerPoint en Markdown:

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

Convertir une présentation en variante Markdown

Aspose.Slides vous permet de convertir des présentations PowerPoint en Markdown avec une syntaxe de base, ainsi qu’en CommonMark, GitHub‑flavored Markdown, Trello, XWiki, GitLab et dix‑sept autres variantes Markdown.

Le code PHP suivant démontre comment convertir une présentation PowerPoint en CommonMark:

$presentation = new Presentation("presentation.pptx");
try {
    $saveOptions = new MarkdownSaveOptions();
    $saveOptions->setFlavor(Flavor->CommonMark);

    $presentation->save("presentation.md", SaveFormat::Md, $saveOptions);
} finally {
    $presentation->dispose();
}

Les 23 variantes Markdown prises en charge sont répertoriées dans l’énumération Flavor.

Convertir une présentation contenant des images en Markdown

La classe MarkdownSaveOptions expose des propriétés et des énumérations qui vous permettent de configurer le fichier Markdown résultant. Par exemple, l’énumération MarkdownExportType spécifie la façon dont les images sont gérées : Sequential, TextOnly ou Visual.

Convertir les images séquentiellement

Si vous souhaitez que les images apparaissent individuellement, les unes après les autres, dans le Markdown résultant, vous devez choisir l’option Sequential. Le code PHP suivant montre comment convertir une présentation contenant des images en Markdown:

$presentation = new Presentation("presentation.pptx");
try {
    $saveOptions = new MarkdownSaveOptions();
    $saveOptions->setShowHiddenSlides(true);
    $saveOptions->setShowSlideNumber(true);
    $saveOptions->setFlavor(Flavor->Github);
    $saveOptions->setExportType(MarkdownExportType::Sequential);
    $saveOptions->setNewLineType(NewLineType::Windows);

    $slideIndices = array(1, 2, 3, 4);
    $presentation->save("presentation.md", $slideIndices, SaveFormat::Md, $saveOptions);
} finally {
    $presentation->dispose();
}

Convertir les images visuellement

Si vous voulez que les images apparaissent ensemble dans le Markdown résultant, vous devez choisir l’option Visual. Dans ce cas, les images sont enregistrées dans le répertoire de travail actuel de l’application (et un chemin relatif est généré pour elles dans le document Markdown), ou vous pouvez spécifier le répertoire et le nom de dossier de votre choix.

Le code PHP suivant démontre l’opération:

$presentation = new Presentation("presentation.pptx");
try {
    $outPath = "c:/documents";

    $saveOptions = new MarkdownSaveOptions();
    $saveOptions->setExportType(MarkdownExportType::Visual);
    $saveOptions->setImagesSaveFolderName("md-images");
    $saveOptions->setBasePath($outPath);

    $presentation->save("presentation.md", SaveFormat::Md, $saveOptions);
} finally {
    $presentation->dispose();
}

FAQ

Les hyperliens survivent-ils à l’exportation en Markdown ?

Oui. Les hyperliens du texte sont conservés comme des liens Markdown standards. Les transitions et les animations des diapositives ne sont pas converties.

Puis-je accélérer la conversion en l’exécutant sur plusieurs threads ?

Vous pouvez paralléliser entre les fichiers, mais ne partagez pas la même instance de Presentation entre les threads. Utilisez des instances/processus séparés par fichier pour éviter les conflits.

Que se passe-t-il pour les images — où sont‑elles enregistrées et les chemins sont‑ils relatifs ?

Les images sont exportées vers un dossier dédié, et le fichier Markdown les référence avec des chemins relatifs par défaut. Vous pouvez configurer le chemin de sortie de base et le nom du dossier d’actifs pour conserver une structure de dépôt prévisible.