Interface de entrada do Aspose.TeX | Python
Para definições formais da implementação de E/S no Aspose.TeX para Python, consulte a referência da API.
A ideia por trás do diretório de entrada
Dado que as primitivas de E/S do idioma Tex só podem lidar com nomes de arquivos, aspose.tex for python define um diretório como um mapeamento entre nomes e coleções de dados. Essas coleções de dados podem ser arquivos, fluxos, matrizes ou qualquer outro tipo. A API permite a especificação separada dos diretórios de trabalho de entrada e saída. Ele fornece a classe Geral InputWorkingDirectory, que os usuários podem implementar para suas necessidades específicas. Além disso, a API fornece implementações internas, que serão discutidas posteriormente. A interface inclui o método get_file(), que recupera o fluxo de dados e determina o nome completo do arquivo com base em um determinado nome, que serve como chave de mapeamento.
Recuperando a entrada do arquivo do sistema de arquivos de disco
Aqui está a abordagem que adotaríamos:
1# Create conversion options instance.
2...
3# Specify a file system working directory for the input.
4options.input_working_directory = InputFileSystemDirectory(Utils.input_directory)
Esse caso de uso específico é bastante direto, para que possamos seguir em frente agora.
Recuperando a entrada do arquivo de um arquivo zip
Outra opção é armazenar os arquivos de entrada em um arquivo zip e tratá -lo como um diretório de entrada. Nesse cenário, as seguintes etapas devem ser seguidas:
1# Open the stream for the ZIP archive that will serve as the input working directory.
2with open(path.join(Utils.input_directory, "zip-in.zip")) as in_zip_stream:
3 # Create conversion options instance.
4 ...
5 # Specify a ZIP archive working directory for the input. You can also specify a path inside the archive.
6 options.input_working_directory = InputZipDirectory(in_zip_stream, "in")
Para começar, criamos o fluxo que contém o arquivo zip. Posteriormente, após a criação das opções de conversão, atribuímos uma instância da classe inputzipDirectory à propriedade input_working_directory. O segundo parâmetro do construtor representa o caminho base dentro do arquivo. Se desejarmos todo o arquivo para funcionar como diretório de entrada, devemos fornecer uma string vazia como argumento.
A ideia por trás do terminal de entrada
Agora vamos considerar o conceito de entrada terminal. Aspose.TeX for python define a interface Geral IInputTerminal especificamente para esse fim, que inclui uma única propriedade que retorna uma instância da implementação TerminalReader. As implementações disponíveis serão discutidas mais adiante.
Obtendo a entrada terminal do console
Para conseguir isso, precisamos atribuir uma instância da classe InputConsoleterminal à opção Terminal_in.
1# Create conversion options instance.
2...
3# Specify the console as the input terminal.
4options.terminal_in = InputConsoleTerminal() # Default. Arbitrary assignment.
No entanto, para ser sincero, esse é o valor padrão para a opção; portanto, não há necessidade real de especificá -lo explicitamente. Dada a ausência de outras implementações, esta seção é puramente para fins de demonstração.
Em teoria, se tivermos um arquivo tex interativo (ou script) com comportamento previsível, pode ser desejável implementar uma versão do terminal de entrada que inclua um script correspondente para responder às solicitações do mecanismo do Tex. Sinta -se à vontade para tentar quando tiver a oportunidade!