Convertir PPT et PPTX en PDF en Python via Java [Fonctionnalités avancées incluses]

Vue d’ensemble

Convertir des présentations PowerPoint (PPT, PPTX, ODP, etc.) au format PDF en Python via Java 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 de sortie.

Conversions de PowerPoint vers PDF

En utilisant Aspose.Slides, vous pouvez convertir des 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 en utilisant 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 :

  • Toutes les présentations en PDF
  • Des diapositives spécifiques d’une présentation en PDF

Aspose.Slides exporte les présentations en 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, notamment :

  • Images
  • Zones de texte et formes
  • Mise en forme du texte
  • Mise en forme des paragraphes
  • Hyperliens
  • En-têtes et pieds de page
  • Puces
  • Tableaux

Convertir PowerPoint en PDF

La conversion standard utilise les paramètres d’exportation PDF par défaut. Utilisez des options personnalisées lorsque vous devez contrôler la qualité des images, le contenu des pages ou la conformité du PDF.

Installez Aspose.Slides for Python via Java et un runtime Java compatible avant d’exécuter les exemples. Chaque exemple lit presentation.pptx depuis le répertoire de travail courant ; remplacez-le par votre fichier PPT, PPTX ou ODP. Démarrez la JVM une fois par processus Python.

Ce code convertit une présentation en PDF :

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    presentation.save("presentation.pdf", SaveFormat.Pdf)
finally:
    presentation.dispose()

Convertir PowerPoint en PDF avec Options

Aspose.Slides fournit des options personnalisées — des 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

En utilisant des options de conversion personnalisées, vous pouvez définir votre réglage de qualité préféré pour les images raster, spécifier 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.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfCompliance, PdfOptions, PdfTextCompression, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    pdf_options = PdfOptions()
    pdf_options.setJpegQuality(jpype.JByte(90))
    pdf_options.setSufficientResolution(300)
    pdf_options.setSaveMetafilesAsPng(True)
    pdf_options.setTextCompression(PdfTextCompression.Flate)
    pdf_options.setCompliance(PdfCompliance.Pdf15)
    presentation.save("presentation-custom.pdf", SaveFormat.Pdf, pdf_options)
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.

Le code montre comment convertir une présentation PowerPoint en PDF avec les diapositives masquées incluses :

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfOptions, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    pdf_options = PdfOptions()
    pdf_options.setShowHiddenSlides(True)
    presentation.save("presentation-hidden-slides.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Convertir PowerPoint en PDF protégé par mot de passe

Ce code montre comment convertir une présentation PowerPoint en PDF protégé par mot de passe en utilisant les paramètres de protection de la classe PdfOptions :

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfAccessPermissions, PdfOptions, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    pdf_options = PdfOptions()
    pdf_options.setPassword("password")
    permissions = PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint
    pdf_options.setAccessPermissions(permissions)
    presentation.save("presentation-protected.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Détecter les Substitutions de Polices

Aspose.Slides fournit la méthode setWarningCallback de la classe PdfOptions, vous permettant de détecter les substitutions de polices lors du processus de conversion présentation‑vers‑PDF.

Utilisez un proxy JPype pour recevoir les rappels d’avertissement de l’API Java. Convertissez la chaîne de description Java en chaîne Python avant de vérifier son préfixe :

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfOptions, Presentation, ReturnAction, SaveFormat, WarningType

class FontSubstitutionHandler:
    def warning(self, warning):
        description = str(warning.getDescription())
        if warning.getWarningType() == WarningType.DataLoss and description.startswith("Font will be substituted"):
            print(f"Font substitution warning: {description}")
        return ReturnAction.Continue


presentation = Presentation("presentation.pptx")
try:
    handler = FontSubstitutionHandler()
    callback = jpype.JProxy("com.aspose.slides.IWarningCallback", inst=handler)
    pdf_options = PdfOptions()
    pdf_options.setWarningCallback(callback)
    presentation.save("presentation-font-warnings.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

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

Les numéros de diapositives passés à Presentation.save commencent à 1. Cet exemple exporte les diapositives 1 et 3 lorsqu’elles existent toutes les deux :

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    if presentation.getSlides().size() >= 3:
        slide_numbers = jpype.JArray(jpype.JInt)([1, 3])
        presentation.save("presentation-selected-slides.pdf", slide_numbers, SaveFormat.Pdf)
    else:
        print("The presentation must contain at least three slides.")
finally:
    presentation.dispose()

Convertir PowerPoint en PDF avec Taille de Diapositive Personnalisée

Cet exemple exporte la première diapositive sur une page mesurant 612 × 792 points (US Letter). Il duplique la diapositive dans une nouvelle présentation avec la taille spécifiée :

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, SlideSizeScaleType

presentation = Presentation("presentation.pptx")
try:
    resized_presentation = Presentation()
    try:
        resized_presentation.getSlideSize().setSize(612.0, 792.0, SlideSizeScaleType.EnsureFit)
        if presentation.getSlides().size() > 0:
            slide = presentation.getSlides().get_Item(0)
            resized_presentation.getSlides().insertClone(0, slide)
            resized_presentation.getSlides().removeAt(1)
            resized_presentation.save("presentation-custom-size.pdf", SaveFormat.Pdf)
        else:
            print("The presentation contains no slides.")
    finally:
        resized_presentation.dispose()
finally:
    presentation.dispose()

Convertir PowerPoint en PDF en Vue Notes

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

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import NotesCommentsLayoutingOptions, NotesPositions, PdfOptions, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    notes_options = NotesCommentsLayoutingOptions()
    notes_options.setNotesPosition(NotesPositions.BottomFull)
    pdf_options = PdfOptions()
    pdf_options.setSlidesLayoutOptions(notes_options)
    presentation.save("presentation-with-notes.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Accessibilité et Normes de Conformité pour le PDF

Lors de la création de PDFs accessibles, consultez les Web Content Accessibility Guidelines (WCAG). Utilisez PdfOptions.setCompliance pour sélectionner une norme de sortie : PDF/A1a, PDF/A1b et PDF/UA.

Ce code montre un processus de conversion PowerPoint‑vers‑PDF qui produit plusieurs PDFs selon différentes normes de conformité :

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfCompliance, PdfOptions, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    pdf_options = PdfOptions()
    pdf_options.setCompliance(PdfCompliance.PdfA1a)
    presentation.save("presentation-a1a.pdf", SaveFormat.Pdf, pdf_options)
    pdf_options.setCompliance(PdfCompliance.PdfA1b)
    presentation.save("presentation-a1b.pdf", SaveFormat.Pdf, pdf_options)
    pdf_options.setCompliance(PdfCompliance.PdfUa)
    presentation.save("presentation-ua.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Note : Lors de l’exportation vers PDF/UA, Aspose.Slides traite les graphiques complexes tels que SmartArt, les graphiques et les formules comme une seule figure. Les éléments de tracé individuels ne sont pas conservés en tant que 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 de manière programmatique.

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 ?
Utilisez la méthode setShowHiddenSlides de 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 dans 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 permet d’exporter des PDFs conformes à diverses normes, notamment PDF/A1a, PDF/A1b et PDF/UA, pour l’accessibilité ou l’archivage. Choisissez la norme appropriée et vérifiez le résultat par rapport à vos exigences.

Ressources supplémentaires