Rugalmas TeX-bemenetek és munkakönyvtárak Java nyelven

Konfigurálja a bemeneti forrásokat és a virtuális fájlrendszer munkakönyvtárait TeX- és LaTeX-dokumentumok fordításához az Aspose.TeX for Java használatával. Adja át a TeX-forrásfájlokat, csomagokat, makrókat és beágyazott képeket közvetlenül helyi fájlrendszerekből, tömörített ZIP-archívumokból vagy egyéni memóriabeli streamekből anélkül, hogy asztali TeX-disztribúciókat (például MiKTeX-et vagy TeX Live-ot) kellene telepítenie.

 

TeX- vagy LaTeX-dokumentumok fordításakor a motornak hozzá kell férnie a fő forrásfájlokhoz (.tex), a hivatkozott aláfájlokhoz (\input{} vagy \include), a stílusokhoz (.sty), az osztályokhoz (.cls), a betűtípusokhoz és a képekhez.

Az Aspose.TeX for Java a TeX-bemeneti forrásokat absztrahált munkakönyvtárakba választja szét, amelyeket az IInputWorkingDirectory interfész képvisel:

  • A bemeneti munkakönyvtár Helyi fájlrendszer az InputFileSystemDirectory használatával közvetlenül a lemezen található mappákból olvassa be a TeX-forrásfájlokat és az erőforrásokat.
  • A bemeneti munkakönyvtár ZIP-archívum az InputZipDirectory használatával olyan önálló TeX-fordítást olvas be, amelyben minden függőség (.tex, .sty, képek) egyetlen .zip fájlban található.
  • A bemeneti munkakönyvtár Egyéni stream/memória az IInputWorkingDirector használatával virtualizált fájlrendszereket, adatbázis-BLOB-bemeneteket vagy felhőalapú tárhelystreameket (S3/Azure Blob) olvas be."

TeX-bemenet betöltése helyi fájlrendszer-könyvtárból

Adjon meg egy fizikai lemezen található mappát a TeX-motor bemeneti munkakönyvtáraként az InputFileSystemDirectory használatával.

import com.aspose.tex.*;
import java.io.IOException;

public class TeXInputFromFileSystem {
    public static void main(String[] args) throws IOException {
        // Create TeX options for LaTeX format using ObjectTeX engine
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Set the input working directory to a local file folder
        String inputDirPath = "C:/TeXProject/Input/";
        options.setInputWorkingDirectory(new InputFileSystemDirectory(inputDirPath));

        // Set output working directory for compiled results (PDF/XPS/Images)
        String outputDirPath = "C:/TeXProject/Output/";
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory(outputDirPath));

        // Run TeX compilation for 'main.tex'
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        System.out.println("TeX compilation from local directory completed successfully.");
    }
}

TeX-bemenet betöltése ZIP-archívumból

Fordítson önálló TeX-csomagokat közvetlenül egy .zip fájlból anélkül, hogy kibontaná azokat a lemezre az InputZipDirectory használatával.

import com.aspose.tex.*;
import java.io.FileInputStream;
import java.io.IOException;

public class TeXInputFromZipArchive {
    public static void main(String[] args) throws IOException {
        // Initialize LaTeX conversion options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Open input ZIP stream containing main.tex, packages, and assets
        FileInputStream zipStream = new FileInputStream("C:/TeXProject/ProjectBundle.zip");

        // Set input working directory to the ZIP archive stream
        options.setInputWorkingDirectory(new InputZipDirectory(zipStream, "subfolder_inside_zip"));

        // Define output directory on disk
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Execute TeX job referencing 'main.tex' inside the ZIP
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        zipStream.close();
        System.out.println("TeX compilation directly from ZIP archive completed.");
    }
}

TeX-forrás átadása memóriastreamen keresztül

Dinamikus LaTeX-generálás esetén (például szerveren renderelt jelentések vagy dinamikus egyenletmegjelenítés során) adjon át nyers karakterlánctartalmat vagy streameket közvetlenül a TeXJob számára.

import com.aspose.tex.*;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

public class TeXInputFromMemoryStream {
    public static void main(String[] args) throws Exception {
        // Create dynamic LaTeX content string
        String latexCode = "\\documentclass{article}\n" +
                           "\\begin{document}\n" +
                           "\\section{Dynamic Report}\n" +
                           "Hello World from Aspose.TeX for Java!\n" +
                           "\\end{document}";

        InputStream inputSteam = new ByteArrayInputStream(latexCode.getBytes(StandardCharsets.UTF_8));

        // Configure options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Run job passing stream directly
        TeXJob job = new TeXJob(inputSteam, new PdfDevice(), options);
        job.run();

        System.out.println("Dynamic LaTeX stream successfully compiled to PDF.");
    }
}

Telepítés és beállítás

Integrálja az Aspose.TeX for Java-t a projektjébe a 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. Szükségem van a MiKTeX, a TeX Live vagy külső futtatható bináris fájlok telepítésére?

Nem. Az Aspose.TeX for Java egy teljesen önálló Java-motor, amely natívan végzi a TeX/LaTeX elemzését, szedését és renderelését, külső natív futtatható fájlok használata nélkül.

2. Használhatok különböző bemeneti forrásokat a főfájlokhoz és a külső grafikákhoz/stílusokhoz?

Igen. Beállíthat egy elsődleges InputWorkingDirectory könyvtárat (például InputZipDirectory), és a TeXOptions konfigurációs beállításaival további keresési útvonalakat adhat meg a csomagok és betűtípusok számára.

3. Hogyan kezeli az Aspose.TeX a relatív elérési utakat a \input{} vagy \includegraphics{} makrókban?

A LaTeX-dokumentumokban meghatározott relatív elérési utak automatikusan feloldásra kerülnek az aktív IInputWorkingDirectory példány által megadott gyökérkönyvtárhoz képest.