Interface de saisie d'Aspose.TeX | Java

Veuillez vous référer à Aspose.TeX for Java 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 Java définit un répertoire comme un mappage entre des 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.setInputWorkingDirectory(new InputFileSystemDirectory(Utils.getInputDirectory()));

Ce cas d’utilisation est assez simple, nous ne nous y attarderons donc pas longtemps.

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.
 2final 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.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "in"));
 8} finally {
 9    if (inZipStream != null)
10        inZipStream.close();
11}

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

Rappelons maintenant qu’il y a aussi l’entrée du terminal. Quant à celui-ci, Aspose.TeX for Java définit l’interface générale IInputTerminal comme ayant deux méthodes. L’un d’eux renvoie une instance de BufferedReader. Une autre méthode renvoie un InputStream comme flux sous-jacent. Les implémentations fournies de l’interface sont décrites 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.setTerminalIn(new InputConsoleTerminal()); // Default value. 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.