Interface de entrada do Aspose.TeX | Java
Consulte Aspose.TeX para java Referência da API para obter definições formais de implementação de E/S.
O conceito do diretório de entrada
Como as primitivas de E/S do idioma TEX só podem lidar com nomes de arquivos, aspose.tex para java define um diretório como um mapeamento entre nomes e volumes de dados. Os ma tetos de dados devem ser arquivos, fluxos, matrizes ou qualquer outra coisa. A API nos permite especificar os diretórios de trabalho de entrada e saída separadamente. Ele fornece a interface Geral iinputWorkingDirectory, que o usuário pode implementar para seus próprios fins. Ele também fornece suas próprias implementações, que serão discutidas abaixo. A interface define o método getfile(), que retorna o fluxo de dados e determina o nome completo do arquivo, enquanto toma um nome, hipoteticamente diferente, como o primeiro argumento, que, de fato, é a chave de mapeamento.
Obtendo entrada de arquivo do sistema de arquivos de disco
Aqui está como faríamos isso:
1// Create conversion options instance.
2...
3// Specify a file system working directory for the input.
4options.setInputWorkingDirectory(new InputFileSystemDirectory(Utils.getInputDirectory()));
Este caso de uso é bastante simples, por isso não vamos nos debruçar por um longo tempo.
Obtendo entrada de arquivo de um arquivo zip
Também podemos colocar os arquivos de entrada em um arquivo zip e considerá -lo um diretório de entrada. Nesse caso, devemos prosseguir da seguinte forma:
1// Open the stream for the ZIP archive that will serve as the input working directory.
2final 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.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "in"));
8} finally {
9 if (inZipStream != null)
10 inZipStream.close();
11}
Primeiro, criamos o fluxo que contém o arquivo zip. Então, depois de criar as opções de conversão, definimos a opção InputWorkingDirectory para ser uma instância da classe InputZipDirectory. O segundo argumento do construtor é o caminho base dentro do arquivo. Se queremos que todo o arquivo seja um diretório de entrada, devemos passar na string vazia.
O conceito do terminal de entrada
Agora, lembre -se de que há também a entrada do terminal. Quanto a este, Aspose.TeX para Java define a interface geral IInputTerminal como tendo dois métodos. Um deles retorna uma instância BufferedReader. Outro método retorna um inputStream como o fluxo subjacente. As implementações fornecidas da interface são discutidas abaixo.
Obtendo a entrada terminal do console
Para fazer isso, precisamos definir a opção Terminalin para ser uma instância da classe inputConsoleterminal.
1// Create conversion options instance.
2...
3// Specify the console as the input terminal.
4options.setTerminalIn(new InputConsoleTerminal()); // Default value. Arbitrary assignment.
Mas, para dizer a verdade, esse é o valor padrão da opção, portanto, não há necessidade real de especificá -la. Devido a esse fato e, desde que não haja outras implementações, esta seção serve apenas para fins de demonstração.
Teoricamente, se tivermos um arquivo tex interativo (ou script) com comportamento previsível, podemos querer implementar uma versão do terminal de entrada que contenha um script complementar para responder às solicitações do mecanismo Tex. Experimente sua mão quando tiver tempo!