Convertir TeX en fichier PDF ou XPS par programmation à l'aide de C++

Les fichiers TeX sont utilisés pour composer différents documents et livres contenant du texte, des symboles et des expressions arithmétiques. De plus, ces fichiers peuvent générer des sorties telles que PDF, XPS et divers formats d’image. Dans cet article, vous apprendrez à convertir des fichiers TeX au format XPS et PDF à l’aide de C++.

API C++ pour la conversion de TeX au format PDF et XPS

Aspose.TeX for C++ est une bibliothèque C++ permettant de travailler avec des fichiers TeX sans nécessiter l’installation d’un logiciel supplémentaire. L’API vous permet de composer des fichiers TeX et de générer une sortie dans des formats tels que XPS, PDF, PNG, JPEG, TIFF, BMP. Vous pouvez soit installer l’API via NuGet ou la télécharger directement à partir de la section Téléchargements.

PM> Install-Package Aspose.TeX.Cpp

Convertir TeX au format XPS en utilisant C++

Vous pouvez convertir des fichiers TeX au format XPS en quelques lignes de code seulement. Pour y parvenir, veuillez suivre les étapes ci-dessous.

L’exemple de code suivant montre comment convertir un fichier TeX au format XPS à l’aide de C++.

// Créez des options de composition pour le format ObjectTeX par défaut sur l'extension du moteur ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Spécifiez un répertoire de travail du système de fichiers pour l'entrée.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Spécifiez un répertoire de travail du système de fichiers pour la sortie.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Spécifiez la console comme terminal de sortie.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Défaut. Pas besoin de préciser.
// Spécifiez le flux de mémoire comme terminal de sortie, si vous ne voulez pas que la sortie du terminal soit écrite sur la console.
//options.TerminalOut = new OutputMemoryTerminal();

// Exécutez la composition.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// Pour plus de sortie à regarder écrire.
options->get_TerminalOut()->get_Writer()->WriteLine();

Conversion de TeX au format PDF à l’aide de C++

Voici les étapes pour convertir les fichiers TeX au format PDF.

L’exemple de code suivant montre comment convertir un fichier TeX au format PDF à l’aide de C++.

// Créez des options de composition pour le format ObjectTeX par défaut sur l'extension du moteur ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Spécifiez un répertoire de travail du système de fichiers pour l'entrée.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Spécifiez un répertoire de travail du système de fichiers pour la sortie.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Spécifiez la console comme terminal de sortie.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Défaut. Pas besoin de préciser.
// Spécifiez le flux de mémoire comme terminal de sortie, si vous ne voulez pas que la sortie du terminal soit écrite sur la console.
//options.TerminalOut = new OutputMemoryTerminal();

// Définir les options d'enregistrement de PDF
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

// Exécutez la composition.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// Pour plus de sortie à regarder écrire.
options->get_TerminalOut()->get_Writer()->WriteLine();

Convertir le répertoire TeX ZIP en répertoire PDF ZIP en utilisant C++

Afin de convertir plusieurs fichiers TeX au format PDF en une seule fois, vous pouvez ajouter les fichiers TeX à une archive ZIP et les convertir en fichiers PDF compressés. Voici les étapes pour y parvenir.

L’exemple de code suivant montre comment convertir une archive TeX ZIP en une archive PDF ZIP à l’aide de C++.

// Ouvrir le fichier zip source dans un flux
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Effacement des ressources sous l'instruction 'using'
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------

try {
    // Ouvrez le fichier zip de sortie dans un flux
    System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(u"OutputDirectory", u"zip-pdf-out.zip"), System::IO::FileMode::Create);
    // Effacement des ressources sous l'instruction 'using'
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // ------------------------------------------

    try
    {
        // Créez des options de composition pour le format ObjectTeX par défaut sur l'extension du moteur ObjectTeX.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

        // Spécifiez un répertoire de travail d'archive ZIP pour l'entrée.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // Spécifiez un répertoire de travail d'archive ZIP pour la sortie.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // Spécifiez la console comme terminal de sortie.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // Défaut. Pas nécessaire de préciser.

        // Créer et spécifier des options d'enregistrement.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // Exécutez la composition.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // Pour une sortie conséquente, regardez écrire. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // Finaliser l'archive ZIP de sortie.
        (System::DynamicCast<Aspose::TeX::IO::OutputZipDirectory>(options->get_OutputWorkingDirectory()))->Finish();
    }
    catch (...)
    {
        __dispose_guard_0.SetCurrentException(std::current_exception());
    }
}
catch (...)
{
    __dispose_guard_1.SetCurrentException(std::current_exception());
}

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à convertir des fichiers TeX au format XPS et PDF à l’aide de C++. De plus, vous avez appris à convertir des fichiers TeX dans une archive ZIP en fichiers PDF compressés. Aspose.TeX pour C++ fournit de nombreuses fonctionnalités supplémentaires pour travailler avec des fichiers TeX. Vous pouvez explorer l’API en détail en visitant la documentation officielle. En cas de questions, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.

Voir également