Generera PDF från LaTeX i Java

LaTeX används ofta för att skapa teknisk och vetenskaplig dokumentation. LaTeX-filer (TEX eller LTX) är källdokument fyllda med kommandon för att specificera dokumentets format, inklusive text, symboler, matematiska uttryck och grafik. Vi kan enkelt generera ett PDF dokument från LaTeX-källan programmatiskt. PDF tillåter delning av dokument i ett skrivskyddat format utan att kompromissa med deras stil eller layout. I den här artikeln kommer vi att lära oss hur man genererar ett PDF-dokument från LaTeX-källfilen i Java.

Följande ämnen ska behandlas i den här artikeln:

Java API för att generera PDF från LaTeX

För att skapa PDF-dokument från LaTeX-källfiler kommer vi att använda API:t Aspose.TeX for Java. Den tillåter typinställning av TeX-filer till olika filformat som PDF, XPS eller bilder. Vänligen antingen ladda ner JAR för API:t eller lägg till följande pom.xml-konfiguration i en Maven-baserad Java-applikation.

Förvar:

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

Beroende:

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

Generera PDF från LaTeX TeX-fil i Java

Vi kan skapa ett PDF-dokument från en LaTeX (TeX) fil genom att följa stegen nedan:

  1. Skapa först en instans av klassen TeXOptions med metoden consoleAppOptions().
  2. Ställ in TeX-konfigurationen som TeXConfig.objectLaTeX().
  3. Ställ sedan in arbetskataloger för inmatning och utdata.
  4. Ange sedan konsol eller minnesström som utgångsterminal.
  5. Ställ sedan in alternativ för rendering till PDF-format.
  6. Anropa slutligen metoden run() för den nyskapade klassinstansen TexJob med utdata-PDF och klassobjektet PdfDevice som argument.

Följande kodexempel visar hur man skapar en PDF från en TeX-fil med Java.

// Detta kodexempel visar hur man skapar en PDF från TeX-källfil.
// Arbetskatalog
String dataDir = "D:\\Files\\Tex\\";

// Skapa typsättningsalternativ.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Ange en arbetskatalog för filsystemet för inmatning.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Ange en arbetskatalog för filsystemet för utdata.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Ange minnesström som utgångsterminal.
options.setTerminalOut(new OutputMemoryTerminal());

// Ställ in alternativ för rendering till PDF-format.
options.setSaveOptions(new PdfSaveOptions());

// Kör typsättning.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Skapa PDF från LaTeX TeX-fil i Java

Skapa PDF från LaTeX TeX-fil i Java.

Generera PDF från LTX-fil i Java

LaTeX använder en LTX filtillägg typsättning markup taggar och egenskaper som definierar dokumentets struktur och innehåll. Vi kan också skapa en PDF från LaTeX (LTX) fil genom att följa stegen som nämnts tidigare. Men vi behöver bara mata in källfilen med tillägget .ltx i det sista steget.

Följande kodexempel visar hur man skapar en PDF från en LTX-fil med Java.

// Detta kodexempel visar hur man skapar en PDF från LTX-källfil.
// Arbetskatalog
String dataDir = "D:\\Files\\Tex\\";

// Skapa typsättningsalternativ.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Ange en arbetskatalog för filsystemet för inmatning.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Ange en arbetskatalog för filsystemet för utdata.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Ange minnesström som utgångsterminal.
options.setTerminalOut(new OutputMemoryTerminal());

// Ställ in alternativ för rendering till PDF-format.
options.setSaveOptions(new PdfSaveOptions());

// Kör typsättning.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Konvertera TeX till XPS med Java

Vi kan också konvertera LaTeX (TeX) fil till XPS genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in XpsSaveOptions istället för PdfSaveOptions vid steg #5.

Följande kodexempel visar hur man konverterar TeX till XPS med Java.

// Detta kodexempel visar hur man konverterar en Tex till XPS.
// Arbetskatalog
String dataDir = "D:\\Files\\Tex\\";

// Skapa typsättningsalternativ.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Ange en arbetskatalog för filsystemet för inmatning.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Ange en arbetskatalog för filsystemet för utdata.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Ange minnesström som utgångsterminal.
options.setTerminalOut(new OutputMemoryTerminal());

// Ställ in alternativ för rendering till XPS-format.
options.setSaveOptions(new XpsSaveOptions());

// Kör typsättning.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Konvertera TeX ZIP Directory till PDF ZIP Directory med Java

Vi kan konvertera flera TeX-filer komprimerade i ett ZIP-arkiv till PDF på en gång genom att följa stegen nedan:

  1. För det första, öppna strömmar på ZIP-arkiv som arbetskatalogen för input och output.
  2. Skapa sedan en instans av klassen TeXOptions med metoden consoleAppOptions().
  3. Ställ sedan in TeX-konfigurationen som TeXConfig.objectLaTeX().
  4. Ställ sedan in in- och utdata-zip-kataloger.
  5. Ange sedan konsol eller minnesström som utgångsterminal.
  6. Efter det, ställ in alternativ för rendering till PDF-format.
  7. Anrop slutligen metoden run() för den nyskapade klassinstansen TexJob med utdata-PDF och klassobjektet PdfDevice som argument.

Följande kodexempel visar hur man konverterar ett TeX ZIP-arkiv till ett PDF ZIP-arkiv med Java.

// Detta kodexempel visar hur man konverterar en TeX ZIP-katalog till en PDF ZIP-katalog.
// Arbetskatalog
String dataDir = "D:\\Files\\Tex\\";

// Öppna strömmen i ZIP-arkivet som kommer att fungera som arbetskatalog för inmatning.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// Öppna strömmen i ZIP-arkivet som kommer att fungera som arbetskatalog för utdata.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // Skapa konverteringsalternativ för standard ObjectTeX-format på ObjectTeX-motortillägget.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // Ange en ZIP-arkivarbetskatalog för inmatningen.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // Ange en ZIP-arkivarbetskatalog för utdata.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // Ange konsolen som utgångsterminal.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // Definiera sparalternativen.
    options.setSaveOptions(new PdfSaveOptions());

    // Kör jobbet.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // För att följa utdata ska se skriv. 
    options.getTerminalOut().getWriter().newLine();

    // Slutför utdata ZIP-arkiv.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
Konvertera ett TeX ZIP-arkiv till ett PDF ZIP-arkiv

Konvertera ett TeX ZIP-arkiv till ett PDF ZIP-arkiv.

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man:

  • skapa en PDF-utdata från LaTeX-källfilen i Java;
  • skapa ett XPS-utdatadokument från TeX-filen programmatiskt;
  • konvertera ett TeX ZIP-arkiv till ett PDF ZIP-arkiv med Java.

Förutom att generera PDF från LaTeX i Java kan du lära dig mer om Aspose.TeX för Java API med hjälp av dokumentationen. I händelse av oklarheter, var god kontakta oss på forum.

Se även