Skip to content

Instantly share code, notes, and snippets.

@aspose-com-gists
Last active April 7, 2022 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aspose-com-gists/2c8cb628fe75575c76185dbf45760ea3 to your computer and use it in GitHub Desktop.
Save aspose-com-gists/2c8cb628fe75575c76185dbf45760ea3 to your computer and use it in GitHub Desktop.
Create PDF from LaTeX in Java

Learn how to create a PDF document from the LaTeX source file in Java: https://blog.aspose.com/2022/04/07/create-pdf-from-latex-in-java/

The following topics are covered in this article:

  1. Java API to Create PDF from LaTeX
  2. Create PDF from TeX (LaTeX) File in Java
  3. Create PDF from LTX (LaTeX) File in Java
  4. Convert TeX to XPS using Java
  5. Convert TeX ZIP Directory into PDF ZIP Directory using Java
// This code example demonstrates how to create a PDF from LTX source file.
// Working directory
String dataDir = "D:\\Files\\Tex\\";
// Create typesetting options.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Specify a file system working directory for input.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));
// Specify a file system working directory for output.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));
// Specify memory stream as output terminal.
options.setTerminalOut(new OutputMemoryTerminal());
// Set options for rendering into PDF format.
options.setSaveOptions(new PdfSaveOptions());
// Run typesetting.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();
// This code example demonstrates how to create a PDF from TeX source file.
// Working directory
String dataDir = "D:\\Files\\Tex\\";
// Create typesetting options.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Specify a file system working directory for input.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));
// Specify a file system working directory for output.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));
// Specify memory stream as output terminal.
options.setTerminalOut(new OutputMemoryTerminal());
// Set options for rendering into PDF format.
options.setSaveOptions(new PdfSaveOptions());
// Run typesetting.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
// This code example demonstrates how to convert a Tex to XPS.
// Working directory
String dataDir = "D:\\Files\\Tex\\";
// Create typesetting options.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Specify a file system working directory for input.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));
// Specify a file system working directory for output.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));
// Specify memory stream as output terminal.
options.setTerminalOut(new OutputMemoryTerminal());
// Set options for rendering into XPS format.
options.setSaveOptions(new XpsSaveOptions());
// Run typesetting.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
// This code example demonstrates how to convert a TeX ZIP directory to a PDF ZIP Directory.
// Working directory
String dataDir = "D:\\Files\\Tex\\";
// Open the stream on the ZIP archive that will serve as the input working directory.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");
// Open the stream on the ZIP archive that will serve as the output working directory.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");
try {
// Create conversion options for default ObjectTeX format on ObjectTeX engine extension.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Specify a ZIP archive working directory for the input.
options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));
// Specify a ZIP archive working directory for the output.
options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));
// Specify the console as the output terminal.
options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.
// Define the saving options.
options.setSaveOptions(new PdfSaveOptions());
// Run the job.
TeXJob job = new TeXJob("sample", new PdfDevice(), options);
job.run();
// For consequent output to look write.
options.getTerminalOut().getWriter().newLine();
// Finalize output ZIP archive.
((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
outZipStream.close();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment