イメージへのラテックス| Java

ラテックスをPNGに変換する方法

LaTexをPNG形式に変換する最も簡単な方法を提供するJavaコードを詳しく見てみましょう。

inputFile に LaTeX ファイル(例:hello-world.ltx)のフルパスを設定し、outputDirectory に既存の出力フォルダーを設定してください。スニペットで使用する com.aspose.tex と com.aspose.tex.rendering のクラスをインポートします。呼び出し元のメソッドでは、例外を処理するか、スローする例外として宣言する必要があります。評価版の制限を避けるには、 ライセンスガイドに従ってライセンスを適用してください。この例では非対話モードで処理し、出力リソースを閉じます。 PNG の例では解像度を 300 DPI に設定します。1 ページの入力ファイル hello-world.ltx に対して、自動出力ファイルは選択した形式に応じて hello-world.png、hello-world.jpg、hello-world.tif、hello-world.bmp、または hello-world.svg になります。

 1// Convert LaTeX to PNG.
 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);
 6PngSaveOptions saveOptions = new PngSaveOptions();
 7saveOptions.setResolution(300);
 8options.setSaveOptions(saveOptions);
 9options.setInteraction(Interaction.NonstopMode);
10
11ImageDevice device = new ImageDevice();
12TeXJobResult result;
13try {
14    result = new TeXJob(inputFile, device, options).run();
15} finally {
16    device.dispose();
17    output.close();
18}

したがって、最初に行う必要があることは(後でわかったように、最初にそうではない場合があります)、 Texoptionsクラスのインスタンスを作成することです。これを行う唯一の静的方法は consoleappoptions()です。そのため、その名前の意味を悩ませないでください。このメソッドは、 TexConfigクラスの ObjectLatex()インスタンスを取得します。この構成は、オブジェクトTex Engineにオブジェクトラテックス形式をロードし、LaTexファイルを受け入れる準備ができるように指示します。オブジェクトラテックス形式は、実際には latex形式にすぎませんが、 オブジェクトTex特定のプリミティブを使用してページメトリックをセットアップすることを除きます。

必要なオプションの最初は outputworkingdirectoryで、TEX出力が記述されるスペースまたはエリアを定義します。 ここは、java for Aspose.TeXの出力ディレクトリの概念の詳細です。この例では、 outputfilesystemdirectoryクラスを使用して、指定されたディレクトリまたはフォルダーに出力を書き込むことができます。

2番目のオプションは、 オブジェクトモデルのターゲット形式への変換を制御する SaveOptionsクラスインスタンスです。ラテックスをPNGに変換しているため、 pngsaveoptionsクラスインスタンスであり、出力画像の解像度を指定できます。

次に、 texjobクラスのインスタンスを作成する必要があります。ファイルシステムに保存されているラテックスファイルを変換したいので、 Thisバージョンのコンストラクターを使用します。ファイルへのフルパスを指定する必要があります。それ以外の場合、エンジンは現在のディレクトリ( here)で定義されており、おそらく見つけられない可能性があります。それにもかかわらず、ファイルに .tex 1がある場合、拡張子を省略する場合があります。エンジンは自動的に追加されます。コンストラクターの2番目の引数は、 デバイスクラスインスタンスです。ラテックスをPNGに変換しているため、 Imagedeviceクラス(サポートされているすべての画像形式に共通)インスタンスです。最後の議論として、最近準備された変換オプションに合格します。

私たちが今しなければならないことは、仕事を(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.png (1 page).
13Transcript written on hello-world.log.

出力ディレクトリとして指定したフォルダーにエンジンの実行の他の製品があります。これらは、トランスクリプト(.log)ファイルとvoila!、メインの出力PNG画像ファイルになります。

メイン出力PNGファイルを書き込む代替方法

画像データをバイト配列の配列として取得する別の方法があり、2番目のディメンションの各配列は別のページの画像データを表します。

 1// Convert LaTeX to PNG and save each page from the returned byte arrays.
 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);
 6PngSaveOptions saveOptions = new PngSaveOptions();
 7saveOptions.deviceWritesImages(false);
 8options.setSaveOptions(saveOptions);
 9options.setInteraction(Interaction.NonstopMode);
10
11ImageDevice device = new ImageDevice();
12TeXJobResult result;
13try {
14    result = new TeXJob(inputFile, device, options).run();
15    byte[][] pages = device.getResult();
16    for (int i = 0; i < pages.length; i++) {
17        Files.write(Paths.get(outputDirectory, "page-" + (i + 1) + ".png"), pages[i]);
18    }
19} finally {
20    device.dispose();
21    output.close();
22}

手動保存の例では、java.nio.file.Files と java.nio.file.Paths も必要です。ImageDevice.getResult() から取得したページデータを page-1.png、page-2.png などの名前で保存します。deviceWritesImages(false) を設定するため、自動 PNG 出力は無効になり、手動で保存したページが出力ディレクトリに重複して作成されることはありません。これは、ストリームで単一の PDF ドキュメントの出力先を指定する PDF ストリーム出力とは異なります。

入力オプションについて

メイン入力ファイルに、基本的なラテックスシステムに含まれておらず、サポートされているパッケージに含まれていないパッケージなどの依存関係が必要な場合は、 RequiredInputDirectoryオプションを設定する必要があります。依存関係は、サブディレクトリで任意に組織される場合があります。タイプセットプロセス、たとえば外部グラフィックファイルに沿って含める独自のファイルがある場合は、それらのファイルが収集される場所へのパスを使用して inputWorkingDirectoryを設定する必要があります。また、入力ディレクトリ内のどこかにメイン入力ファイルを配置し、 相対パスを TeXJob コンストラクターに渡すこともできます(または、メイン入力ファイルがルートにある場合はパスをまったく指定しません)。 ここは、Java の Aspose.TeXの入力ディレクトリの概念の詳細であり、実装を提供しています。

他のTEXジョブオプションについて説明します ここ。

.NETのAsops.TexAP​​Iに基づいて構築された無料のLaTex-to-PNG変換 Webアプリをチェックアウトすることもできます。 ここはJavaバージョンページです。

以下では、他のサポートされているラスター画像形式へのラテックス変換について説明します。実際には詳細がないからといって、詳細には触れません。唯一の違いは、変換オプションの SaveOptionsプロパティのタイプです。

ラテックスをJPGに変換する方法

 1// Convert LaTeX to JPEG.
 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 JpegSaveOptions());
 7options.setInteraction(Interaction.NonstopMode);
 8
 9ImageDevice device = new ImageDevice();
10TeXJobResult result;
11try {
12    result = new TeXJob(inputFile, device, options).run();
13} finally {
14    device.dispose();
15    output.close();
16}

.NETのAspose.TeXAPIに基づいて構築された無料のLaTex-to-JPGコンバージョン Webアプリをチェックアウトすることもできます。 ここはJavaバージョンページです。

ラテックスをTIFFに変換する方法

 1// Convert LaTeX to TIFF.
 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 TiffSaveOptions());
 7options.setInteraction(Interaction.NonstopMode);
 8
 9ImageDevice device = new ImageDevice();
10TeXJobResult result;
11try {
12    result = new TeXJob(inputFile, device, options).run();
13} finally {
14    device.dispose();
15    output.close();
16}

.netのAspose.TeXAPIに基づいて構築された無料のラテックス間変換 Webアプリをチェックアウトすることもできます。 ここはJavaバージョンページです。

ラテックスをBMPに変換する方法

 1// Convert LaTeX to BMP.
 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 BmpSaveOptions());
 7options.setInteraction(Interaction.NonstopMode);
 8
 9ImageDevice device = new ImageDevice();
10TeXJobResult result;
11try {
12    result = new TeXJob(inputFile, device, options).run();
13} finally {
14    device.dispose();
15    output.close();
16}

.NETのAspose.TeXAPIに基づいて構築された無料のラテックスからBMPへの変換 Webアプリをチェックアウトすることもできます。 ここはJavaバージョンページです。

ラテックスをSVGに変換する方法

さらにサポートされているターゲット形式は svgです。 **Scalable Vector Graphics(SVG)**は、対話性とアニメーションをサポートする2次元グラフィックを定義するためのXMLベースのベクトル画像形式です。

SVG画像はベクトルグラフィック形式で定義され、XMLテキストファイルに保存されます。これは、svg画像の品質を失うことなくサイズをスケーリングできることを意味し、svgファイルを検索、インデックス作成、スクリプト化、および圧縮できます。 XMLテキストファイルは、テキストエディターまたはベクトルグラフィックスエディターで作成および編集できます。 Thayは、最も使用されているWebブラウザーによってレンダリングされます。

また、svg形式に基づいてさまざまな機能を備えた aspose.svgライブラリがあります。これらには、svgドキュメントの作成、読み込み、編集、変換が含まれます。

SVGへの変換は、 saveoptionsに加えて、 SVGDeviceクラスのインスタンスにデバイスを変更する必要があることを除いて、 ラスター画像形式への変換と同じくらい簡単です。

 1// Convert LaTeX to SVG.
 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 SvgSaveOptions());
 7options.setInteraction(Interaction.NonstopMode);
 8
 9SvgDevice device = new SvgDevice();
10TeXJobResult result;
11try {
12    result = new TeXJob(inputFile, device, options).run();
13} finally {
14    device.dispose();
15    output.close();
16}

.NETのAspose.TeXに基づいて構築された無料のラテックスからSVGへの変換 Webアプリをチェックアウトすることもできます。 ここはJavaバージョンページです。