LaTeX vers l'image | Aspose.TeX pour Python
Aspose.TeX pour Python nous offre la possibilité de convertir des fichiers LaTeX en différents formats d’images raster.
Conversion de LaTeX en PNG
Examinons maintenant en profondeur le code Python qui offre l’approche la plus simple pour convertir LaTeX au format PNG.
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 PNG format.
6options.save_options = PngSaveOptions()
7
8# Run LaTeX to PNG conversion.
9TeXJob(path.join(Util.input_directory, "hello-world.ltx"), ImageDevice(True), options).run()
Pour commencer, nous devons créer une instance de la classe TeXOptions en utilisant la méthode console_app_options(). Ne vous inquiétez pas du nom, c’est juste la méthode statique qui crée l’instance. Cette méthode prend l’instance object_latex de la classe TeXConfig, ce qui est parfait pour convertir un fichier LaTeX. Cette configuration configure le moteur Object TeX pour charger le format Object LaTeX et ê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 des options nécessaires est output_working_directory, qui spécifie l’emplacement où la sortie TeX sera enregistrée. Si vous êtes intéressé, vous pouvez en savoir plus sur le concept du répertoire de sortie dans Aspose.TeX pour Python. Dans cet exemple particulier, nous utilisons la classe OutputFileSystemDirectory pour écrire la sortie dans un répertoire ou un dossier spécifique.
La deuxième option est une instance de la classe SaveOptions, qui est chargée de gérer la conversion du modèle objet vers le format souhaité. Dans ce cas, puisque nous convertissons LaTeX en PNG, nous utilisons l’instance de classe PngSaveOptions, qui nous permet de spécifier la résolution des images de sortie.
Ensuite, nous créons une instance de la classe TeXJob. Dans ce cas, puisque nous souhaitons convertir un fichier LaTeX stocké dans le système de fichiers, nous utilisons cette version du constructeur. Nous devons fournir le chemin complet du fichier, sinon le moteur le recherchera dans le répertoire courant (qui est le répertoire de travail du script) et risque de ne pas le trouver. Cependant, l’extension « .tex » peut être omise car le moteur l’ajoutera automatiquement. Le deuxième argument du constructeur est une instance de la classe Device. Puisque nous convertissons LaTeX en PNG, il s’agit d’une instance de classe ImageDevice, commune à tous les formats d’image pris en charge. Enfin, nous transmettons les options de conversion préparées comme dernier argument.
Il ne reste plus qu’à exécuter le travail.
Une fois le travail exécuté, quel que soit son succès ou son échec, la première sortie que nous rencontrerons est la sortie du terminal. En cas d’exécution réussie, le résultat ressemblera à ce qui suit :
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.png (1 page).
13Transcript written on hello-world.log.
Les résultats du travail du moteur peuvent être trouvés dans le répertoire de sortie que nous avons spécifié. Cela inclura le fichier de transcription et, plus important encore, le(s) fichier(s) image PNG de sortie principal.
Une autre façon d’écrire le(s) fichier(s) PNG de sortie principal
Il existe une méthode alternative pour obtenir des données d’image sous la forme d’un tableau de tableaux d’octets, où chaque tableau de la deuxième dimension représente les données d’image d’une page distincte.
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 PNG format.
6so = PngSaveOptions()
7so.device_writes_images = False # Run LaTeX to PNG conversion.
8options.save_options = so
9device = ImageDevice(True)
10TeXJob(path.join(Util.input_directory, "hello-world.ltx"), device, options).run()
11
12# Save pages file by file.
13for i in range(len(device.result)):
14 with open(path.join(Util.output_directory, f"page-{(i + 1)}" + ".png"), "wb") as fs:
15 fs.write(device.result[i][0:len(device.result[i])])
Le(s) fichier(s) “page-n.png” peuvent être écrits dans n’importe quel chemin spécifié. Contrairement à la Sortie PDF, ces fichiers PNG dupliqueront les fichiers PNG de sortie écrits dans le répertoire de sortie.
Concernant les 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 ou des packages pris en charge, nous devons 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 selon les besoins. Si nous devons inclure nos fichiers dans le processus de composition, tels que des fichiers graphiques externes, nous devons également définir le
input_working_directory sur 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 dans le répertoire racine. Il y a également plus de détails sur le
concept de répertoire d’entrée dans Aspose.TeX et les implémentations fournies décrites.
Découvrez également les autres options de travail TeX ici.
Vous pouvez également explorer l’ application Web gratuite pour la conversion LaTeX en PNG, développée à l’aide de l’ API Aspose.TeX pour .NET.
Ci-dessous, nous expliquerons brièvement la conversion de LaTeX vers d’autres formats d’images raster pris en charge, sans trop entrer dans les détails car il n’y a pas de différences significatives. La seule variation réside dans le type de la propriété save_options dans les options de conversion.
Conversion de LaTeX en JPG
1# Create conversion options instance.
2...
3# Initialize the options for saving in JPEG format.
4options.save_options = JpegSaveOptions()
Vous pouvez également explorer l’ application Web gratuite pour la conversion LaTeX en JPG, développée à l’aide de l’API Aspose.TeX pour .NET.
Conversion de LaTeX en TIFF
1# Create conversion options instance.
2...
3# Initialize the options for saving in TIFF format.
4options.save_options = TiffSaveOptions()
Vous pouvez également explorer l’ application Web gratuite pour la conversion LaTeX vers TIFF, développée à l’aide de l’API Aspose.TeX pour .NET.
Conversion de LaTeX en BMP
1# Create conversion options instance.
2...
3# Initialize the options for saving in BMP format.
4options.save_options = BmpSaveOptions()
Vous pouvez également explorer l’ application Web gratuite pour la conversion LaTeX en BMP, développée à l’aide de l’API Aspose.TeX pour .NET.
Conversion de LaTeX en SVG
Un autre format cible pris en charge est SVG. Scalable Vector Graphics (SVG) est un format d’image vectorielle basé sur XML utilisé pour définir des graphiques bidimensionnels. Il prend en charge l’interactivité et l’animation.
Les images SVG sont stockées dans des fichiers texte XML et définies dans un format graphique vectoriel. Cela signifie que la taille des images SVG peut être redimensionnée sans perte de qualité, et que les fichiers SVG eux-mêmes peuvent être recherchés, indexés, scriptés et compressés. Les fichiers texte XML peuvent être créés et modifiés à l’aide d’éditeurs de texte ou d’éditeurs de graphiques vectoriels, et ils peuvent être rendus par les navigateurs Web les plus couramment utilisés.
L’API Aspose.SVG offre une gamme de fonctionnalités pour travailler avec SVG, telles que la création, le chargement, la modification et la conversion de documents SVG.
La conversion de LaTeX en SVG est tout aussi simple que la conversion aux formats d’image raster, la seule différence étant que les save_options doivent être définies sur une instance de la classe SvgSaveOptions et que Le périphérique doit être remplacé par une instance de la classe SvgDevice.
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 SVG format.
6options.save_options = SvgSaveOptions()
7# Run LaTeX to SVG conversion.
8TeXJob(path.join(Util.input_directory, "hello-world.ltx"), SvgDevice(), options).run()
Vous pouvez également explorer l’ application Web gratuite pour la conversion LaTeX en SVG, développée à l’aide de l’API Aspose.TeX pour .NET.