Scrivi l’output su ZIP

Salva il risultato della conversione del file TeX come ZIP tramite C++

 

TeX è un linguaggio di markup dei dati e il nucleo del sistema di composizione del computer noto anche come sistema di set di pubblicazioni. Sebbene sia spesso indicato come un formato di file, in realtà è un linguaggio di programmazione e un motore di interprete utilizzato per creare documenti matematici, tecnici e altri documenti complessi. Tuttavia, una volta creato un file, potrebbe essere necessario convertirlo in un formato più popolare per poter utilizzare il risultato su qualsiasi dispositivo e piattaforma.

Aspose.TeX API Solution offre una funzionalità per convertire i file TeX e salvare il risultato come archivio ZIP. Il frammento di codice fornito qui mostra come convertire un file TeX in PDF e salvare l’output come file zip. Il convertitore API può trasformare i file TeX in linguaggio C++ e può essere utilizzato per creare un’applicazione multipiattaforma o essere integrato nel tuo progetto C++.

Per eseguire gli esempi, avrai bisogno dell’API Aspose.TeX per C++, uno strumento di manipolazione e conversione dei documenti ricco di funzionalità e facile da usare per la piattaforma C++. È possibile installare l’API Aspose.TeX cercandola nel gestore pacchetti NuGet o utilizzando il comando Install-Package Aspose.TeX nella console di Gestione pacchetti.

Package Manager Console Command


    PM> Install-Package Aspose.TeX

Il codice qui sta convertendo un file TeX e salvandolo come PDF in un archivio ZIP. Eseguire i passaggi successivi per elaborare tale conversione:

  1. Crea un’istanza della classe [TeXOptions]( https://reference.aspose.com/tex/cpp/aspose.tex/texoptions/ . Utilizzalo per specificare una directory di lavoro dell’archivio ZIP per l’output utilizzando la proprietà OutputWorkingDirectory.
  2. Specificare la console come terminale di output utilizzando la classe OutputConsoleTerminal .
  3. Definisci le opzioni per il salvataggio dell’output utilizzando la classe PdfSaveOptions .
  4. Esegui la conversione da TeX a PDF utilizzando il metodo TeXJob per PdfDevice.
  5. Perfeziona l’output.
  6. Completa l’archivio ZIP di output utilizzando la classe OutputZipDirectory . Il codice utilizza un blocco try-catch per gestire eventuali eccezioni che possono verificarsi durante il processo.

Codice C++ per l'utilizzo delle directory ZIP per l'output

    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 Cos'è il formato file TeX

TeX non è in realtà un formato. È allo stesso tempo un linguaggio di programmazione e anche un motore di interprete che comprende questo linguaggio. Un file TeX è un documento creato in LaTeX. Questo documento può includere grafici, tabelle, simboli, elenchi, formule ed equazioni.