Crea PDF da LaTeX in Java

LaTeX è ampiamente utilizzato per creare documentazione tecnica e scientifica. I file LaTeX (TEX o LTX) sono documenti sorgente pieni di comandi per specificare il formato del documento, inclusi testo, simboli, espressioni matematiche e grafica. Possiamo facilmente generare un documento PDF dal sorgente LaTeX in modo programmatico. PDF consente di condividere documenti in un formato di sola lettura senza comprometterne lo stile o il layout. In questo articolo impareremo come creare un documento PDF dal file sorgente LaTeX in Java.

In questo articolo verranno trattati i seguenti argomenti:

API Java per creare PDF da LaTeX

Per creare documenti PDF da file sorgente LaTeX, utilizzeremo l’API Aspose.TeX for Java. Consente di comporre i file TeX in diversi formati di file come PDF, XPS o immagini. Si prega di scaricare il JAR dell’API o aggiungere la seguente configurazione pom.xml in un’applicazione Java basata su Maven.

Archivio:

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

Dipendenza:

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

Crea PDF da LaTeX TeX File in Java

Possiamo creare un documento PDF da un file LaTeX (TeX) seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe TeXOptions utilizzando il metodo consoleAppOptions().
  2. Imposta la configurazione di TeX come TeXConfig.objectLaTeX().
  3. Quindi, imposta le directory di lavoro di input e output.
  4. Quindi, specifica la console o il flusso di memoria come terminale di output.
  5. Successivamente, imposta le opzioni per il rendering in formato PDF.
  6. Infine, chiama il metodo run() per l’istanza della classe TexJob appena creata con il PDF di output e l’oggetto della classe PdfDevice come argomenti.

L’esempio di codice seguente mostra come creare un PDF da un file TeX utilizzando Java.

// Questo esempio di codice mostra come creare un PDF da un file sorgente TeX.
// Directory di lavoro
String dataDir = "D:\\Files\\Tex\\";

// Crea opzioni di composizione.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Specificare una directory di lavoro del file system per l'input.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Specificare una directory di lavoro del file system per l'output.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Specificare il flusso di memoria come terminale di output.
options.setTerminalOut(new OutputMemoryTerminal());

// Imposta le opzioni per il rendering in formato PDF.
options.setSaveOptions(new PdfSaveOptions());

// Esegui la composizione.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Crea PDF da LaTeX TeX File in Java

Crea PDF da LaTeX TeX File in Java.

Crea PDF da file LTX in Java

LaTeX utilizza un’estensione di file LTX che impagina tag di markup e proprietà che definiscono la struttura e il contenuto del documento. Possiamo anche creare un PDF dal file LaTeX (LTX) seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo inserire il file sorgente con l’estensione .ltx nell’ultimo passaggio.

L’esempio di codice seguente mostra come creare un PDF da un file LTX utilizzando Java.

// Questo esempio di codice mostra come creare un PDF dal file di origine LTX.
// Directory di lavoro
String dataDir = "D:\\Files\\Tex\\";

// Crea opzioni di composizione.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Specificare una directory di lavoro del file system per l'input.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Specificare una directory di lavoro del file system per l'output.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Specificare il flusso di memoria come terminale di output.
options.setTerminalOut(new OutputMemoryTerminal());

// Imposta le opzioni per il rendering in formato PDF.
options.setSaveOptions(new PdfSaveOptions());

// Esegui la composizione.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Converti TeX in XPS usando Java

Possiamo anche convertire file LaTeX (TeX) in XPS seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare XpsSaveOptions invece di PdfSaveOptions al passaggio n. 5.

L’esempio di codice seguente mostra come convertire TeX in XPS usando Java.

// Questo esempio di codice mostra come convertire un Tex in XPS.
// Directory di lavoro
String dataDir = "D:\\Files\\Tex\\";

// Crea opzioni di composizione.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Specificare una directory di lavoro del file system per l'input.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Specificare una directory di lavoro del file system per l'output.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Specificare il flusso di memoria come terminale di output.
options.setTerminalOut(new OutputMemoryTerminal());

// Imposta le opzioni per il rendering in formato XPS.
options.setSaveOptions(new XpsSaveOptions());

// Esegui la composizione.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Converti la directory ZIP di TeX in una directory ZIP PDF utilizzando Java

Possiamo convertire più file TeX compressi in un archivio ZIP in PDF contemporaneamente seguendo i passaggi indicati di seguito:

  1. Innanzitutto, apri i flussi sugli archivi ZIP come directory di lavoro di input e output.
  2. Quindi, crea un’istanza della classe TeXOptions usando il metodo consoleAppOptions().
  3. Quindi, imposta la configurazione di TeX come TeXConfig.objectLaTeX().
  4. Quindi, imposta le directory ZIP di input e output.
  5. Quindi, specifica la console o il flusso di memoria come terminale di output.
  6. Successivamente, imposta le opzioni per il rendering in formato PDF.
  7. Infine, chiama il metodo run() per l’istanza della classe TexJob appena creata con il PDF di output e l’oggetto della classe PdfDevice come argomenti.

L’esempio di codice seguente mostra come convertire un archivio ZIP TeX in un archivio ZIP PDF utilizzando Java.

// Questo esempio di codice mostra come convertire una directory ZIP TeX in una directory ZIP PDF.
// Directory di lavoro
String dataDir = "D:\\Files\\Tex\\";

// Aprire il flusso nell'archivio ZIP che fungerà da directory di lavoro di input.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// Aprire il flusso nell'archivio ZIP che fungerà da directory di lavoro di output.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // Crea opzioni di conversione per il formato ObjectTeX predefinito sull'estensione del motore ObjectTeX.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // Specificare una directory di lavoro dell'archivio ZIP per l'input.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // Specificare una directory di lavoro dell'archivio ZIP per l'output.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // Specificare la console come terminale di output.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // Definisci le opzioni di salvataggio.
    options.setSaveOptions(new PdfSaveOptions());

    // Esegui il lavoro.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // Affinché l'output risultante appaia in scrittura. 
    options.getTerminalOut().getWriter().newLine();

    // Finalizzare l'archivio ZIP di output.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
Converti un archivio TeX ZIP in un archivio PDF ZIP

Converti un archivio TeX ZIP in un archivio PDF ZIP.

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato a:

  • generare un output PDF dal file sorgente LaTeX in Java;
  • creare un documento di output XPS dal file TeX a livello di codice;
  • convertire un archivio TeX ZIP in un archivio PDF ZIP utilizzando Java.

Inoltre, puoi saperne di più su Aspose.TeX per l’API Java usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche