Aspose.TeXの入力インターフェイス| Python
Aspose.TeX for Python の I/O 実装の正式な定義については、 API リファレンス を参照してください。
入力ディレクトリの背後にあるアイデア
Tex言語のI/O Primitivesはファイル名のみを処理できることを考えると、Python Aspose.TeX **ディレクトリを名前とデータのコレクションのマッピングとして定義します。これらのデータコレクションは、ファイル、ストリーム、配列、またはその他のタイプです。 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プロパティに割り当てます。コンストラクターの2番目のパラメーターは、アーカイブ内のベースパスを表します。アーカイブ全体が入力ディレクトリとして機能することを望む場合は、引数として空の文字列を提供する必要があります。
入力端子の背後にあるアイデア
次に、ターミナル入力の概念を考えてみましょう。 pythonのAspose.TeXこの目的のために特に一般的な 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エンジンの要求に応答する対応するスクリプトを含む入力端子のバージョンを実装することが望ましい場合があります。機会があれば、お気軽にお試しください!