使用 C++ 创建自定义 TeX 格式和排版为 PDF 和 XPS

TeX 是一种排版系统,被认为是最复杂的数字印刷系统之一。 TeX 用于排版文档和生成像 PDFXPS 和不同图像格式的输出。在某些情况下,您可能需要统一设计一堆文档。为此,创建一个自定义的 TeX 格式将被证明是有帮助的。为此,本文将教您如何创建自定义的 TeX 格式并使用 C++ 将其排版为 PDF 和 XPS 格式。

用于创建自定义 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 格式的步骤。

以下示例代码演示了如何使用 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 格式的步骤。

以下是将自定义的 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 格式的步骤。

以下示例代码显示了如何将自定义 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。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看