Configuration des options avancées du moteur TeX en Java

Ajustez précisément les paramètres de compilation des documents TeX et LaTeX à l’aide de la classe TeXOptions d’Aspose.TeX for Java. Bénéficiez d’un contrôle granulaire sur les noms des tâches d’exécution, le comportement de journalisation du terminal et des fichiers, les chemins de recherche des polices et des packages, ainsi que les préférences de gestion des erreurs lors des flux de travail automatisés de traitement des documents.

 

Lors de l’exécution de tâches TeX ou LaTeX dans des environnements Java d’entreprise, la configuration du comportement à l’exécution est essentielle pour le suivi des erreurs, l’audit et la gestion des ressources dans des environnements multilocataires.

  • Nom de la tâche utilise la méthode setJobName(String) pour spécifier le préfixe du nom du fichier de sortie principal des documents et fichiers auxiliaires générés (.pdf, .log, .aux).
  • Sortie du terminal utilise la méthode setTerminalOut(IOutputTerminal) pour contrôler l’endroit où sont dirigés les messages de la console et les avertissements du moteur (console, fichier, flux mémoire ou Null).
  • Entrée du terminal utilise la méthode setTerminalIn(IInputTerminal) pour configurer le comportement de l’entrée interactive de la console lors de l’exécution de TeX.
  • Sortie du journal utilise la méthode setLogOutput(Boolean) pour activer ou supprimer la génération de fichiers auxiliaires de compilation .log.
  • Répéter en cas d’erreur utilise la méthode setRepeatOnError(Boolean) pour indiquer au moteur s’il doit réexécuter les cycles de traitement lorsqu’il rencontre des erreurs de composition récupérables.

Configuration du nom de la tâche et de la nomenclature des sorties

Définissez un nom de tâche personnalisé pour déterminer le préfixe des fichiers des documents générés, des fichiers intermédiaires et des sorties de journal.

import com.aspose.tex.*;
import java.io.IOException;

public class ConfigureTeXJobName {
    public static void main(String[] args) throws IOException {
        // Initialize options for LaTeX format
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Set input and output working directories
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Explicitly set a custom job name (Output will be 'Invoice_2026.pdf')
        options.setJobName("Invoice_2026");

        // Run TeX job using the designated job name options
        TeXJob job = new TeXJob(options);
        job.run();

        System.out.println("TeX job completed with custom output file name: Invoice_2026.pdf");
    }
}

Redirection de la sortie du terminal et de la journalisation de la console

Capturez ou réduisez au silence les journaux de la console à l’exécution en configurant des instances personnalisées de IOutputTerminal (par exemple, en écrivant les messages du terminal directement en mémoire ou sur le disque).

import com.aspose.tex.*;
import java.io.ByteArrayOutputStream;

public class ConfigureTeXTerminalOutput {
    public static void main(String[] args) throws Exception {
        // Initialize LaTeX conversion options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Redirect terminal output to an in-memory stream instead of System.out
        ByteArrayOutputStream terminalStream = new ByteArrayOutputStream();
        options.setTerminalOut(new OutputConsoleTerminal()); // Or use custom stream terminal

        // Enable execution log file writing
        options.setLogOutput(true);

        // Execute the compilation job
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        System.out.println("TeX execution log captured successfully.");
    }
}

Gestion des erreurs et du comportement d’exécution

Configurez la manière dont Aspose.TeX gère les avertissements d’exécution et les erreurs d’analyse lors de la compilation.

import com.aspose.tex.*;

public class ConfigureTeXExecutionSettings {
    public static void main(String[] args) throws Exception {
        // Initialize base options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Configure directory paths
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Set repeat-on-error and logging preferences
        options.setRepeatOnError(false); // Halt or proceed without retry loops on non-fatal errors
        options.setLogOutput(true);      // Ensure detailed engine log is written to output directory

        // Execute job
        TeXJob job = new TeXJob("document", new PdfDevice(), options);
        job.run();

        System.out.println("Document compiled with fine-tuned error settings.");
    }
}

Installation et configuration

Intégrez Aspose.TeX for Java à votre projet à l’aide de Maven :

Package Manager Console Command

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>Latest</version>
</dependency>

Questions fréquentes

1. Que se passe-t-il si je ne spécifie pas de nom de tâche dans TeXOptions ?

Si aucun nom de tâche n’est explicitement configuré via setJobName(), Aspose.TeX utilise par défaut le nom du fichier d’entrée principal (par exemple, main.tex génère main.pdf et main.log).

2. Comment puis-je désactiver complètement la création du fichier de compilation .log ?

Définissez options.setLogOutput(false) avant de créer et d’exécuter TeXJob. Cela empêche le moteur de générer des fichiers journaux auxiliaires sur le disque ou dans le répertoire de travail de sortie.

3. Puis-je capturer les messages du terminal TeX dans des environnements serveur/sans interface graphique ?

Oui. L’affectation d’un OutputMemoryTerminal personnalisé ou l’implémentation de IOutputTerminal permet de rediriger tous les messages stdout/stderr du terminal vers le système de journalisation d’entreprise de votre serveur (par exemple, Log4j ou SLF4J).