ラテックスからPDF | Java
ラテックスをPDFに変換する方法
LaTexをPDF形式に変換する最も簡単な方法を提供するJavaコードを詳しく見てみましょう。
inputFile に LaTeX ファイル(例:hello-world.ltx)のフルパスを設定し、outputDirectory に既存の出力フォルダーを設定してください。スニペットで使用する com.aspose.tex と com.aspose.tex.rendering のクラスをインポートします。呼び出し元のメソッドでは、例外を処理するか、スローする例外として宣言する必要があります。評価版の制限を避けるには、
ライセンスガイドに従ってライセンスを適用してください。この例では非対話モードで処理し、出力リソースを閉じます。
1// Convert LaTeX to PDF using the default output filename.
2// inputFile is the full input path; outputDirectory is an existing output folder.
3TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
4OutputFileSystemDirectory output = new OutputFileSystemDirectory(outputDirectory);
5options.setOutputWorkingDirectory(output);
6options.setSaveOptions(new PdfSaveOptions());
7options.setInteraction(Interaction.NonstopMode);
8
9PdfDevice device = new PdfDevice();
10TeXJobResult result;
11try {
12 result = new TeXJob(inputFile, device, options).run();
13} finally {
14 device.dispose();
15 output.close();
16}したがって、最初に行う必要があることは(後でわかったように、最初にそうではない場合があります)、 Texoptionsクラスのインスタンスを作成することです。これを行う唯一の静的方法は consoleappoptions()です。そのため、その名前の意味を悩ませないでください。このメソッドは、 TexConfigクラスの インスタンスを取ります。これは LaTexファイルの変換に正確に適しています。この構成は、オブジェクトTex Engineにオブジェクトラテックス形式をロードし、LaTexファイルを受け入れる準備ができるように指示します。オブジェクトラテックス形式は、 Object Tex特定のプリミティブを使用してページメトリックをセットアップすることを除いて、 LaTex形式にすぎません。
必要なオプションの最初は outputworkingdirectoryで、TEX出力が記述されるスペースまたはエリアを定義します。 ここは、java for Aspose.TeXの出力ディレクトリの概念の詳細です。この例では、 outputfilesystemdirectoryクラスを使用して、指定されたディレクトリまたはフォルダーに出力を書き込むことができます。
2番目のオプションは、 オブジェクトモデルのターゲット形式への変換を制御する SaveOptionsクラスインスタンスです。ラテックスをPDFに変換しているため、 PDFSaveOptionsクラスインスタンスです。
次に、 texjobクラスのインスタンスを作成する必要があります。ファイルシステムに保存されているラテックスファイルを変換したいので、 Thisバージョンのコンストラクターを使用します。ファイルへのフルパスを指定する必要があります。それ以外の場合、エンジンは現在のディレクトリ( here)で定義されており、おそらく見つけられない可能性があります。それにもかかわらず、ファイルに .tex 1がある場合、拡張子を省略する場合があります。エンジンは自動的に追加されます。コンストラクターの2番目の引数は、 デバイスクラスインスタンスです。ラテックスをPDFに変換しているため、 PDFDeviceクラスインスタンスです。最後の議論として、最近準備された変換オプションに合格します。
私たちが今しなければならないことは、仕事を(19)走ることだけです。
実行が成功したかどうかに関係なく、私たちが見る最初の結果は端子出力になります。成功した場合、それは次のように見えます:
1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
2entering extended mode
3
4(<input_directory>\hello-world.ltx
5LaTeX2e <2011/06/27>
6(article.cls
7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
8(size10.clo))
9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.pdf (1 page).
13Transcript written on hello-world.log.出力ディレクトリとして指定したフォルダーにエンジンの実行の他の製品があります。これらは、トランスクリプト(.log)ファイルとvoila!、メイン出力PDFファイルになります。
メイン出力PDFファイルを書き込む代替方法
pdfdeviceクラスの別のコンストラクターがあります。これにより、結果のPDFファイルを代替方法で取得できます。
上記と同じ inputFile と outputDirectory の値を使用してください。pdfFile に java.nio.file.Path を設定します(例:Paths.get(outputDirectory, "any-name.pdf"))。Aspose.TeX のクラスに加えて、java.io.OutputStream、java.nio.file.Files、java.nio.file.Path、java.nio.file.Paths をインポートしてください。
1// Convert LaTeX to PDF using an explicitly selected output stream.
2// inputFile is the full input path; outputDirectory is an existing output folder.
3// pdfFile is the java.nio.file.Path of the PDF file to create.
4TeXJobResult result;
5try (OutputStream pdfStream = Files.newOutputStream(pdfFile)) {
6 TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
7 OutputFileSystemDirectory output = new OutputFileSystemDirectory(outputDirectory);
8 options.setOutputWorkingDirectory(output);
9 options.setSaveOptions(new PdfSaveOptions());
10 options.setInteraction(Interaction.NonstopMode);
11
12 PdfDevice device = new PdfDevice(pdfStream);
13 try {
14 result = new TeXJob(inputFile, device, options).run();
15 } finally {
16 device.dispose();
17 output.close();
18 }
19}指定されたディレクトリの any-name.pdf ファイルは、メインの出力PDFファイルになります。同時に、 画像出力とは異なり、変換オプションで定義された出力ディレクトリにPDFファイルは見つかりません。例外: any-name.pdf は、 outputFilesSystemDirectoryを使用して outputWorkingDirectoryオプションに割り当てられている同じファイルシステムディレクトリに(そのパスで)配置されます。
入力オプションについて
メイン入力ファイルに、基本的なラテックスシステムに含まれておらず、サポートされているパッケージに含まれていないパッケージなどの依存関係が必要な場合は、
rebyputWorkingDirectoryオプションを設定し、そのディレクトリに依存関係を設定し、
rebysputDirectoryオプションを設定する必要があります。依存関係は、サブディレクトリで任意に組織される場合があります。タイプセットプロセス、たとえば外部グラフィックファイルに沿って含める独自のファイルがある場合は、それらのファイルが収集される場所へのパスを使用して
inputWorkingDirectoryを設定する必要があります。また、入力ディレクトリ内のどこかにメイン入力ファイルを配置し、 相対パスを TeXJob コンストラクターに渡すこともできます(または、メイン入力ファイルがルートにある場合はパスをまったく指定しません)。
ここは、Java の Aspose.TeXの入力ディレクトリの概念の詳細であり、実装を提供しています。
他のTEXジョブオプションについて説明します ここ。
.netのAspose.TeXAPIに基づいて構築された無料のLaTex-to-PDF変換 Webアプリをチェックアウトすることもできます。 ここはJavaバージョンページです。