イメージへのラテックス| .NET経由でPython用のAspose.TeX
PythonのAsops.texは、LaTexファイルをさまざまなラスター画像形式に変換する機能を提供します。
ラテックスをPNGに変換します
次に、ラテックスをPNG形式に深く変換するための最も簡単なアプローチを提供するPythonコードを調べましょう。
ASPOSE_TEX_INPUT_FILE に LaTeX ファイル、ASPOSE_TEX_OUTPUT_DIR に出力ディレクトリを指定するか、例のパスを編集してください。既定値は hello-world.ltx と output です。事前にライセンスを適用してください。追加の入力ファイルはメイン文書と同じディレクトリから読み込まれ、処理は対話入力なしで実行されます。
ライセンス
1# Convert LaTeX to PNG.
2import os
3from pathlib import Path
4from aspose.tex import Interaction, TeXConfig, TeXJob, TeXOptions
5from aspose.tex.io import InputFileSystemDirectory, OutputFileSystemDirectory, OutputMemoryTerminal
6from aspose.tex.presentation.image import ImageDevice, PngSaveOptions
7
8# Set these paths to your LaTeX document and output directory.
9input_file = Path(os.environ.get("ASPOSE_TEX_INPUT_FILE", "hello-world.ltx")).resolve()
10output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
11if not input_file.is_file():
12 raise FileNotFoundError(input_file)
13output_dir.mkdir(parents=True, exist_ok=True)
14
15# Use the Object LaTeX format and resolve additional inputs beside the main file.
16options = TeXOptions.console_app_options(TeXConfig.object_latex)
17options.input_working_directory = InputFileSystemDirectory(str(input_file.parent))
18options.output_working_directory = OutputFileSystemDirectory(str(output_dir))
19options.interaction = Interaction.NONSTOP_MODE
20options.terminal_out = OutputMemoryTerminal()
21options.save_options = PngSaveOptions()
22device = ImageDevice(True)
23job_result = TeXJob(str(input_file), device, options).run()まず、 console_app_options() メソッドを使用して texoptionsクラスのインスタンスを作成する必要があります。名前を心配しないでください。インスタンスを作成するのは静的な方法だけです。この方法では、 texconfigクラスの object_latexインスタンスを取ります。これは、 latexファイルを変換するのに最適です。この構成により、オブジェクトTexエンジンを設定して、オブジェクトラテックス形式をロードし、ラテックスファイルを処理する準備ができています。オブジェクトラテックス形式は基本的に ラテックス形式と同じですが、 Object Tex特定のプリミティブを使用してページメトリックを定義します。
必須オプションの1つ目は output_working_directoryで、TeX出力の保存場所を指定します。ご興味があれば、 Aspose.TeX for Pythonにおける output directory出力ディレクトリの概念について詳細をご確認ください。この例では、 OutputFileSystemDirectoryクラスを使用して、出力を特定のディレクトリまたはフォルダーに書き込みます。
2番目のオプションは、 オブジェクトモデルから目的の形式への変換の管理を担当する SaveOptionsクラスのインスタンスです。この場合、ラテックスをPNGに変換するため、 pngsaveoptionsクラスインスタンスを使用して、出力画像の解像度を指定できます。
次に、
texjobクラスのインスタンスを作成します。この場合、ファイルシステムに保存されているラテックスファイルを変換するため、
コンストラクターのこのバージョン を使用します。ファイルへのフルパスを提供する必要があります。そうしないと、エンジンは現在のディレクトリ(スクリプトのワーキングディレクトリ)でそれを探し、それを見つけられない場合があります。ただし、エンジンが自動的に追加されるため、 .tex拡張子を省略できます。コンストラクターの2番目の引数は、
デバイスクラスのインスタンスです。ラテックスをPNGに変換しているため、サポートされているすべての画像形式に共通する
Imagedeviceクラスインスタンスです。最後に、準備した変換オプションを最後の引数として渡します。
さて、残っているのは、仕事を 実行することです。
この例では端末出力を OutputMemoryTerminal に保存します。出力ディレクトリには .log ファイルも作成されます。変換が成功すると、ログは次のようになります。バージョン情報は異なる場合があります。
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番目のディメンションの各配列が個別のページの画像データを表すバイト配列の配列として画像データを取得する代替方法があります。
1# Convert LaTeX to PNG and save each page from the returned byte arrays.
2import os
3from pathlib import Path
4from aspose.tex import Interaction, TeXConfig, TeXJob, TeXOptions
5from aspose.tex.io import InputFileSystemDirectory, OutputFileSystemDirectory, OutputMemoryTerminal
6from aspose.tex.presentation.image import ImageDevice, PngSaveOptions
7
8# Set these paths to your LaTeX document and output directory.
9input_file = Path(os.environ.get("ASPOSE_TEX_INPUT_FILE", "hello-world.ltx")).resolve()
10output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
11if not input_file.is_file():
12 raise FileNotFoundError(input_file)
13output_dir.mkdir(parents=True, exist_ok=True)
14
15# Use the Object LaTeX format and resolve additional inputs beside the main file.
16options = TeXOptions.console_app_options(TeXConfig.object_latex)
17options.input_working_directory = InputFileSystemDirectory(str(input_file.parent))
18options.output_working_directory = OutputFileSystemDirectory(str(output_dir))
19options.interaction = Interaction.NONSTOP_MODE
20options.terminal_out = OutputMemoryTerminal()
21save_options = PngSaveOptions()
22save_options.device_writes_images = False
23options.save_options = save_options
24device = ImageDevice(True)
25job_result = TeXJob(str(input_file), device, options).run()
26
27# Write the returned PNG page bytes yourself.
28for index, page_bytes in enumerate(device.result, start=1):
29 (output_dir / f"page-{index}.png").write_bytes(page_bytes)この例では PngSaveOptions の device_writes_images = False を設定してから、options.save_options に代入します。返された各ページのバイト列を page-1.png、page-2.png などに保存するため、デバイスは重複する PNG ファイルを作成しません。
入力オプションについて
メインの入力ファイルに、基本的なラテックスシステムやサポートされているパッケージに含まれていないパッケージなどの依存関係が必要な場合、
rebuse_input_directoryオプションを * output_working_directory *オプションの設定方法と同様の方法で設定し、そのディレクトリに依存関係を配置する必要があります。依存関係は、必要に応じてサブディレクトリで編成できます。外部グラフィックファイルなどの版形セットプロセスに含めるファイルがある場合は、
input_working_directoryをそれらのファイルが保存されている場所に設定する必要があります。また、入力ディレクトリ内にメイン入力ファイルを配置し、 TeXJob コンストラクターに相対パスを指定したり、メイン入力ファイルがルートディレクトリにある場合はパスをまったく指定したりすることもできます。また、
入力ディレクトリの概念の詳細については、Aspose.TeXと説明されている実装が記載されています。
また、 他のTEXジョブオプションはこちらを学びます。
** LaTex-to-PNG変換用の無料 Webアプリを探索することもできます。
以下に、有意な違いがないため、あまり詳細に飛び込むことなく、ラテックスの他のサポートされているラスター画像形式への変換を簡単に説明します。唯一のバリエーションは、変換オプションの save_optionsプロパティのタイプにあります。
ラテックスをJPGに変換します
1# Convert LaTeX to JPEG.
2import os
3from pathlib import Path
4from aspose.tex import Interaction, TeXConfig, TeXJob, TeXOptions
5from aspose.tex.io import InputFileSystemDirectory, OutputFileSystemDirectory, OutputMemoryTerminal
6from aspose.tex.presentation.image import ImageDevice, JpegSaveOptions
7
8# Set these paths to your LaTeX document and output directory.
9input_file = Path(os.environ.get("ASPOSE_TEX_INPUT_FILE", "hello-world.ltx")).resolve()
10output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
11if not input_file.is_file():
12 raise FileNotFoundError(input_file)
13output_dir.mkdir(parents=True, exist_ok=True)
14
15# Use the Object LaTeX format and resolve additional inputs beside the main file.
16options = TeXOptions.console_app_options(TeXConfig.object_latex)
17options.input_working_directory = InputFileSystemDirectory(str(input_file.parent))
18options.output_working_directory = OutputFileSystemDirectory(str(output_dir))
19options.interaction = Interaction.NONSTOP_MODE
20options.terminal_out = OutputMemoryTerminal()
21options.save_options = JpegSaveOptions()
22device = ImageDevice(True)
23job_result = TeXJob(str(input_file), device, options).run()** LaTex-to-JPG変換用のWebアプリを探索することもできます。
ラテックスをTIFFに変換します
1# Convert LaTeX to TIFF.
2import os
3from pathlib import Path
4from aspose.tex import Interaction, TeXConfig, TeXJob, TeXOptions
5from aspose.tex.io import InputFileSystemDirectory, OutputFileSystemDirectory, OutputMemoryTerminal
6from aspose.tex.presentation.image import ImageDevice, TiffSaveOptions
7
8# Set these paths to your LaTeX document and output directory.
9input_file = Path(os.environ.get("ASPOSE_TEX_INPUT_FILE", "hello-world.ltx")).resolve()
10output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
11if not input_file.is_file():
12 raise FileNotFoundError(input_file)
13output_dir.mkdir(parents=True, exist_ok=True)
14
15# Use the Object LaTeX format and resolve additional inputs beside the main file.
16options = TeXOptions.console_app_options(TeXConfig.object_latex)
17options.input_working_directory = InputFileSystemDirectory(str(input_file.parent))
18options.output_working_directory = OutputFileSystemDirectory(str(output_dir))
19options.interaction = Interaction.NONSTOP_MODE
20options.terminal_out = OutputMemoryTerminal()
21options.save_options = TiffSaveOptions()
22device = ImageDevice(True)
23job_result = TeXJob(str(input_file), device, options).run()また、 Aspose.TeX for .NET API を使用して開発された無料の LaTeX から TIFF への変換用 Web アプリ を調べることもできます。
ラテックスをBMPに変換します
1# Convert LaTeX to BMP.
2import os
3from pathlib import Path
4from aspose.tex import Interaction, TeXConfig, TeXJob, TeXOptions
5from aspose.tex.io import InputFileSystemDirectory, OutputFileSystemDirectory, OutputMemoryTerminal
6from aspose.tex.presentation.image import ImageDevice, BmpSaveOptions
7
8# Set these paths to your LaTeX document and output directory.
9input_file = Path(os.environ.get("ASPOSE_TEX_INPUT_FILE", "hello-world.ltx")).resolve()
10output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
11if not input_file.is_file():
12 raise FileNotFoundError(input_file)
13output_dir.mkdir(parents=True, exist_ok=True)
14
15# Use the Object LaTeX format and resolve additional inputs beside the main file.
16options = TeXOptions.console_app_options(TeXConfig.object_latex)
17options.input_working_directory = InputFileSystemDirectory(str(input_file.parent))
18options.output_working_directory = OutputFileSystemDirectory(str(output_dir))
19options.interaction = Interaction.NONSTOP_MODE
20options.terminal_out = OutputMemoryTerminal()
21options.save_options = BmpSaveOptions()
22device = ImageDevice(True)
23job_result = TeXJob(str(input_file), device, options).run()** LaTex-to-BMP変換用のWebアプリを探索することもできます。
ラテックスをSVGに変換します
別のサポートされているターゲット形式は svgです。 **Scalable Vector Graphics(SVG)**は、2次元グラフィックを定義するために使用されるXMLベースのベクトル画像形式です。対話性とアニメーションをサポートします。
SVG画像はXMLテキストファイルに保存され、ベクトルグラフィック形式で定義されています。これは、svg画像を品質を失うことなくサイズでスケーリングできることを意味し、svgファイル自体を検索、インデックス作成、スクリプト化、および圧縮できます。 XMLテキストファイルは、テキストエディターまたはベクトルグラフィックスエディターを使用して作成および編集でき、最も一般的に使用されるWebブラウザーによってレンダリングできます。
Aspose.svgAPIは、svgの作成、読み込み、編集、変換など、svgを操作するためのさまざまな機能を提供します。
ラテックスをSVGに変換することは ラスター画像形式に変換と同じくらい簡単です。唯一の違いは、 save_optionsを svgsaveoptionsクラスのインスタンスに設定する必要があることです。
1# Convert LaTeX to SVG.
2import os
3from pathlib import Path
4from aspose.tex import Interaction, TeXConfig, TeXJob, TeXOptions
5from aspose.tex.io import InputFileSystemDirectory, OutputFileSystemDirectory, OutputMemoryTerminal
6from aspose.tex.presentation.svg import SvgDevice, SvgSaveOptions
7
8# Set these paths to your LaTeX document and output directory.
9input_file = Path(os.environ.get("ASPOSE_TEX_INPUT_FILE", "hello-world.ltx")).resolve()
10output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
11if not input_file.is_file():
12 raise FileNotFoundError(input_file)
13output_dir.mkdir(parents=True, exist_ok=True)
14
15# Use the Object LaTeX format and resolve additional inputs beside the main file.
16options = TeXOptions.console_app_options(TeXConfig.object_latex)
17options.input_working_directory = InputFileSystemDirectory(str(input_file.parent))
18options.output_working_directory = OutputFileSystemDirectory(str(output_dir))
19options.interaction = Interaction.NONSTOP_MODE
20options.terminal_out = OutputMemoryTerminal()
21options.save_options = SvgSaveOptions()
22device = SvgDevice()
23job_result = TeXJob(str(input_file), device, options).run()** LaTex-to-SVG変換用のWebアプリを探索することもできます。