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
InputFileSystemDirectoryhaszná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
InputZipDirectoryhaszná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
IInputWorkingDirectorhaszná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.