ラテックスからXPS | Java

もう一つのターゲットフォーマットは XPSです。XPSファイルは、ページ区切りのドキュメントコンテンツと、特定のビューア(Windows XPS Viewerなど)での適切な表示や印刷に必要なメタデータを含むZIPパッケージです。パッケージ内のすべてのデータは、ディレクトリ内のファイルとして整理されます。ディレクトリの中には、画像、フォント、ICCプロファイルなどのリソースを含むものもあれば、様々な特定スキーマに従ったXMLファイルもあります。後者には、ドキュメントデータ自体を含むファイルも含まれます。ドキュメントデータはファイルの集合体であり、各ファイルにはドキュメントの各ページのデータが含まれています。これらのファイルは、単一のページ要素と、子要素(Canvas、Path、Glyphs)のツリーで構成されます。Canvasは、他のCanvas、Path、Glyphsを含むことができるグループ化要素です。その目的は、すべての子要素の外観をグループとして制御することです。Path要素は、ベクターグラフィックのパスを定義するために使用されます。 グリフ要素はテキストコンテンツを定義するために使用されます。これら3つの要素はすべて、外観のさまざまな側面を定義するプロパティを持っています。

Aspose.Pageライブラリがあり、XPSドキュメントを操作するためのAPIを提供し、PDFおよびラスター画像形式に変換します。

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

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

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

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

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

XPSDeviceクラスの別のコンストラクターがあります。これにより、結果のXPSファイルを別の方法で取得できます。

上記と同じ inputFile と outputDirectory の値を使用してください。xpsFile に java.nio.file.Path を設定します(例:Paths.get(outputDirectory, "any-name.xps"))。Aspose.TeX のクラスに加えて、java.io.OutputStream、java.nio.file.Files、java.nio.file.Path、java.nio.file.Paths をインポートしてください。 ストリームで XPS ファイルの出力先を指定します。補助ファイルは引き続き outputDirectory に書き込まれます。

 1// Convert LaTeX to XPS using an explicitly selected output stream.
 2// inputFile is the full input path; outputDirectory is an existing output folder.
 3// xpsFile is the java.nio.file.Path of the XPS file to create.
 4TeXJobResult result;
 5try (OutputStream xpsStream = Files.newOutputStream(xpsFile)) {
 6    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
 7    OutputFileSystemDirectory output = new OutputFileSystemDirectory(outputDirectory);
 8    options.setOutputWorkingDirectory(output);
 9    options.setSaveOptions(new XpsSaveOptions());
10    options.setInteraction(Interaction.NonstopMode);
11
12    XpsDevice device = new XpsDevice(xpsStream);
13    try {
14        result = new TeXJob(inputFile, device, options).run();
15    } finally {
16        device.dispose();
17        output.close();
18    }
19}

効果は ここと同じです。

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