使用 C++ 以編程方式將 TeX 轉換為 PDF 或 XPS 文件

TeX 文件用於排版包含文本、符號和算術表達式的不同文檔和書籍。此外,這些文件可以生成 PDFXPS 和各種圖像格式等輸出。在本文中,您將學習如何使用 C++ 將 TeX 文件轉換為 XPS 和 PDF 格式。

用於將 TeX 轉換為 PDF 和 XPS 格式的 C++ API

Aspose.TeX for C++ 是一個用於處理 TeX 文件的 C++ 庫,無需安裝任何額外的軟件。該 API 允許您排版 TeX 文件並生成 XPSPDFPNGJPEGTIFF BMP。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。

PM> Install-Package Aspose.TeX.Cpp

使用 C++ 將 TeX 格式轉換為 XPS 格式

只需幾行代碼即可將 TeX 文件轉換為 XPS 格式。為此,請按照以下步驟操作。

以下示例代碼演示瞭如何使用 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 格式的步驟。

以下示例代碼顯示瞭如何使用 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 文件。以下是實現此目的的步驟。

以下示例代碼顯示瞭如何使用 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。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。

也可以看看