Java'da LaTeX'ten PDF oluşturun

LaTeX, teknik ve bilimsel dokümantasyon oluşturmak için yaygın olarak kullanılmaktadır. LaTeX dosyaları (TEX veya LTX), metin, semboller, matematiksel ifadeler ve grafikler dahil olmak üzere belgenin biçimini belirtmek için komutlarla doldurulmuş kaynak belgelerdir. LaTeX kaynağından programlı olarak kolayca bir PDF belgesi oluşturabiliriz. PDF, belgelerin stillerinden veya düzenlerinden ödün vermeden salt okunur biçimde paylaşılmasına olanak tanır. Bu yazımızda Java’da LaTeX kaynak dosyasından PDF belgesi oluşturmayı öğreneceğiz.

Bu yazıda aşağıdaki konular ele alınacaktır:

LaTeX’ten PDF Oluşturmak için Java API

LaTeX kaynak dosyalarından PDF belgeleri oluşturmak için Aspose.TeX for Java API’sini kullanacağız. TeX dosyalarının PDF, XPS veya resimler gibi farklı dosya biçimlerine dizilmesine izin verir. Lütfen API’nin JAR’ını indirin veya Maven tabanlı bir Java uygulamasında aşağıdaki pom.xml yapılandırmasını ekleyin.

Depo:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Bağımlılık:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>21.11</version>
    <type>jar</type>
</dependency>

Java’da LaTeX TeX Dosyasından PDF Oluşturma

Aşağıda verilen adımları izleyerek bir LaTeX (TeX) dosyasından bir PDF belgesi oluşturabiliriz:

  1. İlk olarak, consoleAppOptions() yöntemini kullanarak TeXOptions sınıfının bir örneğini oluşturun.
  2. TeX yapılandırmasını TeXConfig.objectLaTeX() olarak ayarlayın.
  3. Ardından, giriş ve çıkış çalışma dizinlerini ayarlayın.
  4. Ardından, çıkış terminali olarak konsol veya bellek akışını belirtin.
  5. Bundan sonra, PDF formatına dönüştürme seçeneklerini ayarlayın.
  6. Son olarak, çıktı PDF’si ve argüman olarak PdfDevice sınıf nesnesi ile yeni oluşturulan TexJob sınıf örneği için run() yöntemini çağırın.

Aşağıdaki kod örneği, Java kullanılarak bir TeX dosyasından nasıl PDF oluşturulacağını gösterir.

// Bu kod örneği, TeX kaynak dosyasından nasıl PDF oluşturulacağını gösterir.
// Çalışma dizini
String dataDir = "D:\\Files\\Tex\\";

// Dizgi seçenekleri oluşturun.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Giriş için bir dosya sistemi çalışma dizini belirtin.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Çıktı için bir dosya sistemi çalışma dizini belirtin.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Bellek akışını çıkış terminali olarak belirtin.
options.setTerminalOut(new OutputMemoryTerminal());

// PDF formatına dönüştürme seçeneklerini ayarlayın.
options.setSaveOptions(new PdfSaveOptions());

// Dizgiyi çalıştırın.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Java'da LaTeX TeX Dosyasından PDF Oluşturma

Java’da LaTeX TeX Dosyasından PDF oluşturun.

Java’da LTX Dosyasından PDF Oluşturma

LaTeX, belge yapısını ve içeriğini tanımlayan biçimlendirme etiketlerini ve özelliklerini dizgileyen bir LTX dosya uzantısı kullanır. Daha önce bahsedilen adımları izleyerek LaTeX (LTX) dosyasından da bir PDF oluşturabiliriz. Ancak son adımda .ltx uzantılı kaynak dosyayı girmemiz yeterli.

Aşağıdaki kod örneği, Java kullanılarak bir LTX dosyasından nasıl PDF oluşturulacağını gösterir.

// Bu kod örneği, LTX kaynak dosyasından nasıl PDF oluşturulacağını gösterir.
// Çalışma dizini
String dataDir = "D:\\Files\\Tex\\";

// Dizgi seçenekleri oluşturun.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Giriş için bir dosya sistemi çalışma dizini belirtin.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Çıktı için bir dosya sistemi çalışma dizini belirtin.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Bellek akışını çıkış terminali olarak belirtin.
options.setTerminalOut(new OutputMemoryTerminal());

