TeX — система набора текста, которая считается одной из самых сложных цифровых типографских систем. TeX используется для набора документов и создания выходных данных, таких как PDF, XPS и различных форматов изображений. Могут быть ситуации, когда вам нужно разработать кучу документов единообразно. Для этого может оказаться полезным создание пользовательского формата TeX. С этой целью в этой статье вы узнаете, как создать собственный формат TeX и преобразовать его в форматы PDF и XPS с помощью C++.
- C++ API для создания пользовательского формата TeX и преобразования его в PDF и XPS
- Создайте пользовательский формат TeX с помощью C++
- Преобразование пользовательского формата TeX в формат XPS
- Преобразование пользовательского формата TeX в формат PDF
C++ API для создания пользовательского формата TeX и преобразования его в PDF и XPS
Aspose.TeX for C++ — это библиотека C++ для работы с файлами TeX, не требующая установки какого-либо дополнительного программного обеспечения. API позволяет вам печатать файлы TeX, создавать собственный формат TeX и генерировать выходные данные в таких форматах, как XPS, PDF, PNG, JPEG, TIFF, BMP. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.
PM> Install-Package Aspose.TeX.Cpp
Создайте пользовательский формат TeX с помощью C++
Ниже приведены шаги для создания пользовательского формата TeX.
- Создайте экземпляр класса TeXOptions, используя значение свойства TeXConfig::getObjectIniTeX().
- Укажите входной и выходной рабочие каталоги.
- Создайте формат, используя [TeX::CreateFormat(System::String path, System::SharedPtr варианты) 9 метод.
В следующем примере кода показано, как создать собственный формат TeX с помощью C++.
// Создание параметров набора текста в расширении движка ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::get_ObjectIniTeX());
// Укажите рабочий каталог файловой системы для ввода.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));
// Укажите рабочий каталог файловой системы для вывода.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Запустите создание формата.
Aspose::TeX::TeX::CreateFormat(u"customtex", options);
Преобразование пользовательского формата TeX в формат XPS
Ниже приведены шаги для преобразования пользовательского формата TeX в формат XPS.
- Создайте экземпляр класса IWorkingDirectory для представления входного рабочего каталога.
- Загрузите файл TeX, используя класс FormatProvider.
- Создайте экземпляр класса TeXOptions, используя ранее созданный объект FormatProvider.
- Задайте JobName, InputWorkingDirectory и OutputWorkingDirectory.
- Используйте Typeset(System::SharedPtrSystem::IO::Stream поток, System::SharedPtrPresentation::Device устройство, Система::SharedPtr options) и передайте объект XpsDevice в качестве аргумента для создания вывода XPS.
Ниже приведен пример кода для преобразования пользовательского формата TeX в формат XPS.
// Создайте рабочий каталог ввода файловой системы.
System::SharedPtr<IWorkingDirectory> wd = System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory");
{
// Создайте поставщика формата.
System::SharedPtr<FormatProvider> formatProvider = System::MakeObject<FormatProvider>(wd, u"customtex");
// Очистка ресурсов под оператором «using»
System::Details::DisposeGuard<1> __dispose_guard_0({ formatProvider });
// ---------------------------------------------------------
try
{
// Создайте параметры верстки для пользовательского формата в расширении движка ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX(formatProvider));
options->set_JobName(u"typeset-with-custom-format");
// Укажите входной рабочий каталог.
options->set_InputWorkingDirectory(wd);
// Укажите рабочий каталог файловой системы для вывода.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Запустите набор текста.
Aspose::TeX::TeX::Typeset(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(u"Congratulations! You have successfully typeset this text with your own TeX format!\\end")), System::MakeObject<XpsDevice>(), options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
Преобразование пользовательского формата TeX в формат PDF
Ниже приведены шаги для преобразования пользовательского формата TeX в формат PDF.
- Создайте экземпляр класса IWorkingDirectory для представления входного рабочего каталога.
- Загрузите файл TeX, используя класс FormatProvider.
- Создайте экземпляр класса TeXOptions, используя ранее созданный объект FormatProvider.
- Задайте JobName, InputWorkingDirectory и OutputWorkingDirectory.
- Создайте экземпляр класса PdfSaveOptions и передайте его в TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions значение) метод.
- Используйте Typeset(System::SharedPtrSystem::IO::Stream поток, System::SharedPtrPresentation::Device устройство, Система::SharedPtr options) и передать объект PdfDevice в качестве аргумента для создания вывода в формате PDF.
В следующем примере кода показано, как преобразовать пользовательский формат TeX в формат PDF.
// Создайте рабочий каталог ввода файловой системы.
System::SharedPtr<IWorkingDirectory> wd = System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory");
{
// Создайте поставщика формата.
System::SharedPtr<FormatProvider> formatProvider = System::MakeObject<FormatProvider>(wd, u"customtex");
// Очистка ресурсов под оператором «using»
System::Details::DisposeGuard<1> __dispose_guard_0({ formatProvider });
// ---------------------------------------------------------
try
{
// Создайте параметры верстки для пользовательского формата в расширении движка ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX(formatProvider));
options->set_JobName(u"typeset-with-custom-format");
// Укажите входной рабочий каталог.
options->set_InputWorkingDirectory(wd);
// Укажите рабочий каталог файловой системы для вывода.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Укажите PdfSaveOptions
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Запустите набор текста.
Aspose::TeX::TeX::Typeset(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(u"Congratulations! You have successfully typeset this text with your own TeX format!\\end")), System::MakeObject<PdfDevice>(), options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
Получить бесплатную лицензию
Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как создать собственный формат TeX с помощью C++. Кроме того, вы узнали, как преобразовать пользовательский формат TeX в форматы PDF и XPS с помощью Aspose.TeX for C++ API. Вы можете подробно изучить API, посетив официальную документацию. Если у вас возникнут вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.