Criar PDF a partir do LaTeX em Java

O LaTeX é amplamente utilizado para a criação de documentação técnica e científica. Arquivos LaTeX (TEX ou LTX) são documentos fonte preenchidos com comandos para especificar o formato do documento, incluindo texto, símbolos, expressões matemáticas e gráficos. Podemos facilmente gerar um documento PDF da fonte LaTeX programaticamente. O PDF permite compartilhar documentos em formato somente leitura sem comprometer seu estilo ou layout. Neste artigo, aprenderemos como criar um documento PDF a partir do arquivo fonte do LaTeX em Java.

Os seguintes tópicos serão abordados neste artigo:

API Java para criar PDF a partir do LaTeX

Para criar documentos PDF a partir de arquivos de origem LaTeX, usaremos a API Aspose.TeX for Java. Ele permite a composição de arquivos TeX para diferentes formatos de arquivo como PDF, XPS ou imagens. Faça o download do JAR da API ou adicione a seguinte configuração pom.xml em um aplicativo Java baseado em Maven.

Repositório:

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

Dependência:

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

Criar PDF a partir do arquivo LaTeX TeX em Java

Podemos criar um documento PDF a partir de um arquivo LaTeX (TeX) seguindo os passos abaixo:

  1. Primeiramente, crie uma instância da classe TeXOptions usando o método consoleAppOptions().
  2. Defina a configuração do TeX como TeXConfig.objectLaTeX().
  3. Em seguida, defina os diretórios de trabalho de entrada e saída.
  4. Em seguida, especifique o console ou o fluxo de memória como um terminal de saída.
  5. Depois disso, defina as opções para renderização no formato PDF.
  6. Por fim, chame o método run() para a instância da classe TexJob recém-criada com o PDF de saída e o objeto da classe PdfDevice como argumentos.

O exemplo de código a seguir demonstra como criar um PDF de um arquivo TeX usando Java.

// Este exemplo de código demonstra como criar um PDF a partir do arquivo de origem do TeX.
// Diretório de trabalho
String dataDir = "D:\\Files\\Tex\\";

// Crie opções de composição.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Especifique um diretório de trabalho do sistema de arquivos para entrada.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Especifique um diretório de trabalho do sistema de arquivos para saída.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Especifique o fluxo de memória como terminal de saída.
options.setTerminalOut(new OutputMemoryTerminal());

// Defina opções para renderização em formato PDF.
options.setSaveOptions(new PdfSaveOptions());

// Execute a tipografia.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Criar PDF a partir do arquivo LaTeX TeX em Java

Crie PDF a partir do arquivo LaTeX TeX em Java.

Criar PDF a partir do arquivo LTX em Java

O LaTeX usa uma extensão de arquivo LTX que forma tags de marcação e propriedades que definem a estrutura e o conteúdo do documento. Também podemos criar um PDF a partir do arquivo LaTeX (LTX) seguindo as etapas mencionadas anteriormente. No entanto, precisamos apenas inserir o arquivo de origem com a extensão .ltx na última etapa.

O exemplo de código a seguir demonstra como criar um PDF de um arquivo LTX usando Java.

// Este exemplo de código demonstra como criar um PDF a partir do arquivo de origem LTX.
// Diretório de trabalho
String dataDir = "D:\\Files\\Tex\\";

// Crie opções de composição.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Especifique um diretório de trabalho do sistema de arquivos para entrada.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Especifique um diretório de trabalho do sistema de arquivos para saída.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Especifique o fluxo de memória como terminal de saída.
options.setTerminalOut(new OutputMemoryTerminal());

// Defina opções para renderização em formato PDF.
options.setSaveOptions(new PdfSaveOptions());

// Execute a tipografia.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Converter TeX para XPS usando Java

Também podemos converter o arquivo LaTeX (TeX) para XPS seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir XpsSaveOptions em vez de PdfSaveOptions na etapa 5.

O exemplo de código a seguir demonstra como converter TeX para XPS usando Java.

// Este exemplo de código demonstra como converter um Tex em XPS.
// Diretório de trabalho
String dataDir = "D:\\Files\\Tex\\";

// Crie opções de composição.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Especifique um diretório de trabalho do sistema de arquivos para entrada.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Especifique um diretório de trabalho do sistema de arquivos para saída.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Especifique o fluxo de memória como terminal de saída.
options.setTerminalOut(new OutputMemoryTerminal());

// Defina as opções para renderização no formato XPS.
options.setSaveOptions(new XpsSaveOptions());

// Execute a tipografia.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Converta o Diretório ZIP TeX em Diretório ZIP PDF usando Java

Podemos converter vários arquivos TeX compactados em um arquivo ZIP para PDF de uma só vez seguindo as etapas abaixo:

  1. Em primeiro lugar, abra fluxos em arquivos ZIP como o diretório de trabalho de entrada e saída.
  2. Em seguida, crie uma instância da classe TeXOptions usando o método consoleAppOptions().
  3. Em seguida, defina a configuração do TeX como TeXConfig.objectLaTeX().
  4. Em seguida, defina os diretórios ZIP de entrada e saída.
  5. Em seguida, especifique o console ou o fluxo de memória como um terminal de saída.
  6. Depois disso, defina as opções para renderização no formato PDF.
  7. Por fim, chame o método run() para a instância da classe TexJob recém-criada com o PDF de saída e o objeto da classe PdfDevice como argumentos.

O exemplo de código a seguir demonstra como converter um arquivo ZIP TeX em um arquivo ZIP PDF usando Java.

// Este exemplo de código demonstra como converter um diretório ZIP TeX em um diretório ZIP PDF.
// Diretório de trabalho
String dataDir = "D:\\Files\\Tex\\";

// Abra o fluxo no arquivo ZIP que servirá como diretório de trabalho de entrada.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// Abra o fluxo no arquivo ZIP que servirá como diretório de trabalho de saída.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // Crie opções de conversão para o formato padrão do ObjectTeX na extensão do mecanismo ObjectTeX.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // Especifique um diretório de trabalho do arquivo ZIP para a entrada.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // Especifique um diretório de trabalho do arquivo ZIP para a saída.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // Especifique o console como o terminal de saída.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // Defina as opções de salvamento.
    options.setSaveOptions(new PdfSaveOptions());

    // Execute o trabalho.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // Para que a saída consequente pareça, escreva. 
    options.getTerminalOut().getWriter().newLine();

    // Finalize o arquivo ZIP de saída.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
Converter um arquivo ZIP TeX em um arquivo ZIP PDF

Converta um arquivo ZIP TeX em um arquivo ZIP PDF.

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como:

  • gerar uma saída PDF a partir do arquivo fonte do LaTeX em Java;
  • crie um documento de saída XPS do arquivo TeX programaticamente;
  • converter um arquivo ZIP TeX em um arquivo ZIP PDF usando Java.

Além disso, você pode aprender mais sobre o Aspose.TeX for Java API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também