// PDF formatına dönüştürme seçeneklerini ayarlayın.
options.setSaveOptions(new PdfSaveOptions());

// Dizgiyi çalıştırın.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Java kullanarak TeX’i XPS’ye dönüştürün

Daha önce bahsedilen adımları izleyerek LaTeX (TeX) dosyasını da XPS’ye dönüştürebiliriz. Ancak 5. adımda PdfSaveOptions yerine XpsSaveOptions ayarlamamız yeterli.

Aşağıdaki kod örneği, Java kullanılarak TeX’in XPS’ye nasıl dönüştürüleceğini gösterir.

// Bu kod örneği, bir Tex'in XPS'ye nasıl dönüştürüleceğini gösterir.
// Çalışma dizini
String dataDir = "D:\\Files\\Tex\\";

// Dizgi seçenekleri oluşturun.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Giriş için bir dosya sistemi çalışma dizini belirtin.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Çıktı için bir dosya sistemi çalışma dizini belirtin.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Bellek akışını çıkış terminali olarak belirtin.
options.setTerminalOut(new OutputMemoryTerminal());

// XPS biçiminde işleme seçeneklerini ayarlayın.
options.setSaveOptions(new XpsSaveOptions());

// Dizgiyi çalıştırın.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Java kullanarak TeX ZIP Dizinini PDF ZIP Dizinine Dönüştürün

Bir ZIP arşivinde sıkıştırılmış birden çok TeX dosyasını, aşağıda verilen adımları izleyerek tek seferde PDF’ye dönüştürebiliriz:

  1. İlk olarak, giriş ve çıkış çalışma dizini olarak ZIP arşivlerindeki akışları açın.
  2. Ardından, consoleAppOptions() yöntemini kullanarak TeXOptions sınıfının bir örneğini oluşturun.
  3. Ardından, TeX yapılandırmasını TeXConfig.objectLaTeX() olarak ayarlayın.
  4. Ardından, giriş ve çıkış ZIP dizinlerini ayarlayın.
  5. Ardından, çıkış terminali olarak konsol veya bellek akışını belirtin.
  6. Bundan sonra, PDF formatına dönüştürme seçeneklerini ayarlayın.
  7. Son olarak, çıktı PDF’si ve argüman olarak PdfDevice sınıf nesnesi ile yeni oluşturulan TexJob sınıf örneği için run() yöntemini çağırın.

Aşağıdaki kod örneği, Java kullanarak bir TeX ZIP arşivinin PDF ZIP arşivine nasıl dönüştürüleceğini gösterir.

// Bu kod örneği, bir TeX ZIP dizininin PDF ZIP Dizinine nasıl dönüştürüleceğini gösterir.
// Çalışma dizini
String dataDir = "D:\\Files\\Tex\\";

// Giriş çalışma dizini olarak hizmet verecek ZIP arşivindeki akışı açın.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// Çıkış çalışma dizini olarak hizmet verecek ZIP arşivindeki akışı açın.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // ObjectTeX motor uzantısında varsayılan ObjectTeX formatı için dönüştürme seçenekleri oluşturun.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // Giriş için bir ZIP arşivi çalışma dizini belirtin.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // Çıktı için bir ZIP arşivi çalışma dizini belirtin.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // Çıkış terminali olarak konsolu belirtin.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // Kaydetme seçeneklerini tanımlayın.
    options.setSaveOptions(new PdfSaveOptions());

    // İşi çalıştırın.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // Sonuç olarak çıktının görünmesi için yazın. 
    options.getTerminalOut().getWriter().newLine();

    // Çıktı ZIP arşivini sonlandırın.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
TeX ZIP arşivini PDF ZIP arşivine dönüştürün

TeX ZIP arşivini PDF ZIP arşivine dönüştürün.

Ücretsiz Lisans Alın

Kitaplığı değerlendirme sınırlamaları olmadan denemek için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Bu makalede, şunların nasıl yapıldığını öğrendik:

  • Java’daki LaTeX kaynak dosyasından bir PDF çıktısı oluşturun;
  • programlı olarak TeX dosyasından bir XPS çıktı belgesi oluşturun;
  • Java kullanarak bir TeX ZIP arşivini bir PDF ZIP arşivine dönüştürün.

Ayrıca belgeleri kullanarak Aspose.TeX for Java API hakkında daha fazla bilgi edinebilirsiniz. Herhangi bir belirsizlik durumunda, lütfen forumda bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız