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

Щоб отримати офіційні визначення реалізації вводу-виводу в Aspose.TeX для Python, зверніться до [посилання на API]( https://reference.aspose.com/tex/python-net/aspose.tex.io /).

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

Враховуючи, що примітиви вводу-виводу мови TeX можуть обробляти лише імена файлів, Aspose.TeX для Python визначає каталог як відображення між іменами та колекціями даних. Ці колекції даних можуть бути файлами, потоками, масивами або будь-яким іншим типом. API дозволяє окремо вказувати вхідні та вихідні робочі каталоги. Він надає загальний клас InputWorkingDirectory, який користувачі можуть реалізувати для своїх конкретних потреб. Крім того, API забезпечує вбудовані реалізації, які будуть обговорюватися пізніше. Інтерфейс містить метод get_file(), який отримує потік даних і визначає повне ім’я файлу на основі заданого імені, яке служить ключем відображення.

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

Ось наш підхід:

1# Create conversion options instance.
2...
3# Specify a file system working directory for the input.
4options.input_working_directory = InputFileSystemDirectory(Utils.input_directory)

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

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

Інший варіант — зберігати вхідні файли в архіві ZIP і розглядати його як вхідний каталог. У такому сценарії слід виконати такі дії:

1# Open the stream for the ZIP archive that will serve as the input working directory.
2with open(path.join(Utils.input_directory, "zip-in.zip")) as in_zip_stream:
3    # Create conversion options instance.
4    ...
5    # Specify a ZIP archive working directory for the input. You can also specify a path inside the archive.
6    options.input_working_directory = InputZipDirectory(in_zip_stream, "in")

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

Ідея вхідного терміналу

Тепер давайте розглянемо концепцію термінального введення. Aspose.TeX для Python визначає загальний інтерфейс IInputTerminal спеціально для цієї мети, який включає одну властивість, яка повертає екземпляр реалізації TerminalReader. Доступні реалізації будуть обговорені пізніше.

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

Щоб досягти цього, нам потрібно призначити екземпляр класу InputConsoleTerminal опції terminal_in.

1# Create conversion options instance.
2...
3# Specify the console as the input terminal.
4options.terminal_in = InputConsoleTerminal()  # Default. Arbitrary assignment.

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

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.