Créer un PDF à partir de LaTeX en Java

LaTeX est largement utilisé pour créer de la documentation technique et scientifique. Les fichiers LaTeX (TEX ou LTX) sont des documents source contenant des commandes permettant de spécifier le format du document, notamment du texte, des symboles, des expressions mathématiques et des graphiques. Nous pouvons facilement générer un document PDF à partir de la source LaTeX par programme. PDF permet de partager des documents dans un format en lecture seule sans compromettre leur style ou leur mise en page. Dans cet article, nous allons apprendre à créer un document PDF à partir du fichier source LaTeX en Java.

Les sujets suivants seront traités dans cet article :

API Java pour créer un PDF à partir de LaTeX

Pour créer des documents PDF à partir de fichiers source LaTeX, nous utiliserons l’API Aspose.TeX for Java. Il permet de composer des fichiers TeX dans différents formats de fichiers tels que PDF, XPS ou des images. Veuillez soit télécharger le JAR de l’API ou ajouter la configuration pom.xml suivante dans une application Java basée sur Maven.

Repository:

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

Dependency:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>21.11</version>
    <type>jar</type>
</dependency>

Créer un PDF à partir d’un fichier LaTeX TeX en Java

Nous pouvons créer un document PDF à partir d’un fichier LaTeX (TeX) en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe TeXOptions en utilisant la méthode consoleAppOptions().
  2. Définissez la configuration de TeX sur TeXConfig.objectLaTeX().
  3. Ensuite, définissez les répertoires de travail d’entrée et de sortie.
  4. Ensuite, spécifiez la console ou le flux de mémoire comme terminal de sortie.
  5. Après cela, définissez les options de rendu au format PDF.
  6. Enfin, appelez la méthode run() pour l’instance de classe TexJob nouvellement créée avec le PDF de sortie et l’objet de classe PdfDevice comme arguments.

L’exemple de code suivant montre comment créer un PDF à partir d’un fichier TeX à l’aide de Java.

// Cet exemple de code montre comment créer un PDF à partir d'un fichier source TeX.
// Directeur de travail
String dataDir = "D:\\Files\\Tex\\";

// Créez des options de composition.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Spécifiez un répertoire de travail du système de fichiers pour l'entrée.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Spécifiez un répertoire de travail du système de fichiers pour la sortie.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Spécifiez le flux de mémoire comme terminal de sortie.
options.setTerminalOut(new OutputMemoryTerminal());

// Définissez les options de rendu au format PDF.
options.setSaveOptions(new PdfSaveOptions());

// Exécutez la composition.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Créer un PDF à partir d'un fichier LaTeX TeX en Java

Créer un PDF à partir d’un fichier LaTeX TeX en Java.

Créer un PDF à partir d’un fichier LTX en Java

LaTeX utilise une extension de fichier LTX pour composer des balises et des propriétés qui définissent la structure et le contenu du document. Nous pouvons également créer un fichier PDF à partir d’un fichier LaTeX (LTX) en suivant les étapes mentionnées précédemment. Cependant, nous avons juste besoin de saisir le fichier source avec l’extension .ltx à la dernière étape.

L’exemple de code suivant montre comment créer un fichier PDF à partir d’un fichier LTX à l’aide de Java.

// Cet exemple de code montre comment créer un PDF à partir d'un fichier source LTX.
// Directeur de travail
String dataDir = "D:\\Files\\Tex\\";

// Créez des options de composition.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Spécifiez un répertoire de travail du système de fichiers pour l'entrée.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Spécifiez un répertoire de travail du système de fichiers pour la sortie.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Spécifiez le flux de mémoire comme terminal de sortie.
options.setTerminalOut(new OutputMemoryTerminal());

// Définissez les options de rendu au format PDF.
options.setSaveOptions(new PdfSaveOptions());

// Exécutez la composition.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Convertir TeX en XPS en utilisant Java

Nous pouvons également convertir le fichier LaTeX (TeX) en XPS en suivant les étapes mentionnées précédemment. Cependant, nous avons juste besoin de définir les XpsSaveOptions au lieu de PdfSaveOptions à l’étape # 5.

L’exemple de code suivant montre comment convertir TeX en XPS à l’aide de Java.

// Cet exemple de code montre comment convertir un Tex en XPS.
// Directeur de travail
String dataDir = "D:\\Files\\Tex\\";

// Créez des options de composition.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Spécifiez un répertoire de travail du système de fichiers pour l'entrée.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Spécifiez un répertoire de travail du système de fichiers pour la sortie.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Spécifiez le flux de mémoire comme terminal de sortie.
options.setTerminalOut(new OutputMemoryTerminal());

// Définissez les options de rendu au format XPS.
options.setSaveOptions(new XpsSaveOptions());

// Exécutez la composition.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Convertir le répertoire ZIP TeX en répertoire ZIP PDF à l’aide de Java

Nous pouvons convertir plusieurs fichiers TeX compressés dans une archive ZIP en PDF en une seule fois en suivant les étapes ci-dessous :

  1. Tout d’abord, ouvrez les flux sur les archives ZIP en tant que répertoire de travail d’entrée et de sortie.
  2. Ensuite, créez une instance de la classe TeXOptions en utilisant la méthode consoleAppOptions().
  3. Ensuite, définissez la configuration de TeX sur TeXConfig.objectLaTeX().
  4. Ensuite, définissez les répertoires ZIP d’entrée et de sortie.
  5. Ensuite, spécifiez la console ou le flux de mémoire comme terminal de sortie.
  6. Après cela, définissez les options de rendu au format PDF.
  7. Enfin, appelez la méthode run() pour l’instance de classe TexJob nouvellement créée avec le PDF de sortie et l’objet de classe PdfDevice comme arguments.

L’exemple de code suivant montre comment convertir une archive TeX ZIP en une archive PDF ZIP à l’aide de Java.

// Cet exemple de code montre comment convertir un répertoire TeX ZIP en un répertoire PDF ZIP.
// Directeur de travail
String dataDir = "D:\\Files\\Tex\\";

// Ouvrez le flux sur l'archive ZIP qui servira de répertoire de travail d'entrée.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// Ouvrez le flux sur l'archive ZIP qui servira de répertoire de travail de sortie.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // Créez des options de conversion pour le format ObjectTeX par défaut sur l'extension du moteur ObjectTeX.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // Spécifiez un répertoire de travail d'archive ZIP pour l'entrée.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // Spécifiez un répertoire de travail d'archive ZIP pour la sortie.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // Spécifiez la console comme terminal de sortie.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // Définissez les options d'enregistrement.
    options.setSaveOptions(new PdfSaveOptions());

    // Exécutez le travail.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // Pour une sortie conséquente, regardez écrire. 
    options.getTerminalOut().getWriter().newLine();

    // Finaliser l'archive ZIP de sortie.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
Convertir une archive TeX ZIP en une archive PDF ZIP

Convertissez une archive TeX ZIP en une archive PDF ZIP.

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitations d’évaluation.

Conclusion

Dans cet article, nous avons appris à :

  • générer une sortie PDF à partir du fichier source LaTeX en Java ;
  • créer un document de sortie XPS à partir du fichier TeX par programmation ;
  • convertir une archive TeX ZIP en une archive PDF ZIP en utilisant Java.

En outre, vous pouvez en savoir plus sur l’API Aspose.TeX for Java en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également