#!/usr/bin/perl use strict; use warnings; BEGIN { $ENV{CLASSPATH}='.:/usr/share/java/*:/the paths to the jars used/'; } use Inline Java => <<'END', CLASSPATH => $ENV{CLASSPATH}; import java.datasource.dom4j.Dom4jDataSource; import java.xmlreport.ProcessPdf; import java.xmlreport.ProcessReport; import java.io.InputStream; import java.io.OutputStream; import org.dom4j.Element; public class PdfReportGenerator { public static void generatePdfReport( String template_filename, String report_filename, String xmlData_filename ) throws Exception { // This function gets passed its parameters as strings // (makes it easier to call from Perl), so turn them into // InputStream and OutputStream objects. InputStream template = new FileInputStream(template_filename); OuputStream report = new FileOutputStream(report_filename); InputStream xmlData = new FileInputStream(xmlData_filename); ProcessReport.init(); // create the report. ProcessPdf proc = new ProcessPdf(template, report); proc.processSetup(); proc.processData(new Dom4jDataSource(xmlData), ""); proc.processComplete(); } } END my $generator = PdfReportGenerator->new; $generator->generatePdfReport( "/path/template.docx", "/path/report.pdf", "/path/datasource.xml", );