Escrever saída para ZIP

Salve o resultado da conversão do archivo TeX como ZIP através de C++

 

O TeX é uma linguagem de marcação de dados e o núcleo do sistema de composição tipográfica por computador também conhecido como sistema de publicação. Embora seja frequentemente referido como um formato de archivo, na verdade é uma linguagem de programação e um motor intérprete usado para criar documentos matemáticos, técnicos e outros documentos complexos. No entanto, uma vez que um archivo é criado, pode ser necessário convertê-lo em um formato mais popular para poder usar o resultado em qualquer dispositivo e plataforma.

A Solução API Aspose.TeX oferece um recurso para converter archivos TeX e salvar o resultado como um archivo ZIP. O trecho de código fornecido aqui mostra como converter um archivo TeX para PDF e salvar a saída como um archivo zip. O conversor de API pode transformar archivos TeX em linguagem C++ e pode ser usado para criar um aplicativo multiplataforma ou ser integrado ao seu projeto C++.

Para executar os exemplos, você precisará da API Aspose.TeX para C++, uma ferramenta de manipulação e conversão de documentos rica em ferramentas e fácil de usar para a plataforma C++. Você pode instalar a API Aspose.TeX pesquisando por ela no gerenciador de pacotes NuGet ou usando o comando Install-Package Aspose.TeX no Console do Gerenciador de Pacotes.

Package Manager Console Command


    PM> Install-Package Aspose.TeX

O código aqui está convertendo um archivo TeX e salvando-o como um PDF em um archivo ZIP. Siga os próximos passos para processar tal conversão:

  1. Crie uma instância da Classe TeXOptions . Use-a para especificar um diretório de trabalho de archivo ZIP para a saída usando a propriedade OutputWorkingDirectory.
  2. Especifique o console como o terminal de saída usando a Classe OutputConsoleTerminal .
  3. Defina as opções para salvar a saída usando a Classe PdfSaveOptions .
  4. Execute a conversão de TeX para PDF usando o Método TeXJob para PdfDevice.
  5. Refine a saída.
  6. Finalize o archivo ZIP de saída usando a Classe OutputZipDirectory . O código usa um bloco try-catch para lidar com quaisquer exceções que possam ocorrer durante o processo.

Código C++ para usar diretórios ZIP para saída

    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 é um sistema de composição tipográfica e uma linguagem de programação que permite criar documentos de alta qualidade, especialmente com fórmulas matemáticas. Arquivos .tex são texto simples processados por motores TeX (pdfTeX, XeTeX, LuaTeX) para gerar PDF ou DVI.