Interface de saída do Aspose.TeX | .NET

Consulte Aspose.TeX para .NET Referência da API para obter definições formais de implementação de E/S.

O conceito de diretório de saída

Como as primitivas de E/S do idioma TeX só podem lidar com nomes de arquivos, Aspose.TeX define um diretório como um mapeamento entre nomes e volumes de dados. Os volumes 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 IOutputWorkingDirectory para a saída, que o usuário pode implementar para seus próprios propósitos. Ele também fornece suas próprias implementações, que serão discutidas abaixo. A interface estende IInputWorkingDirectory, pois o mecanismo pode primeiro criar e escrever um arquivo e depois lê-lo novamente. O próprio método da interface GetOutputFile() retorna o fluxo para gravar, em oposição ao fluxo para ler devolvido por GetFile().

Escrevendo a saída do arquivo no sistema de arquivos de disco

Como mencionamos acima, o valor mais comum para o OutputDirectory provavelmente seria uma instância da classe OutputFileSystemDirectory.

Aqui está como nós o definiríamos:

1// Writing file output to the disk file system
2
3// Create conversion options instance.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectTeX());
5// ...
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);

Este caso de uso é bastante simples, então não há mais necessidade de se concentrar nele.

Escrevendo a saída do arquivo em um arquivo zip

Também podemos criar um arquivo (ou fluxo) e deixar o mecanismo TeX usá-lo como um arquivo ZIP para armazenar os arquivos de saída. Aqui está:

 1// Writing file output to a ZIP archive
 2
 3// Open the stream for the ZIP archive that will serve as the output working directory.
 4using (Stream outZipStream = File.Open(Path.Combine(OutputDir, "zip-pdf-out.zip"), FileMode.Create))
 5{
 6    // Create conversion options instance.
 7    TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectTeX());
 8    // ...
 9    // Specify a ZIP archive working directory for the output.
10    options.OutputWorkingDirectory = new OutputZipDirectory(outZipStream);

Primeiro, criamos um fluxo de saída para o arquivo ZIP. Então, após criar as opções de conversão, definimos a opção OutputWorkingDirectory para ser uma instância da classe OutputZipDirectory.

O conceito do terminal de saída

Há outra parte importante da saída — a saída do terminal. Quanto a este, Aspose.TeX para .NET define a interface geral IOutputTerminal com apenas uma propriedade que retorna uma instância de implementação TextWriter. As implementações fornecidas são discutidas abaixo.

Escrevendo saída do terminal para o console

Para fazer isso, precisamos definir a opção TerminalOut para ser uma instância da classe OutputConsoleTerminal.

1// Writing terminal output to the console
2
3// Create conversion options instance.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectTeX());
5// ...
6// Specify the console as the output terminal.
7options.TerminalOut = new OutputConsoleTerminal(); // Default value. Arbitrary assignment.

Novamente, esse é o valor padrão da opção; portanto, não há necessidade real de especificá-lo. Devido a isso, esta seção serve apenas fins de demonstração.

Escrevendo a saída do terminal em um arquivo

Ao contrário do terminal de entrada, Aspose.TeX para .NET fornece uma implementação do IOutputTerminal, que nos permite gravar a saída do terminal em um arquivo em algum diretório de saída.

1// Writing terminal output to a file
2
3// Create conversion options instance.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectTeX());
5// ...
6// Specify that the terminal output must be written to a file in the output working directory.
7// The file name is <job_name>.trm.
8options.TerminalOut = new OutputFileTerminal(options.OutputWorkingDirectory);

Aqui, pedimos ao mecanismo TeX que escreva a saída do terminal no arquivo com o nome <job_name>.trm, que será armazenado no mesmo diretório de saída que especificamos para o restante da saída. Mas isso não é necessário. Podemos também passar em qualquer outra instância de qualquer implementação do IOutputTerminal para o construtor.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.