Saídas TeX flexíveis e diretórios de trabalho de saída em Java
Configure destinos de saída e mecanismos de armazenamento para a compilação de documentos TeX e LaTeX usando o Aspose.Font para Java. Salve documentos renderizados (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) e artefatos auxiliares de compilação (.log, .aux) diretamente em pastas físicas do disco, arquivos ZIP compactados ou fluxos personalizados na memória, sem precisar de instalações do TeX para desktop.
Durante a compilação, o mecanismo de composição tipográfica TeX produz duas categorias principais de saída:
- Arquivos de saída primários: O documento de destino (por exemplo,
.pdf,.xpsou sequências de imagens). - Arquivos de saída auxiliares: Logs (
.log), dados auxiliares (.aux) e arquivos intermediários gerados pelas macros do LaTeX.
O Aspose.TeX para Java encapsula os destinos de saída em diretórios de trabalho abstratos por meio da interface IOutputWorkingDirectory, permitindo que os desenvolvedores direcionem os fluxos de saída dinamicamente. Tipos de diretórios de saída compatíveis:
- O diretório de trabalho de saída Sistema de arquivos local usa
OutputFileSystemDirectorypara salvar documentos renderizados e arquivos de log diretamente em pastas do disco local. - O diretório de trabalho de saída Arquivo ZIP usa
OutputZipDirectorypara empacotar documentos de saída, logs e recursos gerados em um único arquivo.zip. - O diretório de trabalho de saída Fluxo/memória personalizada usa
IOutputWorkingDirectorypara capturar a saída diretamente na memória, em BLOBs de banco de dados ou em fluxos de nuvem (S3/Azure Blob).
Salvar a saída TeX em um diretório do sistema de arquivos local
Direcione as saídas do documento principal e os logs de compilação auxiliares para uma pasta física usando OutputFileSystemDirectory.
import com.aspose.tex.*;
import java.io.IOException;
public class TeXOutputToFileSystem {
public static void main(String[] args) throws IOException {
// Initialize options for LaTeX format using ObjectTeX
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Set input working directory
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
// Set output working directory for compiled documents and logs
String outputDirPath = "C:/TeXProject/Output/";
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(outputDirPath));
// Execute TeX job producing PDF output
TeXJob job = new TeXJob("main", new PdfDevice(), options);
job.run();
System.out.println("TeX compilation complete. Outputs saved to: " + outputDirPath);
}
}Salvar a saída TeX diretamente em um arquivo ZIP
Empacote documentos renderizados juntamente com logs intermediários e imagens geradas em um arquivo ZIP compactado usando OutputZipDirectory.
import com.aspose.tex.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class TeXOutputToZipArchive {
public static void main(String[] args) throws IOException {
// Initialize LaTeX conversion options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
// Create output stream for destination ZIP file
FileOutputStream zipStream = new FileOutputStream("C:/TeXProject/OutputBundle.zip");
// Set output working directory to ZIP stream
options.setOutputWorkingDirectory(new OutputZipDirectory(zipStream));
// Run job targeting PDF rendering
TeXJob job = new TeXJob("main", new PdfDevice(), options);
job.run();
zipStream.close();
System.out.println("TeX outputs and logs successfully bundled into OutputBundle.zip.");
}
}Transmitir a saída TeX para a memória/ByteArray
Para aplicações na nuvem ou web, capture documentos renderizados diretamente como fluxos de bytes sem gravar arquivos no armazenamento do disco local.
import com.aspose.tex.*;
import java.io.ByteArrayOutputStream;
public class TeXOutputToMemoryStream {
public static void main(String[] args) throws Exception {
// Configure conversion options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
// Initialize memory output stream device
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// Configure output working directory for log/auxiliary files
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Logs/"));
// Run compilation directing PDF output to byte array stream
TeXJob job = new TeXJob("main", new PdfDevice(outputStream), options);
job.run();
byte[] pdfBytes = outputStream.toByteArray();
System.out.println("Generated PDF size in memory: " + pdfBytes.length + " bytes.");
}
}Instalação e configuração
Integre o Aspose.TeX para Java ao seu projeto usando o Maven:
Package Manager Console Command
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-tex</artifactId>
<version>Latest</version>
</dependency>
FAQ
1. Quais dispositivos de destino de saída são compatíveis com o Aspose.TeX for Java?
O Aspose.TeX é compatível com vários dispositivos de saída, incluindo PdfDevice (documentos PDF), XpsDevice (documentos XPS), SvgDevice (gráficos vetoriais escaláveis) e ImageDevice (imagens raster, como PNG, JPEG, TIFF e BMP).
2. Onde os arquivos auxiliares de compilação (.log, .aux) são salvos?
Os arquivos auxiliares são gravados no diretório especificado em TeXOptions.setOutputWorkingDirectory(). Se você usar OutputZipDirectory, os arquivos .log e .aux serão empacotados diretamente dentro do arquivo ZIP junto com o documento renderizado.
3. Posso suprimir ou redirecionar os arquivos de saída de log?
Sim. Você pode personalizar o tratamento da saída do terminal/log por meio de TeXOptions.setTerminalOut() ou atribuir uma implementação personalizada de IOutputWorkingDirectory para descartar ou redirecionar os logs de compilação.