Interfaz de salida de Aspose.TeX | Java

Consulte Aspose.TeX para Java referencia de API para obtener definiciones formales de implementación de E/S.

El concepto del directorio de salida.

Dado que las primitivas de E/S del lenguaje TeX sólo pueden tratar con nombres de archivos, Aspose.TeX define un directorio como un mapeo entre nombres y grandes cantidades de datos. Se supone que la gran cantidad de datos son archivos, secuencias, matrices o cualquier otra cosa. La API nos permite especificar los directorios de trabajo de entrada y salida por separado. Proporciona la interfaz general IOutputWorkingDirectory para la salida, que el usuario puede implementar para sus propios fines. También proporciona sus propias implementaciones, que se analizarán a continuación. La interfaz extiende IInputWorkingDirectory, ya que el motor puede primero crear y escribir un archivo y luego volver a leerlo. El método propio de la interfaz getOuputFile() devuelve la secuencia para escribir, a diferencia de la secuencia para leer devuelta por getFile().

Escribir la salida del archivo en el sistema de archivos del disco

Como mencionamos arriba, el valor más común para OutputWorkingDirectory probablemente sería una instancia de la clase OutputFileSystemDirectory.

Así es como lo configuraríamos:

1// Create conversion options instance.
2...
3// Specify a file system working directory for the output.
4options.setOutputWorkingDirectory(new OutputFileSystemDirectory(Utils.getOutputDirectory()));

Este caso de uso es bastante simple, por lo que no nos detendremos en él por mucho tiempo.

Escribir la salida del archivo en un archivo ZIP

También podemos crear un archivo (o secuencia) y dejar que el motor TeX lo use como un archivo ZIP para almacenar los archivos de salida. Aquí lo tienes:

 1// Open the stream for the ZIP archive that will serve as the output working directory.
 2final OutputStream outZipStream = new FileOutputStream(Utils.getOutputDirectory() + "zip-pdf-out.zip");
 3{
 4    // Create conversion options instance.
 5    ...
 6    // Specify a ZIP archive working directory for the output.
 7    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));
 8} finally {
 9    if (outZipStream != null)
10        outZipStream.close();
11}

Primero, creamos un flujo de salida para el archivo ZIP. Luego, después de crear las opciones de conversión, configuramos la opción OutputWorkingDirectory para que sea una instancia de la clase OutputZipDirectory.

El concepto de terminal de salida.

Hay otra parte importante de la salida: la salida del terminal. En cuanto a este, Aspose.TeX para Java define la interfaz general IOutputTerminal con dos métodos. Uno de ellos devuelve una instancia BufferedWriter. Otro devuelve una instancia OutputStream como flujo subyacente. Las implementaciones proporcionadas de la interfaz se analizan a continuación.

Escribir la salida del terminal en la consola

Para hacer esto, necesitamos configurar la opción TerminalOut para que sea una instancia de la clase OutputConsoleTerminal.

1// Create conversion options instance.
2...
3// Specify the console as the input terminal.
4options.setTerminalOut(new OutputConsoleTerminal()); // Default value. Arbitrary assignment.

Nuevamente, este es el valor predeterminado de la opción, por lo que no es necesario especificarlo. Debido a esto, esta sección tiene únicamente fines de demostración.

Escribir la salida del terminal en un archivo

A diferencia del terminal de entrada, Aspose.TeX para Java proporciona una implementación de IOutputTerminal, que nos permite escribir la salida del terminal en un archivo en algún directorio de salida.

1// Create conversion options instance.
2...
3// Specify that the terminal output must be written to a file in the output working directory.
4// The file name is <job_name>.trm.
5options.setTerminalOut(new OutputFileTerminal(options.getOutputWorkingDirectory()));

Aquí le pedimos al motor TeX que escriba la salida del terminal en el archivo con el nombre <job_name>.trm, que se almacenará en el mismo directorio de salida que especificamos para el resto de la salida. Pero esto no es necesario. También podríamos pasar cualquier otra instancia de cualquier implementación de IOutputTerminal al constructor.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.