LaTeX a la imagen | Aspose.TeX para .NET

Aspose.TeX para .NET nos permite convertir archivos LaTeX a varios formatos de imágenes rasterizadas.

Cómo convertir LaTeX a PNG

Echemos un vistazo detallado al código en C# que proporciona la forma más sencilla de convertir LaTeX a formato 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.OutputWorkingDirectory = new OutputFileSystemDirectory(RunExamples.OutputDirectory);
5// Initialize the options for saving in PNG format.
6options.SaveOptions = new PngSaveOptions();
7// Run LaTeX to PNG conversion.
8new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), new ImageDevice(), options).Run();

Entonces, lo primero que debemos hacer (bueno, a veces no lo primero) es crear una instancia de la clase TeXOptions. El único método estático que hace esto es ConsoleAppOptions(), así que no nos dejemos desconcertar por el significado de su nombre. El método toma la instancia de ObjectLaTeX de la clase TeXConfig, que es exactamente adecuada para convertir un archivo LaTeX. Esta configuración le dice al motor Object TeX que cargue el formato Object LaTeX y que esté listo para aceptar el archivo LaTeX. El formato Object LaTeX es en realidad solo el formato LaTeX, excepto que utiliza primitivas específicas de Object TeX para configurar las métricas de la página.

La primera de las opciones requeridas es OutputWorkingDirectory que define el espacio o área donde se escribirá la salida TeX. Aquí se encuentran los detalles sobre el concepto de directorio de salida en Aspose.TeX para .NET. En este ejemplo, usamos la clase OutputFileSystemDirectory, que nos permite escribir la salida en el directorio o carpeta especificado.

La segunda opción es una instancia de clase SaveOptions que controlará la transformación del modelo de objeto al formato de destino. Dado que estamos convirtiendo LaTeX a PNG, es la instancia de clase PngSaveOptions, que nos permite especificar la resolución de las imágenes de salida.

Luego necesitamos crear una instancia de la clase TeXJob. Al querer convertir un archivo LaTeX almacenado en el sistema de archivos, utilizamos esta versión del constructor. Necesitamos especificar la ruta completa al archivo. De lo contrario, el motor lo buscará en el directorio actual (que es CurrentDirectory) y lo más probable es que no lo encuentre. Sin embargo, se puede omitir la extensión .tex. El motor lo agregará automáticamente. El segundo argumento del constructor es una instancia de clase Dispositivo. Dado que estamos convirtiendo LaTeX a PNG, es una instancia de clase ImageDevice y esto es común a todos los formatos de imagen admitidos. Como último argumento, pasamos las opciones de conversión preparadas recientemente.

Todo lo que queda por hacer ahora es ejecutar el trabajo.

Independientemente de si la ejecución fue exitosa o no, el primer resultado que veremos será la salida del terminal. Si la ejecución fue exitosa, se verá así:

 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.

Encontraremos otros “frutos” del trabajo del motor en la carpeta que especificamos como directorio de salida. Esos serán el archivo de transcripción y, ¡aquí está!, los archivos de imagen PNG de salida principal.

Una forma alternativa de escribir los archivos PNG de salida principales

Hay otra forma de obtener datos de imagen como una matriz de matrices de bytes; cada matriz en la segunda dimensión representa datos de imagen para una página separada.

 1// Create conversion options instance.
 2...
 3// Initialize the options for saving in PNG format.
 4PngSaveOptions pngSaveOptions = new PngSaveOptions();
 5pngSaveOptions.DeviceWritesImages = false;
 6options.SaveOptions = pngSaveOptions;
 7// Create the image device.
 8ImageDevice device = new ImageDevice();
 9// Run LaTeX to PNG conversion.
10new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), device, options).Run();
11
12// Save pages file by file.
13for (int i = 0; i < device.Result.Length; i++)
14{
15    using (Stream fs = File.Open(Path.Combine(RunExamples.OutputDirectory, $"page-{i + 1}.png"), FileMode.Create))
16        fs.Write(device.Result[i], 0, device.Result[i].Length);
17}

Los archivos “page-n.png” se escribirán en cualquier ruta que especifiquemos. A diferencia de Salida PDF, duplicarán los archivos PNG de salida escritos en el directorio de salida.

Acerca de las opciones de entrada

En caso de que nuestro archivo de entrada principal requiera dependencias, por ejemplo, paquetes, que no están incluidos en el sistema LaTeX básico y los paquetes compatibles, DEBEMOS configurar la opción RequiredInputDirectory de la misma manera que configuramos OutputWorkingDirectory. opción y coloque las dependencias en ese directorio. Las dependencias pueden organizarse arbitrariamente en subdirectorios. En caso de que tengamos nuestros propios archivos para incluir durante el proceso de composición tipográfica, digamos archivos de gráficos externos, DEBEMOS también configurar InputWorkingDirectory usando la ruta a la ubicación donde se recopilan esos archivos. También podemos colocar el archivo de entrada principal en algún lugar dentro del directorio de entrada y especificar la ruta relativa en el método run() (o no especificar ninguna ruta si el archivo de entrada principal está en la raíz). Aquí se encuentran los detalles sobre el concepto de directorio de entrada en Aspose.TeX para .NET y las implementaciones proporcionadas.

Otras opciones de trabajo en TeX se analizan aquí.

También puede consultar la aplicación web gratuita de conversión de LaTeX a PNG creada en base a Aspose.TeX para .NET API.

A continuación, analizamos la conversión de LaTeX a otros formatos de imágenes rasterizadas compatibles sin profundizar en los detalles, ya que en realidad no hay detalles. La única diferencia está en el tipo de propiedad SaveOptions en las opciones de conversión.

Cómo convertir LaTeX a JPG

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

También puede consultar la aplicación web gratuita de conversión de LaTeX a JPG creada en base a Aspose.TeX para .NET API.

Cómo convertir LaTeX a TIFF

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

También puede consultar la aplicación web gratuita de conversión de LaTeX a TIFF creada en base a Aspose.TeX para .NET API.

Cómo convertir LaTeX a BMP

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

También puede consultar la aplicación web gratuita de conversión de LaTeX a BMP creada en base a Aspose.TeX para .NET API.

Cómo convertir LaTeX a SVG

Y otro formato de destino admitido es SVG. Scalable Vector Graphics (SVG) es un formato de imagen vectorial basado en XML para definir gráficos bidimensionales, con soporte para interactividad y animación.

Las imágenes SVG se definen en un formato de gráficos vectoriales y se almacenan en archivos de texto XML. De este modo, las imágenes SVG se pueden escalar en tamaño sin pérdida de calidad, y los archivos SVG se pueden buscar, indexar, codificar y comprimir. Los archivos de texto XML se pueden crear y editar con editores de texto o editores de gráficos vectoriales y se procesan mediante los navegadores web más utilizados.

Existe la biblioteca Aspose.SVG que proporciona varias funciones relacionadas con SVG. Estos incluyen crear, cargar, editar y convertir documentos SVG.

La conversión de LaTeX a SVG también es tan simple como la conversión a formatos de imagen rasterizada, excepto que SaveOptions DEBE establecerse en una instancia de clase SvgSaveOptions, y el dispositivo DEBE ser cambiado a una instancia de la clase 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.OutputWorkingDirectory = new OutputFileSystemDirectory(RunExamples.OutputDirectory);
5// Initialize the options for saving in SVG format.
6options.SaveOptions = new SvgSaveOptions();
7// Run LaTeX to SVG conversion.
8new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), new PdfDevice(), options).Run();

También puede consultar la aplicación web gratuita de conversión de LaTeX a SVG creada en base a Aspose.TeX para .NET API.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.