TeX 文件用于排版包含文本、符号和算术表达式的不同文档和书籍。此外,这些文件可以生成 PDF、XPS 和各种图像格式等输出。在本文中,您将学习如何使用 C++ 将 TeX 文件转换为 XPS 和 PDF 格式。
- 用于将 TeX 转换为 PDF 和 XPS 格式的 C++ API
- 使用 C++ 将 TeX 转换为 XPS 格式
- 使用 C++ 将 TeX 转换为 PDF 格式
- 使用 C++ 将 TeX ZIP 目录转换为 PDF ZIP 目录
用于将 TeX 转换为 PDF 和 XPS 格式的 C++ API
Aspose.TeX for C++ 是一个 C++ 库,用于处理 TeX 文件,无需安装任何其他软件。该 API 允许您排版 TeX 文件并以 XPS、PDF、PNG、JPEG、TIFF、 BMP。您可以通过 NuGet 安装 API,也可以直接从 Downloads 部分下载。
PM> Install-Package Aspose.TeX.Cpp
使用 C++ 将 TeX 转换为 XPS 格式
只需几行代码,您就可以将 TeX 文件转换为 XPS 格式。为此,请按照以下步骤操作。
- 使用 [TeXConfig::ObjectTeX(System::SharedPtr) 创建 TeXOptions 类的实例Aspose::TeX::ResourceProviders::FormatProviderformatProvider = nullptr)]14 成员函数。
- 指定输入和输出工作目录。
- 指定控制台或内存流作为输出终端。
- 使用 TeX::Typeset(System::String path, System::SharedPtr) 保存输出 XPS 文件Presentation::Device设备,系统::SharedPtr options) 方法与 XpsDevice 类的实例。
以下示例代码演示了如何使用 C++ 将 TeX 文件转换为 XPS 格式。
// 在 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 = new OutputMemoryTerminal();
// 运行排版。
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);
// 为进一步输出看写。
options->get_TerminalOut()->get_Writer()->WriteLine();
使用 C++ 将 TeX 转换为 PDF 格式
以下是将 TeX 文件转换为 PDF 格式的步骤。
- 使用 [TeXConfig::ObjectTeX(System::SharedPtr) 创建 TeXOptions 类的实例Aspose::TeX::ResourceProviders::FormatProviderformatProvider = nullptr)]18 成员函数。
- 指定输入和输出工作目录。
- 指定控制台或内存流作为输出终端。
- 将 PdfSaveOptions 类的实例传递给 TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions值) 方法。
- 使用 TeX::Typeset(System::String path, System::SharedPtr) 保存输出 PDF 文件Presentation::Device设备,系统::SharedPtr options) 方法与 PdfDevice 类的实例。
以下示例代码展示了如何使用 C++ 将 TeX 文件转换为 PDF 格式。
// 在 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 = new 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();
使用 C++ 将 TeX ZIP 目录转换为 PDF ZIP 目录
为了一次性将多个 TeX 文件转换为 PDF 格式,您可以将 TeX 文件添加到 ZIP 存档并将它们转换为压缩的 PDF 文件。以下是实现此目的的步骤。
- 在流中加载输入和输出 ZIP 档案。
- 使用 [TeXConfig::ObjectTeX(System::SharedPtr) 创建 TeXOptions 类的实例Aspose::TeX::ResourceProviders::FormatProviderformatProvider = nullptr)]24 成员函数。
- 设置输入和输出工作目录。
- 指定控制台或内存流作为输出终端。
- 将 PdfSaveOptions 类的实例传递给 TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions值) 方法。
- 使用 TeX::Typeset(System::String path, System::SharedPtrPresentation::Device设备,系统::SharedPtr options) 方法与 PdfDevice 类的实例。
以下示例代码显示了如何使用 C++ 将 TeX ZIP 存档转换为 PDF ZIP 存档。
// 在流中打开源 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);
// 在“使用”语句下清除资源
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);
// 在“使用”语句下清除资源
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,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 将 TeX 文件转换为 XPS 和 PDF 格式。此外,您还学习了如何将 ZIP 存档中的 TeX 文件转换为压缩的 PDF 文件。 Aspose.TeX for C++ 为处理 TeX 文件提供了许多附加功能。您可以通过访问 官方文档 来详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。