JavaでLaTeXからPDFを作成する

LaTeXは、技術的および科学的なドキュメントの作成に広く使用されています。 LaTeXファイル(TEXまたはLTX)は、テキスト、記号、数式、グラフィックなど、ドキュメントの形式を指定するコマンドが入力されたソースドキュメントです。プログラムでLaTeXソースからPDFドキュメントを簡単に生成できます。 PDFを使用すると、スタイルやレイアウトを損なうことなく、読み取り専用形式でドキュメントを共有できます。この記事では、JavaでLaTeXソースファイルからPDFドキュメントを作成する方法を学習します。

この記事では、次のトピックについて説明します。

LaTeXからPDFを作成するJavaAPI

LaTeXソースファイルからPDFドキュメントを作成するには、Aspose.TeX for JavaAPIを使用します。これにより、TeXファイルをPDF、XPS、または画像などのさまざまなファイル形式に植字できます。 APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加してください。

リポジトリ:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

依存:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>21.11</version>
    <type>jar</type>
</dependency>

JavaでLaTeXTeXファイルからPDFを作成する

以下の手順に従って、LaTeX(TeX)ファイルからPDFドキュメントを作成できます。

  1. まず、consoleAppOptions()メソッドを使用して、TeXOptionsクラスのインスタンスを作成します。
  2. TeX構成をTeXConfig.objectLaTeX()として設定します。
  3. 次に、入力および出力の作業ディレクトリを設定します。
  4. 次に、コンソールまたはメモリストリームを出力端子として指定します。
  5. その後、PDF形式にレンダリングするためのオプションを設定します。
  6. 最後に、出力PDFとPdfDeviceクラスオブジェクトを引数として、新しく作成されたTexJobクラスインスタンスのrun()メソッドを呼び出します。

次のコード例は、Javaを使用してTeXファイルからPDFを作成する方法を示しています。

// このコード例は、TeXソースファイルからPDFを作成する方法を示しています。
// 作業ディレクトリ
String dataDir = "D:\\Files\\Tex\\";

// 組版オプションを作成します。
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// 入力するファイルシステムの作業ディレクトリを指定します。
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// 出力するファイルシステムの作業ディレクトリを指定します。
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// 出力端子としてメモリストリームを指定します。
options.setTerminalOut(new OutputMemoryTerminal());

// PDF形式にレンダリングするためのオプションを設定します。
options.setSaveOptions(new PdfSaveOptions());

// 組版を実行します。
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
JavaでLaTeXTeXファイルからPDFを作成する

JavaでLaTeXTeXファイルからPDFを作成します。

JavaでLTXファイルからPDFを作成する

LaTeXは、ドキュメントの構造とコンテンツを定義するLTXファイル拡張子タイプセットマークアップタグとプロパティを使用します。前述の手順に従って、LaTeX(LTX)ファイルからPDFを作成することもできます。ただし、最後の手順では、拡張子が.ltxのソースファイルを入力する必要があります。

次のコード例は、Javaを使用してLTXファイルからPDFを作成する方法を示しています。

// このコード例は、LTXソースファイルからPDFを作成する方法を示しています。
// 作業ディレクトリ
String dataDir = "D:\\Files\\Tex\\";

// 組版オプションを作成します。
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// 入力するファイルシステムの作業ディレクトリを指定します。
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// 出力するファイルシステムの作業ディレクトリを指定します。
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// 出力端子としてメモリストリームを指定します。
options.setTerminalOut(new OutputMemoryTerminal());

// PDF形式にレンダリングするためのオプションを設定します。
options.setSaveOptions(new PdfSaveOptions());

// 組版を実行します。
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Javaを使用してTeXをXPSに変換する

前述の手順に従って、LaTeX(TeX)ファイルをXPSに変換することもできます。ただし、手順5でPdfSaveOptionsの代わりにXpsSaveOptionsを設定する必要があります。

次のコード例は、Javaを使用してTeXをXPSに変換する方法を示しています。

// このコード例は、TexをXPSに変換する方法を示しています。
// 作業ディレクトリ
String dataDir = "D:\\Files\\Tex\\";

// 組版オプションを作成します。
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// 入力するファイルシステムの作業ディレクトリを指定します。
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// 出力するファイルシステムの作業ディレクトリを指定します。
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// 出力端子としてメモリストリームを指定します。
options.setTerminalOut(new OutputMemoryTerminal());

// XPS形式にレンダリングするためのオプションを設定します。
options.setSaveOptions(new XpsSaveOptions());

// 組版を実行します。
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Javaを使用してTeXZIPディレクトリをPDFZIPディレクトリに変換する

以下の手順に従って、ZIPアーカイブに圧縮された複数のTeXファイルを一度にPDFに変換できます。

  1. まず、入力および出力の作業ディレクトリとしてZIPアーカイブのストリームを開きます。
  2. 次に、consoleAppOptions()メソッドを使用して、TeXOptionsクラスのインスタンスを作成します。
  3. 次に、TeX構成をTeXConfig.objectLaTeX()として設定します。
  4. 次に、入力および出力のZIPディレクトリを設定します。
  5. 次に、コンソールまたはメモリストリームを出力端子として指定します。
  6. その後、PDF形式にレンダリングするためのオプションを設定します。
  7. 最後に、出力PDFとPdfDeviceクラスオブジェクトを引数として、新しく作成されたTexJobクラスインスタンスのrun()メソッドを呼び出します。

次のコード例は、Javaを使用してTeXZIPアーカイブをPDFZIPアーカイブに変換する方法を示しています。

// このコード例は、TeXZIPディレクトリをPDFZIPディレクトリに変換する方法を示しています。
// 作業ディレクトリ
String dataDir = "D:\\Files\\Tex\\";

// 入力作業ディレクトリとして機能するZIPアーカイブでストリームを開きます。
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// 出力作業ディレクトリとして機能するZIPアーカイブでストリームを開きます。
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // ObjectTeXエンジン拡張機能でデフォルトのObjectTeX形式の変換オプションを作成します。
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // 入力用のZIPアーカイブ作業ディレクトリを指定します。
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // 出力用のZIPアーカイブ作業ディレクトリを指定します。
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // コンソールを出力端子として指定します。
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // 保存オプションを定義します。
    options.setSaveOptions(new PdfSaveOptions());

    // ジョブを実行します。
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // 結果として出力が書き込みに見えるようにします。 
    options.getTerminalOut().getWriter().newLine();

    // 出力ZIPアーカイブを完成させます。
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
TeXZIPアーカイブをPDFZIPアーカイブに変換する

TeXZIPアーカイブをPDFZIPアーカイブに変換します。

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価の制限なしにライブラリを試すことができます。

結論

この記事では、次の方法を学びました。

  • JavaでLaTeXソースファイルからPDF出力を生成します。
  • プログラムでTeXファイルからXPS出力ドキュメントを作成します。
  • Javaを使用してTeXZIPアーカイブをPDFZIPアーカイブに変換します。

さらに、ドキュメントを使用して、Aspose.TeX forJavaAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目