出力を ZIP に書き込む
TeX ファイル変換の結果を C++ 経由で ZIP として保存します
TeX はデータ マークアップ言語であり、パブリケーション セット システムとしても知られるコンピューター組版システムの中核です。多くの場合、ファイル形式と呼ばれますが、実際には、数学、技術、およびその他の複雑なドキュメントを作成するために使用されるプログラミング言語およびインタープリター エンジンです。ただし、ファイルが作成されると、結果を任意のデバイスやプラットフォームで使用できるようにするために、より一般的な形式に変換することが必要になる場合があります。
Aspose.TeX API ソリューションは、TeX ファイルを変換し、結果を ZIP アーカイブとして保存する機能を提供します。ここで提供されるコード スニペットは、TeX ファイルを PDF に変換し、出力を zip ファイルとして保存する方法を示しています。 API コンバーターは TeX ファイルを C++ 言語に変換でき、クロスプラットフォーム アプリケーションの作成や C++ プロジェクトへの統合に使用できます。
サンプルを実行するには、C++ プラットフォーム用の機能豊富で使いやすいドキュメント操作および変換ツールである Aspose.TeX for C++ API が必要です。 Aspose.TeX API は、NuGet パッケージ マネージャーで検索するか、パッケージ マネージャー コンソールで Install-Package Aspose.TeX コマンドを使用してインストールできます。
Package Manager Console Command
PM> Install-Package Aspose.TeX
ここのコードは、TeX ファイルを変換し、それを PDF として ZIP アーカイブに保存しています。このような変換を処理するには、次の手順を実行します。
- TeXOptions クラスのインスタンスを作成します。 OutputWorkingDirectory プロパティを使用して、出力用の ZIP アーカイブ作業ディレクトリを指定するために使用します。
- OutputConsoleTerminal クラスを使用して、コンソールを出力ターミナルとして指定します。
- PdfSaveOptions クラスを使用して、出力を保存するためのオプションを定義します。
- TeXJob メソッドを PdfDevice に使用して、TeX から PDF への変換を実行します。
- 出力を絞り込みます。
- OutputZipDirectory クラスを使用して、出力 ZIP アーカイブをファイナライズします。このコードは、try-catch ブロックを使用して、プロセス中に発生する可能性のある例外を処理します。
出力に ZIP ディレクトリを使用するための C++ コード
using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;
using System::IO;
// Open a stream on a ZIP archive that will serve as the input working directory.
{
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream});
// ------------------------------------------
try{
System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream});
// ------------------------------------------
try
{
// Create typesetting options for default ObjectTeX format on ObjectTeX engine extension.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Specify a ZIP archive working directory for the input.
options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
// Specify a ZIP archive working directory for the output.
options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
// Specify the console as an output terminal.
options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// Default. Not necessary to specify.
// Create and specify saving options.
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Run typesetting.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);
// For the consequent output to look right.
options->get_TerminalOut()->get_Writer()->WriteLine();
// Finalize the output ZIP archive.
(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());
}
}
TeX TeX ファイル形式とは
TeX は実際にはフォーマットではありません。プログラミング言語であると同時に、この言語を理解するインタープリター エンジンでもあります。 TeX ファイルは、LaTeX で作成されたドキュメントです。このドキュメントには、グラフィック、表、記号、リスト、数式、および方程式を含めることができます。