Верстка TeX с вводом-выводом ZIP
Конвертируйте TeX в PDF, используя ZIP-архивы в качестве ввода и вывода. API для C++
Язык TeX — это инструмент верстки, который позволяет создавать профессиональные документы, не беспокоясь о форматировании. С помощью TeX вы вводите обычный текст, содержащий текстовые фрагменты документа, а также команды, управляющие выводом. На выходе вы получите отформатированный файл в нужном (заданном) формате. Для лучшего понимания ввода и вывода TeX обратитесь к документации TeX.
TeX также является мощной, продвинутой системой, но она не получила широкого распространения за пределами академических и научных кругов. PDF, с другой стороны, является переносимым форматом, который можно легко просматривать на большинстве устройств и который более широко принят. Возможность чтения PDF присутствует на каждом устройстве, в большинстве современных браузеров. Конвертация TeX в PDF позволяет делиться документами с более широкой аудиторией и предоставляет более доступный формат для тех, у кого нет специального программного обеспечения. Кроме того, PDF обладает рядом преимуществ по сравнению с TeX, такими как лучшая отрисовка шрифтов, поддержка интерактивности и более простой контроль размера и макета страницы.
Приведенный ниже код C++ верстает TeX-файл, создавая PDF, который затем сохраняется в ZIP-архив в локальной файловой системе. Чтобы выполнить эту задачу, используйте API Aspose.TeX для C++, который является многофункциональным, мощным и простым в использовании инструментом для обработки и конвертации документов. Чтобы установить API, откройте менеджер пакетов NuGet и выполните поиск Aspose.TeX.Cpp. Кроме того, вы можете использовать следующую команду в консоли менеджера пакетов:
Package Manager Console Command
PM> Install-Package Aspose.TeX.Cpp
В приведенном ниже коде TeX берет основной входной файл из ZIP-архива, конвертирует его в PDF, который записывается в другой ZIP-архив. Следуйте инструкции:
- Откройте поток, содержащий ZIP-архив, который будет служить входным рабочим каталогом. Вы можете дополнительно указать подкаталог в архиве. В противном случае поиск файла будет вестись по всему архиву.
- Создайте поток файла для нового ZIP-архива, который будет служить выходным рабочим каталогом.
- Создайте параметры верстки для формата Object TeX на расширении движка Object TeX.
- Укажите рабочие каталоги ZIP-архивов для ввода и вывода, используя классы InputZipDirectory и OutputZipDirectory .
- Укажите консоль в качестве выходного терминала.
- Используя класс PdfSaveOptions , укажите параметры сохранения для параметров верстки.
- Создайте экземпляр класса TeXJob , передав имя основного входного файла, вновь созданный объект PdfDevice и параметры верстки в качестве аргументов. Запустите конвертацию, вызвав метод Run().
- Завершите работу с выходным ZIP-архивом.
Пример кода C++: Конвертация TeX в PDF с вводом и выводом ZIP
using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;// 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 the '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 the 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
try
{
// Create typesetting options for the default Object TeX format on the Object TeX 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 console as output terminal.
options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// Create and specify saving options.
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Run the typesetting job.
System::MakeObject<Aspose::TeX::TeXJob>(u"hello-world", System::MakeObject<PdfDevice>(), options)->Run();
// 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, используя в качестве входных данных ZIP-файл?
Aspose.TeX поддерживает чтение исходных файлов TeX из сжатых архивов, таких как ZIP-файлы. Вы можете включить все необходимые файлы, включая исходные файлы TeX, изображения и дополнительные ресурсы, в ZIP-архив, а затем указать ZIP-файл в качестве входных данных для компилятора LaTeX. Это позволяет удобно организовывать и распространять проекты LaTeX, особенно при работе с большими или сложными документами с множеством зависимостей.
2. Есть ли какие-либо преимущества в использовании ZIP-файлов для набора документов TeX?
Да, использование ZIP-файлов для набора документов TeX дает несколько преимуществ. Во-первых, ZIP-файлы предоставляют удобный способ упаковки и организации нескольких файлов, связанных с проектом LaTeX, включая исходные файлы TeX, библиографии, изображения и файлы стилей, в один сжатый архив. Это упрощает распространение и обмен документами LaTeX, особенно при совместной работе с другими людьми или совместном использовании проектов в Интернете.
3. Как верстать файлы TeX?
Чтобы верстать файлы TeX с помощью решения API Aspose.TeX, вам необходимо создать параметры преобразования для формата Object TeX или Object LaTeX на основе расширения механизма Object TeX. Затем укажите рабочий каталог файловой системы для вывода. Наконец, создайте экземпляр класса TeXJob и запустите процесс верстки с помощью метода TeXJob.Run().
TeX What is TeX File Format
TeX — это система наборки и язык программирования, позволяющая создавать документы высокого качества, особенно с математическими формулами. Файлы *.tex* — обычный текст, который обрабатывается движками TeX (pdfTeX, XeTeX, LuaTeX) и преобразуется в PDF, DVI и другие форматы.