Записать вывод в ZIP

Сохраните результат конвертации файла TeX как ZIP используя C++

 

TeX — это язык разметки данных и ядро ​​компьютерной системы набора текста, также известной как система набора публикаций. Хотя его часто называют форматом файла, на самом деле это язык программирования и механизм интерпретатора, используемый для создания математических, технических и других сложных документов. Однако после создания файла может потребоваться преобразовать его в более популярный формат, чтобы иметь возможность использовать результат на любом устройстве и платформе.

Решение Aspose.TeX API предлагает функцию преобразования файлов TeX и сохранения результата в виде ZIP-архива. Приведенный здесь фрагмент кода показывает, как преобразовать файл TeX в PDF и сохранить результат в виде zip-файла. Преобразователь API может преобразовывать файлы TeX в язык C++ и может использоваться для создания кросс-платформенного приложения или для интеграции в ваш проект C++.

Для запуска примеров вам понадобится Aspose.TeX for C++ API, многофункциональный и простой в использовании инструмент для обработки и преобразования документов для платформы C++. Вы можете установить API Aspose.TeX, выполнив поиск в диспетчере пакетов NuGet или с помощью команды Install-Package Aspose.TeX в консоли диспетчера пакетов.

Package Manager Console Command


    PM> Install-Package Aspose.TeX

Представленный здесь код конвертирует файл TeX и сохраняет его в формате PDF в ZIP-архиве. Выполните следующие шаги для выполнения такого преобразования:

  1. Создайте экземпляр класса TeXOptions . Используйте его, чтобы указать рабочий каталог ZIP-архива для вывода с помощью свойства OutputWorkingDirectory.
  2. Укажите консоль в качестве выходного терминала, используя класс OutputConsoleTerminal .
  3. Определите параметры сохранения вывода с помощью класса PdfSaveOptions .
  4. Запустите преобразование TeX в PDF с помощью метода TeXJob() для PdfDevice.
  5. Уточните вывод.
  6. Завершите выходной ZIP-архив, используя класс OutputZipDirectory . Код использует блок try-catch для обработки любых исключений, которые могут возникнуть во время процесса.

Код C++ для использования ZIP-архивов для вывода

    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());
        }
    }



Часто задаваемые вопросы

1. Как просмотреть вывод TeX?

Чтобы открыть файл TeX и просмотреть результат верстки, используйте кроссплатформенную программу TeX Viewer . Это также позволяет сохранить файл в виде изображений.

2. Могу ли я записать вывод TeX в ZIP-архив?

Да, это решение API предоставляет такую ​​функциональность. Вам понадобится класс OutputZipDirectory, который реализует метод получения файлового потока для записи, когда рабочий каталог представляет собой ZIP-архив.

3. Как записать вывод TeX в ZIP-архив?

Создайте экземпляр класса TeXOptions. Затем укажите рабочий каталог ZIP-архива для вывода. Укажите параметры сохранения и запустите преобразование. Наконец, завершите запись вывода в ZIP-архив, вызвав метод Finish().

TeX Формат файла TeX

TeX на самом деле не является форматом. Это одновременно и язык программирования, и интерпретатор, который понимает этот язык. Файл TeX — это документ, созданный в LaTeX. Этот документ может включать графику, таблицы, символы, списки, формулы и уравнения.