Interface de saisie d'Aspose.TeX | .FILET

Veuillez vous référer à Aspose.TeX for .NET Référence API pour les définitions formelles de l’implémentation des E/S.

Le concept du répertoire d’entrée

Étant donné que les primitives d’E/S du langage TeX ne peuvent traiter que les noms de fichiers, Aspose.TeX pour .NET définit un répertoire comme un mappage entre les noms et des lots de données. Les masses de données sont censées être des fichiers, des flux, des tableaux ou quoi que ce soit d’autre. L’API nous permet de spécifier séparément les répertoires de travail d’entrée et de sortie. Il fournit l’interface générale IInputWorkingDirectory, que l’utilisateur peut implémenter pour ses propres besoins. Il fournit également ses propres implémentations, qui seront discutées ci-dessous. L’interface définit la méthode GetFile(), qui renvoie le flux de données et détermine le nom complet du fichier, tout en prenant un nom, hypothétiquement différent, comme premier argument, qui, en fait, est la clé de mappage. .

Obtenir une entrée de fichier à partir du système de fichiers du disque

Voici comment nous procéderions :

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

Ce cas d’utilisation est assez simple, il n’est donc plus nécessaire de s’y concentrer.

Obtenir une entrée de fichier à partir d’une archive ZIP

Nous pouvons également mettre les fichiers d’entrée dans une archive ZIP et la considérer comme un répertoire d’entrée. Dans ce cas, il faut procéder comme suit :

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}

Tout d’abord, nous créons le flux contenant le fichier ZIP. Ensuite, après avoir créé les options de conversion, nous définissons l’option InputWorkingDirectory comme étant une instance de la classe InputZipDirectory. Le deuxième argument du constructeur est le chemin de base à l’intérieur de l’archive. Si nous voulons que l’archive entière soit un répertoire d’entrée, nous devons transmettre la chaîne vide.

Le concept du terminal d’entrée

Il est maintenant temps de se rappeler qu’il y a aussi l’entrée du terminal. Quant à celui-ci, Aspose.TeX pour .NET définit l’interface générale IInputTerminal ayant une seule propriété qui renvoie une instance d’implémentation de TextReader. Les implémentations fournies sont discutées ci-dessous.

Obtenir l’entrée du terminal depuis la console

Pour ce faire, nous devons définir l’option TerminalIn pour qu’elle soit une instance de la classe InputConsoleTerminal.

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

Mais, à vrai dire, il s’agit de la valeur par défaut de l’option, il n’est donc pas vraiment nécessaire de la spécifier. De ce fait, et tant qu’il n’y a pas d’autres implémentations, cette section sert uniquement à des fins de démonstration.

Théoriquement, si nous disposons d’un fichier (ou script) TeX interactif avec un comportement prévisible, nous souhaiterons peut-être implémenter une version du terminal d’entrée qui contiendrait un script complémentaire pour répondre aux requêtes du moteur TeX. Essayez-vous quand vous avez le temps !

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.