乳胶到图像| 用于 Java 的 Aspose.TeX

如何将乳胶转换为png

让我们仔细研究Java代码,提供将乳胶转换为PNG格式的最简单方法。

1// Create conversion options for Object LaTeX format upon Object TeX engine extension.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3// Specify a file system working directory for the output.
4options.setOutputWorkingDirectory(new OutputFileSystemDirectory(Utils.getOutputDirectory()));
5// Initialize the options for saving in PNG format.
6options.setSaveOptions(new PngSaveOptions());
7// Run LaTeX to PNG conversion.
8new TeXJob(Utils.getInputDirectory() + "hello-world.ltx", new ImageDevice(), options).run();

因此,我们需要做的第一件事(有时不是第一件事,正如我们稍后会发现的那样)是创建 Texoptions类的实例。这样做的唯一静态方法是 consoleappoptions(),因此,我们不要理会其名称的含义。该方法将 TexConfig类的 Objectlatex()实例进行,该类完全适合转换 latex file。此配置指示对象Tex引擎加载对象乳胶格式并准备好接受乳胶文件。对象乳胶格式实际上只是 乳胶格式,只是它使用 Object tex特定的原始图来设置页面指标。

所需的第一个选项是 outputWorkingDirectory,该选项定义了将编写Tex输出的空间或区域。 这里是有关Java Aspose.TeX中输出目录概念的详细信息。在此示例中,我们使用 outputsystemdirectory类,该类使我们能够将输出写入指定的目录或文件夹。

第二个选项是 SaveOptions类实例,它将控制 对象模型对目标格式的转换。由于我们将乳胶转换为png,因此是 pngsaveoptions类实例,它允许我们指定输出图像的分辨率。

接下来,我们需要创建 Texjob类的实例。要转换存储在文件系统中的乳胶文件,我们使用 this版本的构造函数。我们应该指定文件的完整路径。否则,发动机将在当前目录中寻找它(在 此处)中寻找它,并且很可能找不到它。但是,如果我们的文件具有 .tex一个,我们可能会省略扩展名。引擎将自动添加它。构造函数的第二个参数是 设备类实例。由于我们将乳胶转换为png,因此它是 Imagedevice类(对于所有受支持的图像格式)实例。作为最后一个论点,我们通过了最近准备的转换选项。

我们现在要做的就是 运行工作。

无论运行是否成功,我们都会看到的第一个结果将是终端输出。在成功的情况下,看起来像这样:

 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图像文件(S)。

编写主要输出PNG文件的另一种方法

还有另一种将图像数据作为字节数组数组的方法,第二维中的每个数组代表单独的页面的图像数据。

 1// Create conversion options instance.
 2...
 3// Initialize the options for saving in PNG format.
 4PngSaveOptions saveOptions = new PngSaveOptions();
 5// Set this property to instruct the device not to output images as you will access them alternatively.
 6saveOptions.deviceWritesImages(false);
 7options.setSaveOptions(saveOptions);
 8// Create the image device.
 9ImageDevice device = new ImageDevice();
10// Run LaTeX to PNG conversion.
11new TeXJob(Utils.getInputDirectory() + "hello-world.ltx", device, options).run();
12
13// Save pages file by file.
14for (int i = 0; i < device.getResult().length; i++)
15{
16  final OutputStream fs = new FileOutputStream(Utils.getOutputDirectory() + MessageFormat.format("page-{0}.png", (i + 1)));
17  try {
18    fs.write(device.getResult()[i], 0, device.getResult()[i].length);
19  } finally {
20    if (fs != null)
21      fs.close();
22  }
23}

*“ Page-n.png” *文件将写入我们指定的任何路径。与 PDF输出不同,他们将复制写入输出目录的输出PNG文件。

关于输入选项

如果我们的主要输入文件需要依赖项,例如,这些依赖项不包含在基本乳胶系统和支持的软件包中,我们必须设置 requientInputInputDirectory选项选项的类似方式,我们设置了 outputworkworkingDirectory选项并将依赖项放入该目录中。依赖项可以在子目录中任意组织。如果我们有自己的文件要在排版过程中包括,例如外部图形文件,我们还必须使用通往收集这些文件的位置的路径来设置 InputWorkingDirectory。我们还可以将主输入文件放置在输入目录中的某个位置,并在run()方法中指定相对路径(或者如果主输入文件位于根中,则根本没有指定路径)。 此处是有关Java ** aspose.tex中输入目录概念的详细信息,并提供了实现。

讨论了其他TEX的工作选择 此处

您还可以查看基于 Aspose.TeX for .NET API 构建的免费 LaTeX 到 PNG 转换 网页应用此处 是 Java 版本页面。

下面,我们讨论乳胶转换为其他受支持的光栅图像格式。我们不会仅仅因为实际上没有任何细节而详细介绍。唯一的区别是转换选项中 SaveOptions属性的类型。

如何将乳胶转换为JPG

1// Create conversion options instance.
2...
3// Initialize the options for saving in JPEG format.
4options.SaveOptions = new JpegSaveOptions();

您也可以查看基于 Aspose.TeX for .NETAPI构建的免费乳胶转换 Web App这里是Java版本页。

如何将乳胶转换为tiff

1// Create conversion options instance.
2...
3// Initialize the options for saving in TIFF format.
4options.SaveOptions = new TiffSaveOptions();

您还可以根据 Aspose.TeX for .NETAPI构建的免费乳胶转换 Web App(33)。 这里是Java版本页。

如何将乳胶转换为BMP

1// Create conversion options instance.
2...
3// Initialize the options for saving in BMP format.
4options.SaveOptions = new BmpSaveOptions();

您还可以根据 Aspose.TeX for .NETAPI构建的免费乳胶到BMP转换 Web App这里是Java版本页。

如何将乳胶转换为SVG

另一种支持的目标格式是 svg。 **可扩展的向量图形(SVG)**是一种基于XML的矢量图像格式,用于定义二维图形,支持交互性和动画。

SVG图像以矢量图形格式定义,并存储在XML文本文件中。这意味着svg图像可以按大小缩放而不会丢失质量,并且svg可以搜索,索引,脚本编写和压缩。可以使用文本编辑器或矢量图形编辑器创建和编辑XML文本文件。 Thay由最常用的Web浏览器渲染。

另外,还有 Aspose.SVG库,该库具有基于svg格式的各种功能。这些包括创建,加载,编辑和转换SVG文档。

向SVG的转换与 转换为栅格图像格式一样简单,除了 SaveOptions之外,我们还必须将设备更改为 SVGDEVICE类的实例。

1// Create conversion options for Object LaTeX format upon Object TeX engine extension.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3// Specify a file system working directory for the output.
4options.setOutputWorkingDirectory(new OutputFileSystemDirectory(Utils.getOutputDirectory()));
5// Initialize the options for saving in SVG format.
6options.setSaveOptions(new SvgSaveOptions());
7// Run LaTeX to SVG conversion.
8new TeXJob(Utils.getInputDirectory() +  "hello-world.ltx", new SvgDevice(), options).run();

您也可以检查基于 Aspose.TeX for .NET构建的免费乳胶转换 Web App(44)。 这里是Java版本页。

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.