Java での高度な TeX エンジン オプションの構成
Aspose.TeX for Java の TeXOptions クラスを使用して、TeX および LaTeX ドキュメントのコンパイル パラメーターを細かく調整できます。自動化されたドキュメント処理ワークフローで、実行ジョブ名、ターミナルおよびファイルのログ記録動作、フォント/パッケージの検索パス、エラー処理の設定をきめ細かく制御できます。
エンタープライズ Java 環境で TeX または LaTeX ジョブを実行する場合、ランタイム動作の構成は、エラー追跡、監査、およびマルチテナント リソース管理において重要です。
- ジョブ名 は
setJobName(String)メソッドを使用して、生成されるドキュメントおよび補助ファイル (.pdf、.log、.aux) のプライマリ出力ファイル名のプレフィックスを指定します。 - ターミナル出力 は
setTerminalOut(IOutputTerminal)メソッドを使用して、エンジンのコンソール メッセージと警告の出力先 (コンソール、ファイル、メモリ ストリーム、または Null) を制御します。 - ターミナル入力 は
setTerminalIn(IInputTerminal)メソッドを使用して、TeX 実行時の対話型コンソール入力の動作を構成します。 - ログ出力 は
setLogOutput(Boolean)メソッドを使用して、コンパイル用の .log 補助ファイルの生成を有効または無効にします。 - エラー時に再実行 は
setRepeatOnError(Boolean)メソッドを使用して、回復可能な組版エラーが発生した場合にエンジンが処理サイクルを再実行するかどうかを指定します。
ジョブ名と出力ファイル名の構成
カスタム ジョブ名を設定して、生成されるドキュメント、中間ファイル、およびログ出力のファイル プレフィックスを決定します。
import com.aspose.tex.*;
import java.io.IOException;
public class ConfigureTeXJobName {
public static void main(String[] args) throws IOException {
// Initialize options for LaTeX format
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Set input and output working directories
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Explicitly set a custom job name (Output will be 'Invoice_2026.pdf')
options.setJobName("Invoice_2026");
// Run TeX job using the designated job name options
TeXJob job = new TeXJob(options);
job.run();
System.out.println("TeX job completed with custom output file name: Invoice_2026.pdf");
}
}ターミナル出力とコンソール ログのリダイレクト
カスタム IOutputTerminal インスタンスを構成して、ランタイム コンソール ログを取得または抑制します (ターミナル メッセージをメモリまたはディスクに直接書き込む場合など)。
import com.aspose.tex.*;
import java.io.ByteArrayOutputStream;
public class ConfigureTeXTerminalOutput {
public static void main(String[] args) throws Exception {
// Initialize LaTeX conversion options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Redirect terminal output to an in-memory stream instead of System.out
ByteArrayOutputStream terminalStream = new ByteArrayOutputStream();
options.setTerminalOut(new OutputConsoleTerminal()); // Or use custom stream terminal
// Enable execution log file writing
options.setLogOutput(true);
// Execute the compilation job
TeXJob job = new TeXJob("main", new PdfDevice(), options);
job.run();
System.out.println("TeX execution log captured successfully.");
}
}エラー処理と実行動作の管理
コンパイル中に Aspose.TeX が実行時の警告や解析エラーを処理する方法を構成します。
import com.aspose.tex.*;
public class ConfigureTeXExecutionSettings {
public static void main(String[] args) throws Exception {
// Initialize base options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Configure directory paths
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Set repeat-on-error and logging preferences
options.setRepeatOnError(false); // Halt or proceed without retry loops on non-fatal errors
options.setLogOutput(true); // Ensure detailed engine log is written to output directory
// Execute job
TeXJob job = new TeXJob("document", new PdfDevice(), options);
job.run();
System.out.println("Document compiled with fine-tuned error settings.");
}
}インストールとセットアップ
Maven を使用して Aspose.TeX for Java をプロジェクトに統合します。
Package Manager Console Command
<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>Latest</version>
</dependency>
FAQ
1. TeXOptionsでジョブ名を指定しない場合はどうなりますか?
setJobName()でジョブ名を明示的に設定しない場合、Aspose.TeXはデフォルトでメイン入力ファイル名を使用します(例:main.texの場合、main.pdfとmain.logが生成されます)。
2. コンパイル時の.logファイルの作成を完全に無効にするにはどうすればよいですか?
TeXJobを作成して実行する前に、options.setLogOutput(false)を設定してください。これにより、エンジンがディスク上または出力作業ディレクトリに補助ログファイルを生成するのを防ぎます。
3. サーバー/ヘッドレス環境でTeXターミナルメッセージをキャプチャできますか?
はい。カスタムのOutputMemoryTerminalを割り当てるか、IOutputTerminalを実装することで、すべての端末の標準出力/標準エラーメッセージをサーバーのエンタープライズログシステム(Log4jやSLF4Jなど)にルーティングできます。