Écrire la sortie vers ZIP

Enregistrer le résultat de la conversion d’un fichier TeX au format ZIP via C++

 

TeX est un langage de balisage de données et le cœur du système de composition informatique également connu sous le nom de système de publication. Bien qu’il soit souvent appelé format de fichier, il s’agit en réalité d’un langage de programmation et d’un moteur d’interprétation utilisé pour créer des documents mathématiques, techniques et autres documents complexes. Cependant, une fois qu’un fichier est créé, il peut être nécessaire de le convertir dans un format plus populaire pour pouvoir utiliser le résultat sur n’importe quel appareil et plateforme.

La solution API Aspose.TeX offre une fonctionnalité de conversion de fichiers TeX et d’enregistrement du résultat sous forme d’archive ZIP. L’extrait de code fourni ici montre comment convertir un fichier TeX en PDF et enregistrer la sortie sous forme de fichier zip. Le convertisseur API peut transformer des fichiers TeX en langage C++ et peut être utilisé pour créer une application multiplateforme ou être intégré à votre projet C++.

Pour exécuter les exemples, vous aurez besoin de l’API Aspose.TeX pour C++, un outil de manipulation et de conversion de documents riche en fonctionnalités et facile à utiliser pour la plateforme C++. Vous pouvez installer l’API Aspose.TeX en la recherchant dans le gestionnaire de paquets NuGet ou en utilisant la commande Install-Package Aspose.TeX dans la console du gestionnaire de paquets.

Package Manager Console Command


    PM> Install-Package Aspose.TeX

Le code ici convertit un fichier TeX et l'enregistre au format PDF dans une archive ZIP. Suivez les étapes suivantes pour traiter une telle conversion :

  1. Créez une instance de la classe TeXOptions . Utilisez-la pour spécifier un répertoire de travail d’archive ZIP pour la sortie à l’aide de la propriété OutputWorkingDirectory.
  2. Spécifiez la console comme terminal de sortie à l’aide de la classe OutputConsoleTerminal .
  3. Définissez les options d’enregistrement de la sortie à l’aide de la classe PdfSaveOptions .
  4. Exécutez la conversion TeX vers PDF à l’aide de la méthode TeXJob pour PdfDevice.
  5. Affinez la sortie.
  6. Finalisez l’archive ZIP de sortie à l’aide de la classe OutputZipDirectory . Le code utilise un bloc try-catch pour gérer toutes les exceptions qui pourraient survenir pendant le processus.

Code C++ pour l'utilisation de répertoires ZIP pour la sortie

    using Aspose::TeX::IO;
    using Aspose::TeX::Presentation::Pdf;
    using System::IO;
    // Open a stream on a ZIP archive that will serve as the input working directory.
    {
        System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
        // Clearing resources under 'using' statement
        System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream});
        // ------------------------------------------

        try{
            System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
            // Clearing resources under 'using' statement
            System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream});
            // ------------------------------------------

            try
            {
                // Create typesetting options for default ObjectTeX format on ObjectTeX engine extension.
                System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
                // Specify a ZIP archive working directory for the input.
                options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
                // Specify a ZIP archive working directory for the output.
                options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
                // Specify the console as an output terminal.
                options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
                // Default. Not necessary to specify.

                // Create and specify saving options.
                options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
                // Run typesetting.
                Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

                // For the consequent output to look right. 
                options->get_TerminalOut()->get_Writer()->WriteLine();

                // Finalize the output ZIP archive.
                (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());
        }
    }

TeX What is TeX File Format

TeX est un système de composition typographique et un langage de programmation permettant de créer des documents de haute qualité, notamment avec des formules mathématiques. Les fichiers .tex sont du texte brut traité par des moteurs TeX (pdfTeX, XeTeX, LuaTeX) pour produire du PDF ou du DVI.