Java’da gelişmiş TeX motoru seçenekleri yapılandırması
Aspose.TeX for Java’daki TeXOptions sınıfını kullanarak TeX ve LaTeX belge derleme parametrelerinde ince ayar yapın. Otomatik belge işleme iş akışları sırasında yürütme iş adları, terminal ve dosya günlükleme davranışı, yazı tipi/paket arama yolları ve hata işleme tercihleri üzerinde ayrıntılı denetim elde edin.
Kurumsal Java ortamlarında TeX veya LaTeX işlerini yürütürken çalışma zamanı davranışını yapılandırmak, hata takibi, denetim ve çok kiracılı kaynak yönetimi açısından kritik öneme sahiptir.
- İş Adı, oluşturulan belgeler ve yardımcı dosyalar (
.pdf,.log,.aux) için birincil çıktı dosyası adı ön ekini belirtmek üzeresetJobName(String)yöntemini kullanır. - Terminal Çıktısı, motor konsol mesajlarının ve uyarılarının nereye yönlendirileceğini kontrol etmek için
setTerminalOut(IOutputTerminal)yöntemini kullanır (Konsol, Dosya, Bellek Akışı veya Null). - Terminal Girdisi, TeX yürütmesi için etkileşimli konsol girişi davranışını yapılandırmak üzere
setTerminalIn(IInputTerminal)yöntemini kullanır. - Günlük Çıktısı, yardımcı derleme .log dosyalarının oluşturulmasını etkinleştirmek veya devre dışı bırakmak için
setLogOutput(Boolean)yöntemini kullanır. - Hatada Tekrarla, kurtarılabilir dizgi hatalarıyla karşılaşıldığında motorun işleme döngülerini yeniden çalıştırıp çalıştırmayacağını belirlemek için
setRepeatOnError(Boolean)yöntemini kullanır.
İş adını ve çıktı adlandırmasını yapılandırma
Oluşturulan belgeler, ara dosyalar ve günlük çıktıları için dosya ön ekini belirlemek üzere özel bir iş adı ayarlayın.
import com.aspose.tex.*;
import java.io.IOException;
public class ConfigureTeXJobName {
public static void main(String[] args) throws IOException {
// Initialize options for LaTeX format
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Set input and output working directories
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Explicitly set a custom job name (Output will be 'Invoice_2026.pdf')
options.setJobName("Invoice_2026");
// Run TeX job using the designated job name options
TeXJob job = new TeXJob(options);
job.run();
System.out.println("TeX job completed with custom output file name: Invoice_2026.pdf");
}
}Terminal çıktısını ve konsol günlüklemesini yeniden yönlendirme
Özel IOutputTerminal örneklerini yapılandırarak çalışma zamanı konsol günlüklerini yakalayın veya susturun (örneğin, terminal mesajlarını doğrudan belleğe veya diske yazın).
import com.aspose.tex.*;
import java.io.ByteArrayOutputStream;
public class ConfigureTeXTerminalOutput {
public static void main(String[] args) throws Exception {
// Initialize LaTeX conversion options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Redirect terminal output to an in-memory stream instead of System.out
ByteArrayOutputStream terminalStream = new ByteArrayOutputStream();
options.setTerminalOut(new OutputConsoleTerminal()); // Or use custom stream terminal
// Enable execution log file writing
options.setLogOutput(true);
// Execute the compilation job
TeXJob job = new TeXJob("main", new PdfDevice(), options);
job.run();
System.out.println("TeX execution log captured successfully.");
}
}Hata işlemeyi ve yürütme davranışını yönetme
Aspose.TeX’in derleme sırasında yürütme uyarılarını ve ayrıştırma hatalarını nasıl işleyeceğini yapılandırın.
import com.aspose.tex.*;
public class ConfigureTeXExecutionSettings {
public static void main(String[] args) throws Exception {
// Initialize base options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Configure directory paths
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Set repeat-on-error and logging preferences
options.setRepeatOnError(false); // Halt or proceed without retry loops on non-fatal errors
options.setLogOutput(true); // Ensure detailed engine log is written to output directory
// Execute job
TeXJob job = new TeXJob("document", new PdfDevice(), options);
job.run();
System.out.println("Document compiled with fine-tuned error settings.");
}
}Kurulum ve Ayarlar
Maven kullanarak Aspose.TeX for Java’yı 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. TeXOptions içinde bir iş adı belirtmezsem ne olur?
setJobName() aracılığıyla açıkça bir iş adı yapılandırılmazsa, Aspose.TeX varsayılan olarak ana giriş dosyasının adını kullanır (örneğin, main.tex, main.pdf ve main.log dosyalarını oluşturur).
2. Derleme .log dosyası oluşturmayı tamamen nasıl devre dışı bırakabilirim?
TeXJob oluşturmadan ve çalıştırmadan önce options.setLogOutput(false) ayarını yapın. Bu, motorun diskte veya çıktı çalışma dizininde yardımcı günlük dosyaları oluşturmasını engeller.
3. Sunucu/headless ortamlarda TeX terminal mesajlarını yakalayabilir miyim?
Evet. Özel bir OutputMemoryTerminal atamak veya IOutputTerminal uygulamak, tüm terminal stdout/stderr mesajlarını sunucunuzun kurumsal günlük sistemine (örneğin, Log4j veya SLF4J) yönlendirmenizi sağlar.