Выходной интерфейс Aspose.TeX | Java

Пожалуйста, обратитесь к Aspose.TeX for Java ссылка на API для формальных определений реализации ввода-вывода.

Концепция выходного каталога

Поскольку примитивы ввода-вывода языка TeX могут работать только с именами файлов, Aspose.TeX определяет каталог как сопоставление между именами и объемами данных. Предполагается, что основная часть данных представляет собой файлы, потоки, массивы или что-то еще. API позволяет нам отдельно указывать входные и выходные рабочие каталоги. Он предоставляет общий интерфейс IOutputWorkingDirectory для вывода, который пользователь может реализовать в своих целях. Он также предоставляет свои собственные реализации, которые будут обсуждаться ниже. Интерфейс расширяет IInputWorkingDirectory, поскольку механизм может сначала создать и записать файл, а затем прочитать его обратно. Собственный метод интерфейса getOuputFile() возвращает поток для записи, в отличие от потока для чтения, возвращаемого getFile().

Запись вывода файла в файловую систему диска

Как мы уже упоминали выше, наиболее распространенным значением OutputWorkingDirectory, скорее всего, будет экземпляр класса OutputFileSystemDirectory.

Вот как мы это установим:

1// Create conversion options instance.
2...
3// Specify a file system working directory for the output.
4options.setOutputWorkingDirectory(new OutputFileSystemDirectory(Utils.getOutputDirectory()));

Этот вариант использования достаточно прост, поэтому мы не будем на нем долго останавливаться.

Запись вывода файла в ZIP-архив

Мы также можем создать файл (или поток) и позволить движку TeX использовать его в качестве ZIP-архива для хранения выходных файлов. Вот:

 1// Open the stream for the ZIP archive that will serve as the output working directory.
 2final OutputStream outZipStream = new FileOutputStream(Utils.getOutputDirectory() + "zip-pdf-out.zip");
 3{
 4    // Create conversion options instance.
 5    ...
 6    // Specify a ZIP archive working directory for the output.
 7    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));
 8} finally {
 9    if (outZipStream != null)
10        outZipStream.close();
11}

Сначала мы создаем выходной поток для ZIP-файла. Затем, после создания параметров преобразования, мы устанавливаем параметр OutputWorkingDirectory как экземпляр класса OutputZipDirectory.

Концепция выходного терминала

Есть еще одна важная часть вывода — вывод терминала. Что касается этого, Aspose.TeX для Java определяет общий интерфейс IOutputTerminal как имеющий два метода. Один из них возвращает экземпляр BufferedWriter. Другой возвращает экземпляр OutputStream в качестве базового потока. Предоставленные реализации интерфейса обсуждаются ниже.

Запись вывода терминала на консоль

Для этого нам нужно установить опцию TerminalOut как экземпляр класса OutputConsoleTerminal.

1// Create conversion options instance.
2...
3// Specify the console as the input terminal.
4options.setTerminalOut(new OutputConsoleTerminal()); // Default value. Arbitrary assignment.

Опять же, это значение параметра по умолчанию, поэтому нет необходимости его указывать. В связи с этим данный раздел служит только демонстрационным целям.

Запись вывода терминала в файл

В отличие от терминала ввода, Aspose.TeX for Java предоставляет реализацию IOutputTerminal, которая позволяет нам записывать вывод терминала в файл в некотором выходном каталоге.

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.setTerminalOut(new OutputFileTerminal(options.getOutputWorkingDirectory()));

Здесь мы просим движок TeX записать вывод терминала в файл с именем <job_name>.trm, который будет храниться в том же выходном каталоге, который мы указали для остальной части вывода. Но это не обязательно. С таким же успехом мы могли бы передать в конструктор любой другой экземпляр любой реализации IOutputTerminal.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.