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++ 是一個用於處理 TeX 文件的 C++ 庫,無需安裝任何額外的軟件。該 API 允許您排版 TeX 文件並生成 XPS、PDF、PNG、JPEG、TIFF、 BMP。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。
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::SharedPtrPresentation::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::SharedPtrPresentation::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。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。