Interface de saída do Aspose.TeX | C ++
Consulte Aspose.TeX para C ++ 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 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 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 leia -o 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 OputDirectory provavelmente seria uma instância da classe outputFilesystemDirectory.
Aqui está como nós o definiríamos:
1// Create conversion options instance.
2...
3// Specify a file system working directory for the output.
4options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(RunExamples::OutputDirectory));
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 // Open the stream for the ZIP archive that will serve as the output working directory.
2 System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
3
4 // Create conversion options instance.
5 ...
6 // Specify a ZIP archive working directory for the output.
7 options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
Primeiro, criamos um fluxo de saída para o arquivo zip. Então, depois de 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 C ++ Define a interface Geral ioutputMerminal com apenas uma propriedade que retorna uma instância de implementação textwriter. As implementações desde que 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// Create conversion options instance.
2...
3// Specify the console as the output terminal.
4options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>()); // Default. No need to specify.
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 C ++ fornece uma implementação do ioutputMerminal, que nos permite gravar a saída do terminal em um arquivo em algum diretório de saída.
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->set_TerminalOut(System::MakeObject<OutputFileTerminal>(options->get_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 ioutputMerminal para o construtor.