Інтерфейс введення Aspose.TeX | .NET

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

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

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

Отримання вхідних файлів із файлової системи диска

Ось як би ми це зробили:

1// Create conversion options instance.
2...
3// Specify a file system working directory for the input.
4options.InputWorkingDirectory = new InputFileSystemDirectory(RunExamples.InputDirectory);

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

Отримання вхідних файлів із ZIP-архіву

Ми також можемо помістити вхідні файли в архів ZIP і вважати його вхідним каталогом. У цьому випадку ми повинні діяти наступним чином:

1// Open the stream for the ZIP archive that will serve as the input working directory.
2using (Stream inZipStream = File.Open(Path.Combine(RunExamples.InputDirectory, "zip-in.zip"), FileMode.Open))
3{
4    // Create conversion options instance.
5    ...
6    // Specify a ZIP archive working directory for the input. You can also specify a path inside the archive.
7    options.InputWorkingDirectory = new InputZipDirectory(inZipStream, "in");
8}

Спочатку ми створюємо потік, що містить ZIP-файл. Потім, після створення параметрів перетворення, ми встановлюємо параметр InputWorkingDirectory як екземпляр класу InputZipDirectory. Другим аргументом конструктора є базовий шлях всередині архіву. Якщо ми хочемо, щоб весь архів був вхідним каталогом, ми повинні передати порожній рядок.

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

Тепер настав час згадати, що є також термінальний вхід. Що стосується цього, Aspose.TeX для .NET визначає загальний інтерфейс IInputTerminal, який має лише одну властивість, яка повертає екземпляр реалізації TextReader. Надані реалізації обговорюються нижче.

Отримання введення терміналу з консолі

Для цього нам потрібно встановити параметр TerminalIn як екземпляр класу InputConsoleTerminal.

1// Create conversion options instance.
2...
3// Specify the console as the input terminal.
4options.TerminalIn = new InputConsoleTerminal(); // Default. Arbitrary assignment.

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

Теоретично, якщо у нас є інтерактивний файл TeX (або сценарій) з передбачуваною поведінкою, ми можемо захотіти реалізувати версію терміналу введення, яка б містила додатковий сценарій для відповіді на запити механізму TeX. Спробуйте свої сили, коли матимете час!

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.