Grafikák beágyazása LaTeX-dokumentumokba Java használatával
Nagy felbontású raszterképeket (PNG, JPEG, BMP) és vektorgrafikákat (EPS, PDF) ágyazhat be LaTeX-dokumentumokba az Aspose.TeX for Java használatával. Az olyan natív LaTeX-csomagok, mint a graphicx alkalmazásával és a bemeneti munkakönyvtárak konfigurálásával a fejlesztők zökkenőmentesen fordíthatnak beágyazott diagramokat, ábrákat, fényképeket és vektorgrafikákat tartalmazó dokumentumokat, amelyekből publikálásra kész PDF-, XPS- és képkimenetek hozhatók létre.
Grafikus elemeket tartalmazó LaTeX-dokumentumok fordításakor az Aspose.TeX for Java a hivatkozott képfájlokat a konfigurált IInputWorkingDirectory könyvtárhoz képest oldja fel.
- Fényképekhez, raszteres képernyőképekhez és webes grafikákhoz válassza a PNG/JPEG formátumokat, amelyeket a
\usepackage{graphicx}-\includegraphics{figure.png}parancsokkal ágyazhat be. - Nagy pontosságú vektordiagramokhoz, valamint CAD- és tudományos ábrákhoz válassza az EPS formátumot, amelyet a
\usepackage{graphicx}-\includegraphics{diagram.eps}parancsokkal ágyazhat be. - Régebbi bittérképes képek beágyazásához válassza a BMP/TIFF formátumot, amelyet a
\usepackage{graphicx}-\includegraphics{image.bmp}parancsokkal ágyazhat be.
Raszterképek (PNG/JPEG) beágyazása LaTeX-be
A szabványos raszterképek beágyazásához vegye fel a graphicx csomagot LaTeX-dokumentuma preambulumába, és adja meg a célként megadott képfájl nevét a \includegraphics{} parancsban.
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.");
}
}Vektorgrafikák (EPS) beágyazása LaTeX-be
Az Aspose.TeX natív módon dolgozza fel az Encapsulated PostScript (.eps) grafikákat, amikor a fordítás a ObjectLaTeX formátummotoron keresztül történik.
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.");
}
}Grafikus erőforrások betöltése ZIP-archívumokból
Csomagolja a TeX-forrásfájlokat, makrócsomagokat és dinamikus képeket egyetlen .zip archívumba, majd utasítsa az Aspose.TeX-et, hogy a grafikus függőségeket közvetlenül a memóriából vagy tömörített tárhelyről oldja fel.
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.");
}
}Telepítés és beállítás
Integrálja az Aspose.TeX for Java-t projektjébe Maven használatával:
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>
Gyakran ismételt kérdések
1. Mi történik, ha nem adok meg feladatnevet a TeXOptions beállításban?
Ha a setJobName() segítségével nincs explicit módon beállítva feladatnév, az Aspose.TeX alapértelmezés szerint a fő bemeneti fájl nevét használja (például a main.tex fájlból main.pdf és main.log jön létre).
2. Hogyan tilthatom le teljesen a fordítási .log fájl létrehozását?
Állítsa be az options.setLogOutput(false) értéket a TeXJob létrehozása és futtatása előtt. Ez megakadályozza, hogy a motor kiegészítő naplófájlokat hozzon létre a lemezen vagy a kimeneti munkakönyvtárban.
3. Rögzíthetem a TeX terminálüzeneteit szerver-/headless környezetekben?
Igen. Egy egyéni OutputMemoryTerminal hozzárendelésével vagy az IOutputTerminal implementálásával az összes terminál stdout/stderr üzenetet átirányíthatja a szerver vállalati naplózási rendszerébe (például Log4j vagy SLF4J).