/**
* How to create a PDF report from a LaTeX template file?
*
* This sample shows how to create a very simple invoice from an invoice template.
*
* Requirements:
* - The free Java LaTeX Report (JLR) library - http://nixo-soft.de/en/category/Downloads/page/libs/JavaLatexReport.php
* - Java Runtime Environment (JRE) 6
* - Installed or portable LaTeX Distribution(e.g. MiKTeX or MiKTeX Portable)
*
* For a more detailed Tutorial on how creating a LaTeX template file or how to use Java LaTeX Report,
* look at http://www.nixo-soft.de/tutorials/jlr/JLRTutorial.html
*/
import de.nixosoft.jlr.*;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
File workingDirectory = new File("C:" + File.separator + "Invoices");
File template = new File(workingDirectory.getAbsolutePath() + File.separator + "invoiceTemplate.tex");
File tempDir = new File(workingDirectory.getAbsolutePath() + File.separator + "temp");
if (!tempDir.isDirectory()) {
tempDir.mkdir();
}
File invoice1 = new File(tempDir.getAbsolutePath() + File.separator + "invoice1.tex");
File invoice2 = new File(tempDir.getAbsolutePath() + File.separator + "invoice2.tex");
try {
HashMap<String, String> data = new HashMap<String, String>();
data.put("Number", "1");
data.put("Customer name", "Ivan Pfeiffer");
data.put("Customer street", "Schwarzer Weg 4");
data.put("Customer zip", "13505 Berlin");
data.put("Development", "Software");
data.put("Price", "500");
JLRConverter converter = new JLRConverter("::", ":::");
if (!converter.parse(template, invoice1, data)) {
System.out.println(converter.getErrorMessage());
}
data.put("Number", "2");
data.put("Customer name", "Mike Mueller");
data.put("Customer street", "Prenzlauer Berg 12");
data.put("Customer zip", "10405 Berlin");
data.put("Development", "Hardware");
data.put("Price", "2350");
if (!converter.parse(template, invoice2, data)) {
System.out.println(converter.getErrorMessage());
}
File desktop = new File(System.getProperty("user.home") + File.separator + "Desktop");
JLRGenerator pdfGen = new JLRGenerator();
pdfGen.deleteTempTexFile(false);
if (!pdfGen.generate(invoice1, desktop, workingDirectory)) {
System.out.println(pdfGen.getErrorMessage());
}
JLROpener.open(pdfGen.getPDF());
if (!pdfGen.generate(invoice2, desktop, workingDirectory)) {
System.out.println(pdfGen.getErrorMessage());
}
JLROpener.open(pdfGen.getPDF());
} catch (IOException ex) {
System.err.println(ex.getMessage());
}
}
}
|