Java’da esnek TeX çıktıları ve çıktı çalışma dizinleri
Aspose.Font for Java kullanarak TeX ve LaTeX belgelerinin derlenmesi için çıktı hedeflerini ve depolama mekanizmalarını yapılandırın. İşlenmiş belgeleri (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) ve yardımcı derleme yapıtlarını (.log, .aux) masaüstü TeX yüklemelerine gerek kalmadan doğrudan fiziksel disk klasörlerine, sıkıştırılmış ZIP arşivlerine veya özel bellek içi akışlara kaydedin.
Derleme sırasında TeX dizgi motoru iki ana çıktı kategorisi oluşturur:
- Birincil çıktı dosyaları: Hedef belge (örneğin,
.pdf,.xpsveya görüntü dizileri). - Yardımcı çıktı dosyaları: Günlükler (
.log), yardımcı veriler (.aux) ve LaTeX makroları tarafından oluşturulan ara dosyalar.
Aspose.TeX for Java, IOutputWorkingDirectory arayüzü aracılığıyla çıktı hedeflerini soyut çalışma dizinleri içinde kapsüller ve geliştiricilerin çıktı akışlarını dinamik olarak yönlendirmesine olanak tanır. Desteklenen çıktı dizini türleri:
- Çıktı çalışma dizini Yerel dosya sistemi, işlenmiş belgeleri ve günlük dosyalarını doğrudan yerel disk klasörlerine kaydetmek için
OutputFileSystemDirectorykullanır. - Çıktı çalışma dizini ZIP arşivi, çıktı belgelerini, günlükleri ve oluşturulan varlıkları tek bir
.zipdosyasında paketlemek içinOutputZipDirectorykullanır. - Çıktı çalışma dizini Özel akış/bellek, çıktıyı doğrudan bellekte, veritabanı BLOB’larında veya bulut akışlarında (S3/Azure Blob) yakalamak için
IOutputWorkingDirectorykullanır.
TeX çıktısını yerel dosya sistemi dizinine kaydetme
Birincil belge çıktılarını ve yardımcı derleme günlüklerini OutputFileSystemDirectory kullanarak fiziksel bir klasöre yönlendirin.
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 çıktısını doğrudan ZIP arşivine kaydetme
İşlenmiş belgeleri ara günlükler ve oluşturulan görüntülerle birlikte OutputZipDirectory kullanarak sıkıştırılmış bir ZIP dosyasında paketleyin.
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 çıktısını belleğe/ByteArray'e aktarma
Bulut veya web uygulamaları için işlenmiş belgeleri yerel disk depolama alanına dosya yazmadan doğrudan bayt akışları olarak yakalayın.
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.");
}
}Kurulum ve Ayarlar
Aspose.TeX for Java’yı Maven kullanarak projenize entegre edin:
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>
FAQ
1. Aspose.TeX for Java’da hangi çıktı hedef cihazları desteklenmektedir?
Aspose.TeX, PdfDevice (PDF belgeleri), XpsDevice (XPS belgeleri), SvgDevice (ölçeklenebilir vektör grafikleri) ve ImageDevice (PNG, JPEG, TIFF ve BMP gibi raster görüntüler) dahil olmak üzere çeşitli çıktı cihazlarını destekler.
2. Yardımcı derleme dosyaları (.log, .aux) nereye kaydedilir?
Yardımcı dosyalar, TeXOptions.setOutputWorkingDirectory() içinde belirtilen dizine yazılır. OutputZipDirectory kullanıyorsanız, .log ve .aux dosyaları işlenmiş belgeyle birlikte doğrudan ZIP arşivinin içine paketlenir.
3. Günlük çıktı dosyalarını bastırabilir veya yeniden yönlendirebilir miyim?
Evet. Terminal/günlük çıktısının işlenmesini TeXOptions.setTerminalOut() aracılığıyla özelleştirebilir veya derleme günlüklerini atmak ya da yeniden yönlendirmek için özel bir IOutputWorkingDirectory uygulaması atayabilirsiniz.