Interfaz de entrada de Aspose.TeX | .NETO

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

El concepto del directorio de entrada.

Dado que las primitivas de E/S del lenguaje TeX solo pueden tratar con nombres de archivos, Aspose.TeX para .NET define un directorio como una asignación 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 IInputWorkingDirectory, que el usuario puede implementar para sus propios fines. También proporciona sus propias implementaciones, que se analizarán a continuación. La interfaz define el método GetFile(), que devuelve el flujo de datos y determina el nombre completo del archivo, mientras toma algún nombre, hipotéticamente diferente, como primer argumento, que, de hecho, es la clave de mapeo. .

Obtener entrada de archivos del sistema de archivos del disco

Así es como lo haríamos:

1// Create conversion options instance.
2...
3// Specify a file system working directory for the input.
4options.InputWorkingDirectory = new InputFileSystemDirectory(RunExamples.InputDirectory);

Este caso de uso es bastante simple, por lo que ya no es necesario centrarse en él.

Obtener entrada de archivo desde un archivo ZIP

También podemos poner los archivos de entrada en un archivo ZIP y considerarlo un directorio de entrada. En este caso debemos proceder de la siguiente manera:

1// Open the stream for the ZIP archive that will serve as the input working directory.
2using (Stream inZipStream = File.Open(Path.Combine(RunExamples.InputDirectory, "zip-in.zip"), FileMode.Open))
3{
4    // Create conversion options instance.
5    ...
6    // Specify a ZIP archive working directory for the input. You can also specify a path inside the archive.
7    options.InputWorkingDirectory = new InputZipDirectory(inZipStream, "in");
8}

Primero, creamos la secuencia que contiene el archivo ZIP. Luego, después de crear las opciones de conversión, configuramos la opción InputWorkingDirectory para que sea una instancia de la clase InputZipDirectory. El segundo argumento del constructor es la ruta base dentro del archivo. Si queremos que todo el archivo sea un directorio de entrada, debemos pasar la cadena vacía.

El concepto de terminal de entrada.

Ahora toca recordar que también está la entrada del terminal. En cuanto a este, Aspose.TeX para .NET define la interfaz general IInputTerminal que tiene solo una propiedad que devuelve una instancia de implementación TextReader. Las implementaciones proporcionadas se analizan a continuación.

Obtener entrada de terminal desde la consola

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

1// Create conversion options instance.
2...
3// Specify the console as the input terminal.
4options.TerminalIn = new InputConsoleTerminal(); // Default. Arbitrary assignment.

Pero, a decir verdad, este es el valor predeterminado de la opción, por lo que no es necesario especificarlo. Por lo tanto, y mientras no existan otras implementaciones, esta sección tiene únicamente fines demostrativos.

En teoría, si tenemos un archivo (o secuencia de comandos) TeX interactivo con un comportamiento predecible, es posible que deseemos implementar una versión del terminal de entrada que contenga una secuencia de comandos complementaria para responder a las solicitudes del motor TeX. ¡Prueba suerte cuando tengas tiempo!

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.