Incorporer des graphiques dans des documents LaTeX avec Java
Incorporez des images matricielles haute résolution (PNG, JPEG, BMP) et des figures vectorielles (EPS, PDF) dans des documents LaTeX à l’aide d’Aspose.TeX for Java. En utilisant des packages LaTeX natifs tels que graphicx et en configurant les répertoires de travail d’entrée, les développeurs peuvent compiler facilement des documents contenant des graphiques, des figures, des photos et des graphiques vectoriels intégrés pour obtenir des sorties PDF, XPS et image prêtes pour la publication.
Lors de la compilation de documents LaTeX contenant des éléments graphiques, Aspose.TeX for Java résout les fichiers image référencés par rapport au IInputWorkingDirectory configuré.
- Pour les photos, les captures d’écran matricielles et les graphiques Web, choisissez les formats PNG/JPEG intégrés à l’aide des commandes
\usepackage{graphicx}-\includegraphics{figure.png}. - Pour les diagrammes vectoriels haute précision et les graphiques CAO/scientifiques, choisissez le format EPS intégré à l’aide des commandes
\usepackage{graphicx}-\includegraphics{diagram.eps}. - Pour l’incorporation d’images bitmap anciennes, choisissez le format BMP/TIFF intégré à l’aide des commandes
\usepackage{graphicx}-\includegraphics{image.bmp}.
Incorporer des images matricielles (PNG/JPEG) dans LaTeX
Pour incorporer des images matricielles standard, incluez le package graphicx dans le préambule de votre document LaTeX et spécifiez le nom du fichier image cible dans \includegraphics{}.
import com.aspose.tex.*;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
public class EmbedRasterGraphicsInLaTeX {
public static void main(String[] args) throws Exception {
// Create LaTeX document string referencing an image file 'sample.png'
String latexCode = "\\documentclass{article}\n" +
"\\usepackage{graphicx}\n" +
"\\begin{document}\n" +
"\\section{Graphics Rendering Demo}\n" +
"Here is an embedded raster image:\n\n" +
"\\begin{figure}[h]\n" +
" \\centering\n" +
" \\includegraphics[width=0.5\\textwidth]{sample.png}\n" +
" \\caption{Sample PNG Image in LaTeX}\n" +
"\\end{figure}\n" +
"\\end{document}";
ByteArrayInputStream inputStream = new ByteArrayInputStream(latexCode.getBytes(StandardCharsets.UTF_8));
// Initialize conversion options for ObjectLaTeX
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Set input working directory where 'sample.png' is located
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Images/"));
// Set output working directory for compiled PDF
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Execute TeX job
TeXJob job = new TeXJob(inputStream, new PdfDevice(), options);
job.run();
System.out.println("LaTeX document with embedded PNG successfully compiled to PDF.");
}
}Incorporer des graphiques vectoriels (EPS) dans LaTeX
Aspose.TeX traite nativement les graphiques Encapsulated PostScript (.eps) lors de la compilation avec le moteur de format ObjectLaTeX.
import com.aspose.tex.*;
import java.io.IOException;
public class EmbedEPSGraphicsInLaTeX {
public static void main(String[] args) throws IOException {
// Initialize options for LaTeX format engine
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Configure directory paths containing .tex source and .eps graphics
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/SourceWithEPS/"));
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Run job for 'document_with_eps.tex' containing \includegraphics{vector_chart.eps}
TeXJob job = new TeXJob("document_with_eps", new PdfDevice(), options);
job.run();
System.out.println("LaTeX document with vector EPS figure compiled successfully.");
}
}Charger des ressources graphiques depuis des archives ZIP
Regroupez les fichiers sources TeX, les packages de macros et les images dynamiques dans une archive .zip, puis indiquez à Aspose.TeX de résoudre les dépendances graphiques directement depuis la mémoire ou un stockage compressé.
import com.aspose.tex.*;
import java.io.FileInputStream;
public class EmbedGraphicsFromZip {
public static void main(String[] args) throws Exception {
// Initialize LaTeX engine options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Open input ZIP archive containing 'main.tex' and 'figure.png'
FileInputStream zipStream = new FileInputStream("C:/TeXProject/ProjectWithAssets.zip");
options.setInputWorkingDirectory(new InputZipDirectory(zipStream, "src"));
// Define output destination
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Run compilation job
TeXJob job = new TeXJob("main", new PdfDevice(), options);
job.run();
zipStream.close();
System.out.println("Compiled LaTeX document with images embedded directly from ZIP file.");
}
}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).