Запись вывода в ZIP
Сохранение результата конвертации TeX-файла в ZIP через C++
TeX — это язык разметки данных и ядро компьютерной системы верстки, также известной как система подготовки публикаций. Хотя его часто называют форматом файлов, на самом деле это язык программирования и механизм интерпретатора, используемый для создания математических, технических и других сложных документов. Однако после создания файла может возникнуть необходимость конвертировать его в более популярный формат, чтобы иметь возможность использовать результат на любом устройстве и платформе.
API-решение Aspose.TeX предлагает функцию конвертации TeX-файлов и сохранения результата в виде ZIP-архива. Приведенный здесь фрагмент кода показывает, как конвертировать TeX-файл в PDF и сохранить результат в виде zip-файла. Конвертер API может преобразовывать TeX-файлы на языке C++ и может использоваться для создания кроссплатформенного приложения или быть интегрирован в ваш проект C++.
Для запуска примеров вам понадобится API Aspose.TeX для C++, многофункциональный и простой в использовании инструмент для манипулирования документами и их конвертации для платформы C++. Вы можете установить API Aspose.TeX, найдя его в менеджере пакетов NuGet или воспользовавшись командой Install-Package Aspose.TeX в консоли менеджера пакетов.
Package Manager Console Command
PM> Install-Package Aspose.TeX
Приведенный здесь код конвертирует TeX-файл и сохраняет его в формате PDF в ZIP-архиве. Выполните следующие шаги для обработки такой конвертации:
- Создайте экземпляр класса TeXOptions . Используйте его, чтобы указать рабочий каталог ZIP-архива для вывода с помощью свойства OutputWorkingDirectory.
- Укажите консоль в качестве выходного терминала, используя класс OutputConsoleTerminal .
- Определите параметры сохранения результата, используя класс PdfSaveOptions .
- Запустите конвертацию TeX в PDF, используя метод TeXJob для PdfDevice.
- Уточните вывод.
- Завершите создание выходного 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());
}
}TeX What is TeX File Format
TeX — это система наборки и язык программирования, позволяющая создавать документы высокого качества, особенно с математическими формулами. Файлы *.tex* — обычный текст, который обрабатывается движками TeX (pdfTeX, XeTeX, LuaTeX) и преобразуется в PDF, DVI и другие форматы.