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).