linktitle: Convert other file formats to PDF
type: docs
weight: 80
url: /fr/cpp/convert-other-files-to-pdf/
lastmod: "2021-11-19"
description: Ce sujet vous montre comment Aspose.PDF permet de convertir d'autres formats de fichiers en document PDF.
sitemap:
    changefreq: "monthly"
    priority: 0.5
---

## Convertir EPUB en PDF

**Aspose.PDF for C++** vous permet de convertir simplement des fichiers EPUB au format PDF.

<abbr title="electronic publication">EPUB</abbr> (abréviation de publication électronique) est une norme gratuite et ouverte pour les livres électroniques du Forum International de l'Édition Numérique (IDPF). Les fichiers ont l'extension .epub. EPUB est conçu pour le contenu reformatable, ce qui signifie qu'un lecteur EPUB peut optimiser le texte pour un appareil d'affichage particulier.

EPUB prend également en charge le contenu à mise en page fixe.
``` Le format est destiné à être un format unique que les éditeurs et les maisons de conversion peuvent utiliser en interne, ainsi que pour la distribution et la vente. Il remplace la norme Open eBook. La version EPUB 3 est également approuvée par le Book Industry Study Group (BISG), une association commerciale de premier plan pour les meilleures pratiques standardisées, la recherche, l'information et les événements, pour l'emballage de contenu.

Étapes de conversion :

1. Créez une [Classe String](https://reference.aspose.com/pdf/cpp/class/system.string) pour le nom du chemin et le nom du fichier.
1. Créez une instance de classe [EpubLoadOptions](https://reference.aspose.com/pdf/cpp/class/aspose.pdf.load_options).
1. Créez une instance de la classe [Document](https://reference.aspose.com/pdf/cpp/class/aspose.pdf.document) avec mention du nom de fichier source et des options.
1. Chargez et [Enregistrez](https://reference.aspose.com/pdf/cpp/class/aspose.pdf.document#ac082fe8e67b25685fc51d33e804269fa) le fichier d'entrée.

Le code suivant montre comment convertir des fichiers EPUB au format PDF avec C++.

```cpp
void ConvertEPUBtoPDF()
{
    std::clog << "EPUB to PDF convert: Start" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("aliceDynamic.epub");
    String outfilename("epub_test.pdf");
    auto options = MakeObject<EpubLoadOptions>();
    try {
    auto document = MakeObject<Document>(_dataDir + infilename, options);
    document->Save(_dataDir + outfilename);
    }
    catch (System::Exception ex) {
    std::cerr << ex->get_Message() << std::endl;
    }
    std::clog << "EPUB to PDF convert: End" << std::endl;
}

Convertir du texte en PDF

Aspose.PDF pour C++ prend en charge la fonctionnalité de conversion de texte brut et de fichier texte pré-formaté au format PDF.

Convertir du texte en PDF signifie ajouter des fragments de texte à la page PDF. En ce qui concerne les fichiers texte, nous traitons 2 types de texte : le pré-formatage (par exemple, 25 lignes avec 80 caractères par ligne) et le texte non formaté (texte brut). Selon nos besoins, nous pouvons contrôler cette addition nous-mêmes ou la confier aux algorithmes de la bibliothèque.

Convertir un fichier texte brut en PDF

Dans le cas d’un fichier texte brut, nous pouvons utiliser la technique suivante :

  1. Créer une Classe String pour le nom du chemin et le nom du fichier.
  2. Lire le fichier texte source en utilisant TextReader
  3. Instancier un objet Document.
  4. Ajouter une Page à la collection de pages du document.
  5. Créer un nouvel objet TextFragment et passer l’objet TextReader à son constructeur.
  6. Ajouter un nouveau paragraphe de texte dans la collection de paragraphes et passer l’objet TextFragment.
  7. Charger et Enregistrer le fichier d’entrée.
void ConvertTextToPDF()
{
    std::clog << "Text to PDF convert: Start" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.txt");
    String outfilename("TextToPDF.pdf");

    // Lire le fichier texte source
    String content = System::IO::File::ReadAllText(_dataDir + infilename);

    // Instancier un objet Document en appelant son constructeur vide
    auto document = MakeObject<Document>();

    // Ajouter une nouvelle page dans la collection de Pages du Document
    auto page = document->get_Pages()->Add();

    // Créer une instance de TextFragmet et passer le texte de l'objet lecteur à son constructeur en tant qu'argument
    auto text = MakeObject<TextFragment>(content);

    // Ajouter un nouveau paragraphe de texte dans la collection de paragraphes et passer l'objet TextFragment
    auto paragraphs = page->get_Paragraphs();
    paragraphs->Add(text);

    // Enregistrer le fichier PDF résultant
    document->Save(_dataDir + outfilename);
    std::clog << "Text to PDF convert: End" << std::endl;
}

Convertir un fichier texte pré-formaté en PDF

La conversion de texte pré-formaté est semblable au texte brut, mais vous devez effectuer des actions supplémentaires telles que la définition des marges, du type et de la taille de police. Évidemment, cette police doit être à chasse fixe (par exemple, Courier New).

