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

Konfigurálja a TeX- és LaTeX-dokumentumok fordításának kimeneti célhelyeit és tárolási mechanizmusait az Aspose.Font for Java használatával. Mentse a renderelt dokumentumokat (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) és a fordítás kiegészítő fájljait (.log, .aux) közvetlenül fizikai lemezmappákba, tömörített ZIP-archívumokba vagy egyéni memóriabeli adatfolyamokba anélkül, hogy asztali TeX-telepítésre lenne szükség.

 

A fordítás során a TeX szedőmotor két fő kimeneti kategóriát hoz létre:

  • Elsődleges kimeneti fájlok: A célként megadott dokumentum (például .pdf, .xps vagy képsorozatok).
  • Kiegészítő kimeneti fájlok: Naplófájlok (.log), kiegészítő adatok (.aux) és a LaTeX-makrók által létrehozott köztes fájlok.

Az Aspose.TeX for Java az IOutputWorkingDirectory interfészen keresztül absztrakt munkakönyvtárakba foglalja a kimeneti célhelyeket, lehetővé téve a fejlesztők számára a kimeneti adatfolyamok dinamikus irányítását. Támogatott kimeneti könyvtártípusok:

  • A Helyi fájlrendszer kimeneti munkakönyvtár az OutputFileSystemDirectory használatával közvetlenül a helyi lemez mappáiba menti a renderelt dokumentumokat és naplófájlokat.
  • A ZIP-archívum kimeneti munkakönyvtár az OutputZipDirectory használatával egyetlen .zip fájlba csomagolja a kimeneti dokumentumokat, naplókat és a létrehozott erőforrásokat.
  • Az Egyéni adatfolyam/memória kimeneti munkakönyvtár az IOutputWorkingDirectory használatával közvetlenül a memóriába, adatbázis-BLOB-okba vagy felhőalapú adatfolyamokba (S3/Azure Blob) rögzíti a kimenetet.

TeX-kimenet mentése helyi fájlrendszer-könyvtárba

Irányítsa az elsődleges dokumentumkimeneteket és a kiegészítő fordítási naplókat egy fizikai mappába az OutputFileSystemDirectory használatával.

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

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

        // Set input working directory
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));

        // Set output working directory for compiled documents and logs
        String outputDirPath = "C:/TeXProject/Output/";
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory(outputDirPath));

        // Execute TeX job producing PDF output
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        System.out.println("TeX compilation complete. Outputs saved to: " + outputDirPath);
    }
}

TeX-kimenet közvetlen mentése ZIP-archívumba

Csomagolja a renderelt dokumentumokat a köztes naplókkal és a létrehozott képekkel együtt egy tömörített ZIP-fájlba az OutputZipDirectory használatával.

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

public class TeXOutputToZipArchive {
    public static void main(String[] args) throws IOException {
        // Initialize LaTeX conversion options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));

        // Create output stream for destination ZIP file
        FileOutputStream zipStream = new FileOutputStream("C:/TeXProject/OutputBundle.zip");

        // Set output working directory to ZIP stream
        options.setOutputWorkingDirectory(new OutputZipDirectory(zipStream));

        // Run job targeting PDF rendering
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        zipStream.close();
        System.out.println("TeX outputs and logs successfully bundled into OutputBundle.zip.");
    }
}

TeX-kimenet továbbítása memóriába/ByteArray-be

Felhőalapú vagy webalkalmazások esetén rögzítse a renderelt dokumentumokat közvetlenül bájtfolyamokként anélkül, hogy fájlokat kellene írnia a helyi lemeztárhelyre.

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

public class TeXOutputToMemoryStream {
    public static void main(String[] args) throws Exception {
        // Configure conversion options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));

        // Initialize memory output stream device
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        
        // Configure output working directory for log/auxiliary files
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Logs/"));

        // Run compilation directing PDF output to byte array stream
        TeXJob job = new TeXJob("main", new PdfDevice(outputStream), options);
        job.run();

        byte[] pdfBytes = outputStream.toByteArray();
        System.out.println("Generated PDF size in memory: " + pdfBytes.length + " bytes.");
    }
}

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

Integrálja az Aspose.TeX for Java könyvtárat a 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. Milyen kimeneti céleszközöket támogat az Aspose.TeX for Java?

Az Aspose.TeX többféle kimeneti eszközt támogat, többek között a PdfDevice (PDF-dokumentumok), az XpsDevice (XPS-dokumentumok), az SvgDevice (méretezhető vektorgrafikák) és az ImageDevice (raszterképek, például PNG, JPEG, TIFF és BMP) eszközöket.

2. Hol kerülnek mentésre a fordítás kiegészítő fájljai (.log, .aux)?

A kiegészítő fájlok a TeXOptions.setOutputWorkingDirectory() által megadott könyvtárba kerülnek. Ha OutputZipDirectory könyvtárat használ, a .log és .aux fájlok közvetlenül a ZIP-archívumba kerülnek a renderelt dokumentum mellé.

3. Letilthatom vagy átirányíthatom a naplófájlok kimenetét?

Igen. A terminál-/naplókimenet kezelését a TeXOptions.setTerminalOut() segítségével testreszabhatja, vagy egy egyéni IOutputWorkingDirectory implementációt rendelhet hozzá a fordítási naplók elvetéséhez vagy átirányításához.