Файлы TeX используются для верстки различных документов и книг, содержащих текст, символы и арифметические выражения. Кроме того, эти файлы могут генерировать выходные данные, такие как PDF, XPS и различные форматы изображений. В этой статье вы узнаете, как конвертировать файлы TeX в формат XPS и PDF с помощью C++.
- C++ API для преобразования TeX в формат PDF и XPS
- Преобразование TeX в формат XPS с помощью C++
- Преобразование TeX в формат PDF с помощью C++
- Преобразование ZIP-каталога TeX в ZIP-каталог PDF с помощью C++
C++ API для преобразования TeX в формат PDF и XPS
Aspose.TeX for C++ — это библиотека C++ для работы с файлами TeX, не требующая установки какого-либо дополнительного программного обеспечения. API позволяет вам печатать файлы TeX и генерировать выходные данные в таких форматах, как XPS, PDF, PNG, JPEG, TIFF, БМП. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.
PM> Install-Package Aspose.TeX.Cpp
Преобразование TeX в формат XPS с помощью C++
Вы можете преобразовать файлы TeX в формат XPS всего за несколько строк кода. Для этого выполните шаги, указанные ниже.
- Создайте экземпляр класса TeXOptions, используя TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) функция-член.
- Укажите входной и выходной рабочие каталоги.
- Укажите консоль или поток памяти в качестве выходного терминала.
- Сохраните выходной XPS-файл, используя TeX::Typeset(System::String path, System::SharedPtrPresentation::Device устройство, Система::SharedPtr options) с экземпляром класса XpsDevice.
В следующем примере кода показано, как преобразовать файл TeX в формат XPS с помощью C++.
// Создайте параметры верстки для формата ObjectTeX по умолчанию в расширении движка ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Укажите рабочий каталог файловой системы для ввода.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));
// Укажите рабочий каталог файловой системы для вывода.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Укажите консоль в качестве выходного терминала.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// По умолчанию. Нет необходимости указывать.
// Укажите поток памяти в качестве выходного терминала, если вы не хотите, чтобы выходные данные терминала записывались в консоль.
//options.TerminalOut = новый OutputMemoryTerminal();
// Запустите набор текста.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);
// Для дальнейшего выхода смотреть пишите.
options->get_TerminalOut()->get_Writer()->WriteLine();
Преобразование TeX в формат PDF с помощью C++
Ниже приведены шаги для преобразования файлов TeX в формат PDF.
- Создайте экземпляр класса TeXOptions, используя TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) функция-член.
- Укажите входной и выходной рабочие каталоги.
- Укажите консоль или поток памяти в качестве выходного терминала.
- Передайте экземпляр класса PdfSaveOptions в TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions значение) метод.
- Сохраните выходной PDF-файл, используя TeX::Typeset(System::String path, System::SharedPtrPresentation::Device устройство, Система::SharedPtr options) с экземпляром класса PdfDevice.
В следующем примере кода показано, как преобразовать файл TeX в формат PDF с помощью C++.
// Создайте параметры верстки для формата ObjectTeX по умолчанию в расширении движка ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Укажите рабочий каталог файловой системы для ввода.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));
// Укажите рабочий каталог файловой системы для вывода.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Укажите консоль в качестве выходного терминала.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// По умолчанию. Нет необходимости указывать.
// Укажите поток памяти в качестве выходного терминала, если вы не хотите, чтобы выходные данные терминала записывались в консоль.
//options.TerminalOut = новый OutputMemoryTerminal();
// Установить PdfSaveOptions
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Запустите набор текста.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);
// Для дальнейшего выхода смотреть пишите.
options->get_TerminalOut()->get_Writer()->WriteLine();
Преобразование ZIP-каталога TeX в ZIP-каталог PDF с помощью C++
Чтобы преобразовать несколько файлов TeX в формат PDF за один раз, вы можете добавить файлы TeX в ZIP-архив и преобразовать их в заархивированные файлы PDF. Ниже приведены шаги для достижения этого.
- Загружайте входные и выходные ZIP-архивы потоками.
- Создайте экземпляр класса TeXOptions с помощью TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) функция-член.
- Установите входные и выходные рабочие каталоги.
- Укажите консоль или поток памяти в качестве выходного терминала.
- Передайте экземпляр класса PdfSaveOptions в TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions значение) метод.
- Сохраните заархивированный выходной PDF-файл, используя TeX::Typeset(System::String path, System::SharedPtrPresentation::Device устройство, Система::SharedPtr options) с экземпляром класса PdfDevice.
В следующем примере кода показано, как преобразовать ZIP-архив TeX в ZIP-архив PDF с помощью C++.
// Откройте исходный zip-файл в потоке
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Очистка ресурсов под оператором «using»
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------------------------------------
try {
// Откройте выходной zip-файл в потоке
System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(u"OutputDirectory", u"zip-pdf-out.zip"), System::IO::FileMode::Create);
// Очистка ресурсов под оператором «using»
System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
// ------------------------------------------------------------------------
try
{
// Создайте параметры верстки для формата ObjectTeX по умолчанию в расширении движка ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Укажите рабочий каталог ZIP-архива для ввода.
options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
// Укажите рабочий каталог ZIP-архива для вывода.
options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
// Укажите консоль в качестве выходного терминала.
options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// По умолчанию. Не обязательно указывать.
// Создайте и укажите параметры сохранения.
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Запустите набор текста.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);
// Для последующего вывода посмотреть напишите.
options->get_TerminalOut()->get_Writer()->WriteLine();
// Завершить выходной ZIP-архив.
(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());
}
Получить бесплатную лицензию
Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как конвертировать файлы TeX в формат XPS и PDF с помощью C++. Кроме того, вы узнали, как конвертировать файлы TeX в ZIP-архиве в заархивированные PDF-файлы. Aspose.TeX для C++ предоставляет множество дополнительных функций для работы с файлами TeX. Вы можете подробно изучить API, посетив официальную документацию. Если у вас возникнут вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.