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

Vue d’ensemble

Convertir des présentations PowerPoint (PPT, PPTX, ODP, etc.) en format PDF en C++ 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 PowerPoint vers PDF

À l’aide d’Aspose.Slides, vous pouvez convertir des présentations dans les formats suivants en PDF :

  • PPT
  • PPTX
  • ODP

Pour convertir une présentation en PDF, passez le nom du fichier en argument à la classe Presentation puis enregistrez la présentation au format PDF à l’aide d’une 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 PDFs 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
  • Mise en forme du texte
  • Mise en forme des paragraphes
  • Hyperliens
  • En‑têtes et pieds de page
  • Puces
  • Tableaux

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.

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

// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.ppt");

// Enregistrer la présentation au format PDF.
presentation->Save(u"PPT-to-PDF.pdf", SaveFormat::Pdf);

presentation->Dispose();

Convertir PowerPoint en PDF avec Options

Aspose.Slides fournit des options personnalisées — propriétés sous la classe PdfOptions — qui vous permettent de personnaliser le PDF résultant, de le verrouiller par 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 comment les métafatiles doivent être traitées, définir un niveau de compression pour le texte, configurer le DPI pour les images, etc.

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

// Instancier la classe PdfOptions.
auto pdfOptions = MakeObject<PdfOptions>();

// Définir la qualité pour les images JPG.
pdfOptions->set_JpegQuality(90);

// Définir le DPI pour les images.
pdfOptions->set_SufficientResolution(300);

// Définir le comportement pour les metafiles.
pdfOptions->set_SaveMetafilesAsPng(true);

// Définir le niveau de compression du texte pour le contenu textuel.
pdfOptions->set_TextCompression(PdfTextCompression::Flate);

// Définir le mode de conformité PDF.
pdfOptions->set_Compliance(PdfCompliance::Pdf15);

// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// Enregistrer la présentation au format PDF.
presentation->Save(u"PowerPoint-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

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 set_ShowHiddenSlides de la classe PdfOptions pour inclure les diapositives masquées en tant que pages dans le PDF résultant.

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

// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// Instancier la classe PdfOptions.
auto pdfOptions = MakeObject<PdfOptions>();

// Ajouter des diapositives cachées.
pdfOptions->set_ShowHiddenSlides(true);

// Enregistrer la présentation au format PDF.
presentation->Save(u"PowerPoint-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

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

Ce code C++ 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 :

// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// Instancier la classe PdfOptions.
auto pdfOptions = MakeObject<PdfOptions>();

// Définir un mot de passe PDF et les autorisations d’accès.
pdfOptions->set_Password(u"password");
pdfOptions->set_AccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

// Enregistrer la présentation au format PDF.
presentation->Save(u"PPTX-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

Détecter les Substitutions de Polices

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

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

// Implémentation du rappel d'avertissement.
class FontSubstitutionHandler : public IWarningCallback
{
public:
    ReturnAction Warning(SharedPtr<IWarningInfo> warning) override;
};

ReturnAction FontSubstitutionHandler::Warning(SharedPtr<IWarningInfo> warning)
{
    if (warning->get_WarningType() == WarningType::DataLoss && 
        warning->get_Description().StartsWith(u"Font will be substituted"))
    {
        Console::WriteLine(u"Font substitution warning: {0}", warning->get_Description());
    }

    return ReturnAction::Continue;
}

int main()
{
    // Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
    auto presentation = MakeObject<Presentation>(u"sample.pptx");

    // Définir le rappel d'avertissement dans les options PDF.
    auto pdfOptions = MakeObject<PdfOptions>();
    pdfOptions->set_WarningCallback(MakeObject<FontSubstitutionHandler>());

    // Enregistrer la présentation au format PDF.
    presentation->Save(u"output.pdf", SaveFormat::Pdf, pdfOptions);
    
    presentation->Dispose();

    return 0;
}

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

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

// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// Définir le tableau des numéros de diapositives.
auto slides = MakeArray<int32_t>({ 1, 3 });

// Enregistrer la présentation au format PDF.
presentation->Save(u"PPTX-to-PDF.pdf", slides, SaveFormat::Pdf);

presentation->Dispose();

Convertir PowerPoint en PDF avec Taille de Diapositive Personnalisée

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

auto slideWidth = 612;
auto slideHeight = 792;

// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
auto presentation = MakeObject<Presentation>(u"SelectedSlides.pptx");

// Créer une nouvelle présentation avec une taille de diapositive ajustée.
auto resizedPresentation = MakeObject<Presentation>();

// Définir la taille de diapositive personnalisée.
resizedPresentation->get_SlideSize()->SetSize(slideWidth, slideHeight, SlideSizeScaleType::EnsureFit);

// Cloner la première diapositive de la présentation originale.
auto slide = presentation->get_Slide(0);
resizedPresentation->get_Slides()->InsertClone(0, slide);

// Enregistrer la présentation redimensionnée au format PDF avec notes.
resizedPresentation->Save(u"PDF_with_notes.pdf", SaveFormat::Pdf);

resizedPresentation->Dispose();
presentation->Dispose();

Convertir PowerPoint en PDF en Vue des Notes de Diapositive

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

// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument.
auto presentation = MakeObject<Presentation>(u"SelectedSlides.pptx");

// Configurer les options PDF avec la mise en page des notes.
auto notesOptions = MakeObject<NotesCommentsLayoutingOptions>();
notesOptions->set_NotesPosition(NotesPositions::BottomFull);
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_SlidesLayoutOptions(notesOptions);

// Enregistrer la présentation au format PDF avec notes.
presentation->Save(u"PDF_with_notes.tiff", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

Accessibilité et Normes de Conformité pour le PDF

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

Ce code C++ montre un processus de conversion PowerPoint‑vers‑PDF qui génère plusieurs PDFs selon différentes normes de conformité :

auto presentation = MakeObject<Presentation>(u"pres.pptx");

auto pdfOptionsA1a = MakeObject<PdfOptions>();

pdfOptionsA1a->set_Compliance(PdfCompliance::PdfA1a);
presentation->Save(u"pres-a1a-compliance.pdf", SaveFormat::Pdf, pdfOptionsA1a);

auto pdfOptionsA1b = MakeObject<PdfOptions>();
pdfOptionsA1b->set_Compliance(PdfCompliance::PdfA1b);
presentation->Save(u"pres-a1b-compliance.pdf", SaveFormat::Pdf, pdfOptionsA1b);

auto pdfOptionsUa = MakeObject<PdfOptions>();
pdfOptionsUa->set_Compliance(PdfCompliance::PdfUa);

presentation->Save(u"pres-ua-compliance.pdf", SaveFormat::Pdf, pdfOptionsUa);

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 chemin individuels ne sont pas conservés comme contenu séparé et peuvent être marqués comme artefacts ; le texte alternatif n’est fourni que 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 ?

Absolument. 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 set_ShowHiddenSlides 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 set_JpegQuality et set_SufficientResolution dans la classe PdfOptions afin d’assurer 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 PDFs conformes à diverses normes, notamment PDF/A1a, PDF/A1b et PDF/UA, garantissant que vos documents répondent aux exigences d’accessibilité et d’archivage.

Ressources supplémentaires