TeX 是一种排版系统,被认为是最复杂的数字印刷系统之一。 TeX 用于排版文档和生成像 PDF、XPS 和不同图像格式的输出。在某些情况下,您可能需要统一设计一堆文档。为此,创建一个自定义的 TeX 格式将被证明是有帮助的。为此,本文将教您如何创建自定义的 TeX 格式并使用 C++ 将其排版为 PDF 和 XPS 格式。
- 用于创建自定义 TeX 格式并将其排版为 PDF 和 XPS 的 C++ API
- 使用 C++ 创建自定义 TeX 格式
- 将自定义 TeX 格式排版为 XPS 格式
- 将自定义 TeX 格式排版为 PDF 格式
用于创建自定义 TeX 格式并将其排版为 PDF 和 XPS 的 C++ API
Aspose.TeX for C++ 是一个 C++ 库,用于处理 TeX 文件,无需安装任何其他软件。该 API 允许您排版 TeX 文件,创建自定义 TeX 格式,并以 XPS、PDF、PNG、JPEG、TIFF、BMP 等格式生成输出。您可以通过 NuGet 安装 API,也可以直接从 Downloads 部分下载。
PM> Install-Package Aspose.TeX.Cpp
使用 C++ 创建自定义 TeX 格式
以下是创建自定义 TeX 格式的步骤。
- 使用 TeXConfig::getObjectIniTeX() 属性值创建 TeXOptions 类的实例。
- 指定输入和输出工作目录。
- 使用 TeX::CreateFormat(System::String path, System::SharedPtr) 创建格式选项) 方法。
以下示例代码演示了如何使用 C++ 创建自定义 TeX 格式。
// 在 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 类的实例来表示输入工作目录。
- 使用 FormatProvider 类加载 TeX 文件。
- 使用之前创建的 FormatProvider 对象创建 TeXOptions 类的实例。
- 设置 JobName、InputWorkingDirectory 和 OutputWorkingDirectory。
- 使用 Typeset(System::SharedPtrSystem::IO::Stream流,系统::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");
// 在“使用”语句下清除资源
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 类的实例来表示输入工作目录。
- 使用 FormatProvider 类加载 TeX 文件。
- 使用之前创建的 FormatProvider 对象创建 TeXOptions 类的实例。
- 设置 JobName、InputWorkingDirectory 和 OutputWorkingDirectory。
- 创建 PdfSaveOptions 类的实例并将其传递给 TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions值) 方法。
- 使用 Typeset(System::SharedPtrSystem::IO::Stream流,系统::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");
// 在“使用”语句下清除资源
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,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 创建自定义的 TeX 格式。此外,您还学习了如何使用 Aspose.TeX for C++ API 将自定义 TeX 格式排版为 PDF 和 XPS 格式。您可以通过访问 官方文档 来详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。