Output TeX yang fleksibel dan direktori kerja output di Java
Konfigurasikan target output dan mekanisme penyimpanan untuk kompilasi dokumen TeX dan LaTeX menggunakan Aspose.Font untuk Java. Simpan dokumen yang dirender (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) dan artefak kompilasi tambahan (.log, .aux) langsung ke folder disk fisik, arsip ZIP terkompresi, atau stream kustom dalam memori tanpa memerlukan instalasi TeX desktop.
Selama kompilasi, mesin typesetting TeX menghasilkan dua kategori output utama:
- File output utama: Dokumen target (misalnya,
.pdf,.xps, atau rangkaian gambar). - File output tambahan: Log (
.log), data tambahan (.aux), dan file perantara yang dihasilkan oleh makro LaTeX.
Aspose.TeX untuk Java mengenkapsulasi tujuan output ke dalam direktori kerja abstrak melalui antarmuka IOutputWorkingDirectory, yang memungkinkan pengembang mengarahkan stream output secara dinamis. Jenis direktori output yang didukung:
- Direktori kerja output Sistem file lokal menggunakan
OutputFileSystemDirectoryuntuk menyimpan dokumen yang dirender dan file log langsung ke folder disk lokal. - Direktori kerja output Arsip ZIP menggunakan
OutputZipDirectoryuntuk mengemas dokumen output, log, dan aset yang dihasilkan ke dalam satu file.zip. - Direktori kerja output Stream/memori kustom menggunakan
IOutputWorkingDirectoryuntuk menangkap output secara langsung di memori, BLOB database, atau stream cloud (S3/Azure Blob).
Simpan output TeX ke direktori sistem file lokal
Arahkan output dokumen utama dan log kompilasi tambahan ke folder fisik menggunakan OutputFileSystemDirectory.
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);
}
}Simpan output TeX langsung ke arsip ZIP
Kemas dokumen yang dirender bersama log perantara dan gambar yang dihasilkan ke dalam file ZIP terkompresi menggunakan OutputZipDirectory.
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.");
}
}Alirkan output TeX ke memori/ByteArray
Untuk aplikasi cloud atau web, tangkap dokumen yang dirender secara langsung sebagai stream byte tanpa menulis file ke penyimpanan disk lokal.
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.");
}
}Instalasi dan Penyiapan
Integrasikan Aspose.TeX untuk Java ke dalam proyek Anda menggunakan Maven:
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>
Pertanyaan yang Sering Diajukan
1. Perangkat target output apa saja yang didukung dalam Aspose.TeX for Java?
Aspose.TeX mendukung beberapa perangkat output, termasuk PdfDevice (dokumen PDF), XpsDevice (dokumen XPS), SvgDevice (grafik vektor yang dapat diskalakan), dan ImageDevice (gambar raster seperti PNG, JPEG, TIFF, dan BMP).
2. Di mana file kompilasi tambahan (.log, .aux) disimpan?
File tambahan ditulis ke direktori yang ditentukan dalam TeXOptions.setOutputWorkingDirectory(). Jika Anda menggunakan OutputZipDirectory, file .log dan .aux akan dikemas langsung ke dalam arsip ZIP bersama dokumen yang telah dirender.
3. Bisakah saya menekan atau mengalihkan file output log?
Ya. Anda dapat menyesuaikan penanganan output terminal/log melalui TeXOptions.setTerminalOut() atau menetapkan implementasi IOutputWorkingDirectory khusus untuk membuang atau mengalihkan log kompilasi.