Інтерфейс виводу Aspose.TeX | C++

Будь ласка, зверніться до Aspose.TeX для C++ посилання на API, щоб отримати формальні визначення реалізації введення/виведення.

Поняття вихідного каталогу

Оскільки примітиви вводу-виводу мови TeX можуть мати справу лише з іменами файлів, Aspose.TeX визначає каталог як відображення між іменами та масивами даних. Маси даних мають бути файлами, потоками, масивами або будь-яким іншим. API дозволяє нам окремо вказувати вхідні та вихідні робочі каталоги. Він надає загальний інтерфейс IOutputWorkingDirectory для виведення, який користувач може реалізувати для власних цілей. Він також надає власні реалізації, які будуть розглянуті нижче. Інтерфейс розширює IInputWorkingDirectory, оскільки механізм може спочатку створити та записати файл, а потім прочитати його назад. Власний метод інтерфейсу GetOutputFile() повертає потік для запису, на відміну від потоку для читання, який повертає GetFile().

Запис вихідного файлу у файлову систему диска

Як ми згадували вище, найпоширенішим значенням для OutputDirectory буде екземпляр класу OutputFileSystemDirectory.

Ось як ми це встановимо:

1// Create conversion options instance.
2...
3// Specify a file system working directory for the output.
4options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(RunExamples::OutputDirectory));

Цей варіант використання досить простий, тому більше не потрібно зосереджуватися на ньому.

Запис вихідного файлу в ZIP-архів

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

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));

Спочатку ми створюємо вихідний потік для файлу ZIP. Потім, після створення параметрів перетворення, ми встановлюємо параметр OutputWorkingDirectory як екземпляр класу OutputZipDirectory.

Поняття про вихідний термінал

Є ще одна важлива частина виводу — вихід терміналу. Що стосується цього, Aspose.TeX для C++ визначає загальний інтерфейс IOutputTerminal, який має лише одну властивість, яка повертає екземпляр реалізації TextWriter. Надані реалізації обговорюються нижче.

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

Для цього нам потрібно встановити параметр TerminalOut як екземпляр класу 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.

Знову ж таки, це значення параметра за замовчуванням, тому немає потреби вказувати його. Через це цей розділ служить лише для демонстраційних цілей.

Запис вихідних даних терміналу у файл

На відміну від вхідного терміналу, Aspose.TeX для C++ забезпечує реалізацію 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->set_TerminalOut(System::MakeObject<OutputFileTerminal>(options->get_OutputWorkingDirectory()));

Тут ми просимо механізм TeX записати вихідні дані терміналу у файл із назвою <назва_завдання>.trm, який зберігатиметься в тому самому каталозі виводу, який ми вказали для решти виводу. Але в цьому немає необхідності. Ми також можемо передати будь-який інший екземпляр будь-якої реалізації IOutputTerminal до конструктора.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.