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
- Criar PDF a partir do arquivo TeX (LaTeX) em Java
- Criar PDF a partir do arquivo LTX (LaTeX) em Java
- Converter TeX para XPS usando Java
- Converta o Diretório ZIP TeX em Diretório ZIP PDF usando Java
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:
- Primeiramente, crie uma instância da classe TeXOptions usando o método consoleAppOptions().
- Defina a configuração do TeX como TeXConfig.objectLaTeX().
- Em seguida, defina os diretórios de trabalho de entrada e saída.
- Em seguida, especifique o console ou o fluxo de memória como um terminal de saída.
- Depois disso, defina as opções para renderização no formato PDF.
- 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 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:
- Em primeiro lugar, abra fluxos em arquivos ZIP como o diretório de trabalho de entrada e saída.
- Em seguida, crie uma instância da classe TeXOptions usando o método consoleAppOptions().
- Em seguida, defina a configuração do TeX como TeXConfig.objectLaTeX().
- Em seguida, defina os diretórios ZIP de entrada e saída.
- Em seguida, especifique o console ou o fluxo de memória como um terminal de saída.
- Depois disso, defina as opções para renderização no formato PDF.
- 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();
}
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.