LaTeX en PDF | Aspose.TeX pour Python

Conversion de LaTeX en PDF

Examinons maintenant en profondeur le code Python qui offre l’approche la plus simple pour convertir LaTeX au format PDF.

1# Create conversion options for Object LaTeX format upon Object TeX engine extension.
2options = TeXOptions.console_app_options(TeXConfig.object_latex)
3# Specify a file system working directory for the output.
4options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
5# Initialize the options for saving in PDF format.
6options.save_options = PdfSaveOptions()
7# Run LaTeX to PDF conversion.
8TeXJob(path.join(Util.input_directory, "hello-world.ltx"), PdfDevice(), options).run()

Pour commencer, nous devons créer une instance de la classe TeXOptions. La méthode console_app_options() est la seule méthode statique qui accomplit cela, alors ne vous inquiétez pas de son nom. Cette méthode prend une instance object_latex de la classe TeXConfig, ce qui est parfait pour convertir un fichier LaTeX. Cette configuration demande au moteur Object TeX de charger le format Object LaTeX et d’être prêt à traiter le fichier LaTeX. Le format Object LaTeX est essentiellement le même que le format LaTeX, mais il utilise des primitives spécifiques à Object TeX pour définir les métriques de la page.

La première option qui doit être spécifiée est output_working_directory, qui détermine l’emplacement où la sortie TeX sera enregistrée. Si nécessaire, vous pouvez trouver plus d’informations sur le concept de répertoire de sortie dans Aspose.TeX. Dans ce cas particulier, nous utilisons la classe OutputFileSystemDirectory, qui nous permet d’écrire la sortie dans un répertoire ou un dossier désigné.

La deuxième option nécessite une instance de la classe SaveOptions, qui détermine comment le modèle objet est transformé dans le format souhaité. Dans notre cas, lorsque nous convertissons LaTeX en PDF, il fait référence à une instance de la classe PdfSaveOptions.

Pour convertir un fichier LaTeX stocké dans le système de fichiers, nous devons créer une instance de la classe TeXJob en utilisant le constructeur qui prend le chemin complet du fichier comme paramètre. Si nous ne précisons pas le chemin complet, le moteur recherchera le fichier dans le répertoire courant (qui est le répertoire de travail du script) et risque de ne pas le trouver. Cependant, nous pouvons omettre l’extension si notre fichier porte l’extension « .tex », car le moteur l’ajoutera automatiquement. Le deuxième argument du constructeur est une instance de la classe Device. Dans notre cas, puisque nous convertissons LaTeX en PDF, il s’agit d’une instance de la classe PdfDevice. Enfin, nous passons les options de conversion récemment préparées comme dernier argument.

Il ne reste plus qu’à exécuter le travail.

Après l’exécution, qu’elle ait réussi ou non, la première chose que nous verrons est la sortie du terminal. Si l’exécution réussit, le résultat ressemblera à ceci :

 1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
 2entering extended mode
 3
 4(<input_directory>\hello-world.ltx
 5LaTeX2e <2011/06/27>
 6(article.cls
 7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
 8(size10.clo))
 9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.pdf (1 page).
13Transcript written on hello-world.log.

Dans le dossier que nous avons spécifié comme répertoire de sortie, nous trouverons le fichier de transcription et, le voici !, le fichier PDF de sortie principal, entre autres résultats du travail du moteur.

Une autre façon d’écrire le fichier PDF de sortie principal

La classe PdfDevice a un autre constructeur qui nous permet d’obtenir différemment le fichier PDF résultant.

 1# Create the stream to write the PDF file to.
 2with open(path.join(Util.output_directory, "any-name.pdf"), "wb") as pdf_stream:
 3    # Create conversion options for Object LaTeX format upon Object TeX engine extension.
 4    options = TeXOptions.console_app_options(TeXConfig.object_latex)
 5    # Specify a file system working directory for the output.
 6    options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
 7    # Initialize the options for saving in PDF format.
 8    options.save_options = PdfSaveOptions()
 9    # Run LaTeX to PDF conversion.
10    TeXJob(path.join(Util.input_directory, "hello-world.ltx"), PdfDevice(pdf_stream), options).run()

Le fichier PDF de sortie principal sera nommé « any-name.pdf » et sera situé dans le répertoire spécifié. Cependant, contrairement à la sortie d’image, il n’y aura aucun autre fichier PDF dans le répertoire de sortie spécifié par les options de conversion. L’exception est si any-name.pdf se trouve dans le même répertoire du système de fichiers attribué à l’option output_working_directory à l’aide de OutputFileSystemDirectory.

À propos des options de saisie

Si notre fichier d’entrée principal nécessite des dépendances, telles que des packages qui ne sont pas inclus dans le système LaTeX de base et les packages pris en charge, il est nécessaire de définir l’option required_input_directory de la même manière que nous définissons l’option output_working_directory et placez les dépendances dans ce répertoire. Les dépendances peuvent être organisées en sous-répertoires comme vous le souhaitez. De plus, si nous avons nos propres fichiers à inclure dans le processus de composition, tels que des fichiers graphiques externes, nous devons également définir le input_working_directory en utilisant le chemin d’accès à l’emplacement où ces fichiers sont stockés. Nous pouvons également placer le fichier d’entrée principal dans le répertoire d’entrée et spécifier le chemin relatif dans la méthode run(), ou ne spécifier aucun chemin si le fichier d’entrée principal se trouve à la racine. Pour plus de détails sur le concept de répertoire d’entrée dans Aspose.TeX pour Python et les implémentations fournies, veuillez vous référer à ici.

Il existe également d’autres options de travail TeX discutées.

Vous pouvez également explorer l’ application Web gratuite pour la conversion LaTeX en PDF, développée à l’aide de l’API Aspose.TeX pour .NET.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.