Suivez ces étapes pour convertir un texte pré-formaté en PDF avec C++ :

  1. Instancier un objet Document en appelant son constructeur vide.
  2. Définir les marges gauche et droite pour une meilleure présentation.
  3. Instancier l’objet Document et ajouter une nouvelle page dans la collection Pages.
  4. Charger et Enregistrer le fichier image d’entrée.
void ConvertPreFormattedTextToPdf()
{
    std::clog << "Texte pré-formaté en PDF : Début" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("rfc822.txt");
    String outfilename("TextToPDF.pdf");
    // Lire le fichier texte comme un tableau de chaînes
    auto lines = System::IO::File::ReadAllLines(_dataDir + infilename);

    // Instancier un objet Document en appelant son constructeur vide
    auto document = MakeObject<Document>();

    // Ajouter une nouvelle page dans la collection Pages du Document
    auto page = document->get_Pages()->Add();

    // Définir les marges gauche et droite pour une meilleure présentation
    page->get_PageInfo()->get_Margin()->set_Left(20);
    page->get_PageInfo()->get_Margin()->set_Right(10);
    page->get_PageInfo()->get_DefaultTextState()->set_Font(FontRepository::FindFont(u"Courier New"));
    page->get_PageInfo()->get_DefaultTextState()->set_FontSize(12);

    for (int index = 0; index < lines->get_Length(); index++)
    {
        // vérifier si la ligne contient le caractère "saut de page"
        // voir https://fr.wikipedia.org/wiki/Saut_de_page
        auto line = lines->idx_get(index);
        if (line.StartsWith(u"\x0c"))
        {
        if (document->get_Pages()->get_Count() > 3) break;
        page = document->get_Pages()->Add();
        // Définir les marges gauche et droite pour une meilleure présentation
        page->get_PageInfo()->get_Margin()->set_Left(20);
        page->get_PageInfo()->get_Margin()->set_Right(10);
        page->get_PageInfo()->get_DefaultTextState()->set_Font(FontRepository::FindFont(u"Courier New"));
        page->get_PageInfo()->get_DefaultTextState()->set_FontSize(12);
        }
        else
        {
        // Créer une instance de TextFragment et
        // passer la ligne à son constructeur en tant qu'argument
        auto text = MakeObject<TextFragment>(line);

        // Ajouter un nouveau paragraphe de texte dans la collection de paragraphes et passer l'objet TextFragment
        page->get_Paragraphs()->Add(text);
        }
    }

    // Enregistrer le fichier PDF résultant
    document->Save(_dataDir + outfilename);
    std::clog << "Texte pré-formaté en PDF : Fin" << std::endl;
}

Convertir XPS en PDF

Aspose.PDF pour C++ prend en charge la fonctionnalité de conversion des fichiers XPS au format PDF. Consultez cet article pour résoudre vos tâches.

Le type de fichier XPS est principalement associé à la spécification XML Paper Specification par Microsoft Corporation. La spécification XML Paper Specification (XPS), anciennement nom de code Metro et englobant le concept marketing Next Generation Print Path (NGPP), est l’initiative de Microsoft pour intégrer la création et la visualisation de documents dans son système d’exploitation Windows.

Afin de convertir XPS en PDF avec Aspose.PDF pour C++, nous avons introduit une classe nommée XpsLoadOption qui est utilisée pour initialiser un objet LoadOptions. Plus tard, cet objet est passé comme argument lors de l’initialisation de l’objet Document et il aide le moteur de rendu PDF à déterminer le format d’entrée du document source.

Le fragment de code suivant montre le processus de conversion d’un fichier XPS au format PDF avec C++.

void ConvertXPStoPDF()
{
    std::clog << "XPS à PDF convertir : Début" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.oxps");
    String outfilename("XPStoPDF.pdf");
    auto options = MakeObject<XpsLoadOptions>();
    try {
        auto document = MakeObject<Document>(_dataDir + infilename, options);
        document->Save(_dataDir + outfilename);
    }
    catch (System::Exception ex) {
        std::cerr << ex->get_Message() << std::endl;
    };
    std::clog << "XPS à PDF convertir : Terminé" << std::endl;
}

Convertir XML en PDF

Le format XML est utilisé pour stocker des données structurées. Il existe plusieurs façons de convertir XML en PDF dans Aspose.PDF.

Convertir XSL-FO en PDF

  1. Créez une classe String pour le nom de chemin et le nom de fichier.
  2. Instancier un objet XslFoLoadOption.
  3. Définir la stratégie de gestion des erreurs.
  4. Instancier un objet Document.
  5. Enregistrer le fichier image d’entrée.
void Convert_XSLFO_to_PDF()
{
    std::clog << "XSL-FO to PDF convert: Start" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilenameXSL("c:\\samples\\employees.xslt");
    String infilenameXML("c:\\samples\\employees.xml");

     String outfilename("XMLFOtoPDF.pdf");
    // Instantiate XslFoLoadOption object
    auto options = new XslFoLoadOptions(infilenameXSL);
    // Set error handling strategy
    options->ParsingErrorsHandlingType = XslFoLoadOptions::ParsingErrorsHandlingTypes::ThrowExceptionImmediately;
    // Create Document object
    auto document = MakeObject<Document>(infilenameXML, options);
    document->Save(_dataDir + outfilename);
}