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, .xps veya 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 OutputFileSystemDirectory kullanır.
  • Çıktı çalışma dizini ZIP arşivi, çıktı belgelerini, günlükleri ve oluşturulan varlıkları tek bir .zip dosyasında paketlemek için OutputZipDirectory kullanı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 IOutputWorkingDirectory kullanı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.