Generování PDF z LaTeXu v Javě

LaTeX je široce používán pro vytváření technické a vědecké dokumentace. Soubory LaTeX (TEX nebo LTX) jsou zdrojové dokumenty naplněné příkazy k určení formátu dokumentu, včetně textu, symbolů, matematických výrazů a grafiky. Ze zdroje LaTeXu můžeme snadno programově vygenerovat PDF dokument. PDF umožňuje sdílení dokumentů ve formátu pouze pro čtení, aniž by došlo k ohrožení jejich stylu nebo rozvržení. V tomto článku se naučíme, jak vygenerovat PDF dokument ze zdrojového souboru LaTeX v Javě.

Tento článek bude obsahovat následující témata:

Java API pro generování PDF z LaTeXu

Pro vytváření PDF dokumentů ze zdrojových souborů LaTeXu budeme používat API Aspose.TeX for Java. Umožňuje sazbu souborů TeX do různých formátů souborů, jako je PDF, XPS nebo obrázky. Prosím buď stáhněte JAR API, nebo přidejte následující konfiguraci pom.xml do Java aplikace založené na Maven.

úložiště:

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

Závislost:

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

Generujte PDF ze souboru LaTeX TeX v Javě

Dokument PDF můžeme vytvořit ze souboru LaTeX (TeX) podle následujících kroků:

  1. Nejprve vytvořte instanci třídy TeXOptions pomocí metody consoleAppOptions().
  2. Nastavte konfiguraci TeXu jako TeXConfig.objectLaTeX().
  3. Dále nastavte vstupní a výstupní pracovní adresáře.
  4. Poté zadejte konzolu nebo paměťový tok jako výstupní terminál.
  5. Poté nastavte možnosti vykreslování do formátu PDF.
  6. Nakonec zavolejte metodu run() pro nově vytvořenou instanci třídy TexJob s výstupním PDF a objektem třídy PdfDevice jako argumenty.

Následující příklad kódu ukazuje, jak vytvořit PDF ze souboru TeX pomocí Java.

// Tento příklad kódu ukazuje, jak vytvořit PDF ze zdrojového souboru TeX.
// Pracovní adresář
String dataDir = "D:\\Files\\Tex\\";

// Vytvořte možnosti sazby.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Zadejte pracovní adresář systému souborů pro vstup.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Zadejte pracovní adresář systému souborů pro výstup.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Určete tok paměti jako výstupní terminál.
options.setTerminalOut(new OutputMemoryTerminal());

// Nastavte možnosti vykreslování do formátu PDF.
options.setSaveOptions(new PdfSaveOptions());

// Spusťte sazbu.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Vytvořte PDF ze souboru LaTeX TeX v Javě

Vytvořte PDF ze souboru LaTeX TeX v Javě.

Generování PDF ze souboru LTX v Javě

LaTeX používá příponu souboru LTX pro sazbu značek a vlastností, které definují strukturu a obsah dokumentu. Můžeme také vytvořit PDF ze souboru LaTeX (LTX) podle výše uvedených kroků. V posledním kroku však stačí zadat zdrojový soubor s příponou .ltx.

Následující příklad kódu ukazuje, jak vytvořit PDF ze souboru LTX pomocí Java.

// Tento příklad kódu ukazuje, jak vytvořit PDF ze zdrojového souboru LTX.
// Pracovní adresář
String dataDir = "D:\\Files\\Tex\\";

// Vytvořte možnosti sazby.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Zadejte pracovní adresář systému souborů pro vstup.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Zadejte pracovní adresář systému souborů pro výstup.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Určete tok paměti jako výstupní terminál.
options.setTerminalOut(new OutputMemoryTerminal());

// Nastavte možnosti vykreslování do formátu PDF.
options.setSaveOptions(new PdfSaveOptions());

// Spusťte sazbu.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Převeďte TeX na XPS pomocí Java

Můžeme také převést soubor LaTeX (TeX) na XPS podle výše uvedených kroků. Stačí však nastavit XpsSaveOptions místo PdfSaveOptions v kroku #5.

Následující příklad kódu ukazuje, jak převést TeX na XPS pomocí Java.

// Tento příklad kódu ukazuje, jak převést Tex na XPS.
// Pracovní adresář
String dataDir = "D:\\Files\\Tex\\";

// Vytvořte možnosti sazby.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Zadejte pracovní adresář systému souborů pro vstup.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Zadejte pracovní adresář systému souborů pro výstup.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Určete tok paměti jako výstupní terminál.
options.setTerminalOut(new OutputMemoryTerminal());

// Nastavte možnosti pro vykreslování do formátu XPS.
options.setSaveOptions(new XpsSaveOptions());

// Spusťte sazbu.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Převeďte TeX ZIP adresář na PDF ZIP adresář pomocí Java

Můžeme převést více souborů TeX komprimovaných v archivu ZIP do PDF najednou podle následujících kroků:

  1. Nejprve otevřete streamy v archivech ZIP jako vstupní a výstupní pracovní adresář.
  2. Dále vytvořte instanci třídy TeXOptions pomocí metody consoleAppOptions().
  3. Potom nastavte konfiguraci TeXu jako TeXConfig.objectLaTeX().
  4. Dále nastavte vstupní a výstupní ZIP adresáře.
  5. Poté zadejte konzolu nebo paměťový tok jako výstupní terminál.
  6. Poté nastavte možnosti vykreslování do formátu PDF.
  7. Nakonec zavolejte metodu run() pro nově vytvořenou instanci třídy TexJob s výstupním PDF a objektem třídy PdfDevice jako argumenty.

Následující příklad kódu ukazuje, jak převést TeX ZIP archiv na PDF ZIP archiv pomocí Java.

// Tento příklad kódu ukazuje, jak převést adresář TeX ZIP na adresář PDF ZIP.
// Pracovní adresář
String dataDir = "D:\\Files\\Tex\\";

// Otevřete stream v archivu ZIP, který bude sloužit jako vstupní pracovní adresář.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// Otevřete stream v archivu ZIP, který bude sloužit jako výstupní pracovní adresář.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // Vytvořte možnosti převodu pro výchozí formát ObjectTeX na rozšíření enginu ObjectTeX.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // Zadejte pracovní adresář ZIP archivu pro vstup.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // Zadejte pracovní adresář archivu ZIP pro výstup.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // Zadejte konzolu jako výstupní terminál.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // Definujte možnosti uložení.
    options.setSaveOptions(new PdfSaveOptions());

    // Spusťte úlohu.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // Aby výsledný výstup vypadal, napište. 
    options.getTerminalOut().getWriter().newLine();

    // Dokončete výstupní archiv ZIP.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
Převeďte archiv TeX ZIP na archiv PDF ZIP

Převeďte archiv TeX ZIP na archiv PDF ZIP.

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet knihovnu bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili, jak:

  • vytvořit výstup PDF ze zdrojového souboru LaTeX v Javě;
  • vytvořit výstupní dokument XPS ze souboru TeX programově;
  • převést TeX ZIP archiv na PDF ZIP archiv pomocí Java.

Kromě generování PDF z LaTeXu v Javě se můžete dozvědět více o Aspose.TeX for Java API pomocí dokumentace. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na fóru.

Viz také