LaTeX から画像へ | .NET

Aspose.TeX for .NET は、LaTeX ファイルをさまざまなラスタ画像形式に変換できる機能を提供します。

LaTeX を PNG に変換する方法

C# のコード例を詳しく見て、LaTeX を PNG 形式に変換する最も簡単な方法を説明します。

 1// Convert LaTeX to PNG - simplest approach
 2
 3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
 5
 6// Specify a file system working directory for the output.
 7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
 8
 9// Initialize the options for saving in PNG format.
10PngSaveOptions pngOptions = new PngSaveOptions();
11// Set image resolution to 300 DPI.
12pngOptions.Resolution = 300;
13options.SaveOptions = pngOptions;
14
15// Run LaTeX to PNG conversion.
16new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new ImageDevice(), options).Run();

まず最初に(必ずしも最初ではないこともあります)が行うべきことは、 TeXOptions クラスのインスタンスを作成することです。このインスタンスを作成する唯一の静的メソッドは ConsoleAppOptions() であり、名前に惑わされないでください。このメソッドは TeXConfig クラスの ObjectLaTeX インスタンス を受け取り、これは正確に LaTeX ファイル を変換するために適しています。この構成は Object TeX エンジンに Object LaTeX フォーマットを読み込み、LaTeX ファイルを受け入れる準備ができていることを指示します。Object LaTeX フォーマットは実際には単なる LaTeX フォーマットで、 Object TeX 固有のプリミティブを使用してページメトリクスを設定します。

最初に必要となるオプションは OutputWorkingDirectory で、TeX の出力が書き込まれる領域(スペース)を定義します。 ここAspose.TeX for .NET の出力ディレクトリの概念に関する詳細があります。この例では、指定されたディレクトリ(フォルダー)に出力を書き込むことができる OutputFileSystemDirectory クラスを使用します。

2 番目のオプションは、 SaveOptions クラスのインスタンスで、 object model をターゲット形式に変換する方法を制御します。LaTeX を PNG に変換するので、 PngSaveOptions クラスのインスタンスを使用し、出力画像の解像度を指定できます。

次に、 TeXJob クラスのインスタンスを作成します。ファイルシステムに保存された LaTeX ファイルを変換したい場合は、 この コンストラクターバージョンを使用します。ファイルへの完全パスを指定する必要があります。指定しない場合、エンジンは現在のディレクトリ( CurrentDirectory)を検索し、見つからない可能性が高いです。なお、.tex 拡張子は省略可能で、エンジンが自動的に付加します。コンストラクタの第 2 引数は Device クラスのインスタンスです。LaTeX を PNG に変換するので、 ImageDevice クラスのインスタンスを使用し、すべてのサポートされている画像形式で共通です。最後の引数として、先ほど準備した変換オプションを渡します。

残りは run メソッドを呼び出すだけです。

実行が成功したかどうかに関わらず、最初に表示されるのは端末出力です。実行が成功した場合は次のようになります。

 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.

指定した出力ディレクトリ内にエンジンが生成した他の「成果物」があります。トランスクリプトファイルと、こちらです! メインの PNG 画像ファイル(複数)が含まれます。

メインの PNG ファイル(複数)を書き出す別の方法

画像データをバイト配列の配列として取得し、2 次元目の各配列が別々のページの画像データを表す別の方法があります。

代替変換例

次の C# スニペットは、PNG 出力をファイルシステムに直接書き込む代わりにメモリストリームに書き込む別の方法を示します。このアプローチは、生成された PNG バイト列をメモリ上でさらに処理(ネットワーク送信、データベース保存、保存前の追加変換など)したい場合に便利です。

 1// Convert LaTeX to PNG - alternative approach with manual page-by-page saving
 2
 3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
 5
 6// Specify a file system working directory for the output.
 7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
 8
 9// Initialize the options for saving in PNG format.
10PngSaveOptions pngSaveOptions = new PngSaveOptions();
11// Disable automatic image writing - we'll write them manually.
12pngSaveOptions.DeviceWritesImages = false;
13options.SaveOptions = pngSaveOptions;
14
15// Create the image device.
16ImageDevice device = new ImageDevice();
17
18// Run LaTeX to PNG conversion.
19new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), device, options).Run();
20
21// Save pages file by file (useful for multi-page documents).
22for (int i = 0; i < device.Result.Length; i++)
23{
24    using (Stream fs = File.Open(Path.Combine(OutputDir, $"page-{i + 1}.png"), FileMode.Create))
25        fs.Write(device.Result[i], 0, device.Result[i].Length);
26}

“page-n.png” ファイルは任意のパスに書き込まれます。 PDF 出力 とは異なり、出力ディレクトリに書き込まれた PNG ファイルのコピーが生成されます。

入力オプションについて

メインの入力ファイルが依存関係(例: パッケージ)を必要とし、基本的な LaTeX システムやサポートされているパッケージに含まれていない場合は、 RequiredInputDirectory オプションを OutputWorkingDirectory と同様の方法で設定し、依存ファイルをそのディレクトリに配置する必要があります。依存ファイルはサブディレクトリに自由に整理できます。タイプセットプロセス中に外部画像ファイルなど独自のファイルを含める必要がある場合は、 InputWorkingDirectory を設定し、ファイルが収集されている場所へのパスを指定してください。run() メソッドで相対パスを指定するか、メイン入力ファイルがルートにある場合はパスを省略することもできます。 ここAspose.TeX for .NET の入力ディレクトリ概念に関する詳細があります。

他の TeX ジョブ オプションについては、 ここ を参照してください。

無料の LaTeX から PNG 変換 Web アプリ も、 Aspose.TeX for .NET API をベースに構築されています。

以下では、他のサポートされているラスタ画像形式への LaTeX 変換について、詳細に立ち入らずに説明します。唯一の違いは、変換オプション内の SaveOptions プロパティの型です。

LaTeX を JPG に変換する方法

 1// Convert LaTeX to JPEG
 2
 3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
 5
 6// Specify a file system working directory for the output.
 7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
 8
 9// Initialize the options for saving in JPEG format.
10options.SaveOptions = new JpegSaveOptions();
11
12// Run LaTeX to JPEG conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new ImageDevice(), options).Run();

無料の LaTeX から JPG 変換 Web アプリ も、 Aspose.TeX for .NET API をベースに構築されています。

LaTeX を TIFF に変換する方法

 1// Convert LaTeX to TIFF
 2
 3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
 5
 6// Specify a file system working directory for the output.
 7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
 8
 9// Initialize the options for saving in TIFF format.
10options.SaveOptions = new TiffSaveOptions();
11
12// Run LaTeX to TIFF conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new ImageDevice(), options).Run();

無料の LaTeX から TIFF 変換 Web アプリ も、 Aspose.TeX for .NET API をベースに構築されています。

LaTeX を BMP に変換する方法

 1// Convert LaTeX to BMP
 2
 3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
 5
 6// Specify a file system working directory for the output.
 7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
 8
 9// Initialize the options for saving in BMP format.
10options.SaveOptions = new BmpSaveOptions();
11
12// Run LaTeX to BMP conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new ImageDevice(), options).Run();

無料の LaTeX から BMP 変換 Web アプリ も、 Aspose.TeX for .NET API をベースに構築されています。

LaTeX を SVG に変換する方法

そして、もう 1 つのサポート対象フォーマットは SVG です。Scalable Vector Graphics (SVG) は、インタラクティブ性とアニメーションをサポートする XML ベースのベクター画像形式です。

SVG 画像はベクターグラフィック形式で定義され、XML テキストファイルに保存されます。そのため、品質を損なうことなくサイズを拡大縮小でき、SVG ファイルは検索、インデックス付け、スクリプト化、圧縮が可能です。XML テキストファイルはテキストエディタやベクターグラフィックエディタで作成・編集でき、主要なウェブブラウザでレンダリングされます。

Aspose.SVG ライブラリは、SVG に関連するさまざまな機能(作成、読み込み、編集、変換)を提供します。

LaTeX から SVG への変換も、 ラスタ画像形式への変換 と同様に簡単です。ただし、 SaveOptionsSvgSaveOptions クラスのインスタンスに設定し、デバイスを SvgDevice クラスのインスタンスに変更する必要があります。

 1// Convert LaTeX to SVG - simplest approach
 2
 3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
 5
 6// Specify a file system working directory for the output.
 7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
 8
 9// Initialize the options for saving in SVG format.
10options.SaveOptions = new SvgSaveOptions();
11
12// Run LaTeX to SVG conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new SvgDevice(), options).Run();

無料の LaTeX から SVG 変換 Web アプリ も、 Aspose.TeX for .NET API をベースに構築されています。

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.