#!/usr/bin/perl -w use strict; use CGI::Carp qw(fatalsToBrowser); BEGIN { $ENV{CLASSPATH}='.:/path/'; } use Inline Java => <<'END', CLASSPATH => $ENV{CLASSPATH}; import java.datasource.dom4j.Dom4jDataSource; import java.xmlreport.ProcessPdf; import java.xmlreport.ProcessReport; import java.io.*; /** * Generate a PDF report using an XML file as the datasource. For this use case this is the entire set of code needed * to use Windward Reports. For different output formats and/or different datasources, the code will change. */ public class GeneratePdfReport { /** * Generate a PDF report using an XML file as the datasource. * @param template The report template. * @param report The generated report. * @param xmlData The XML data file. */ public static void generatePdfReport(String template_filename, String report_filename, String xmlData_filename) throws Exception { InputStream template = new FileInputStream(template_filename); OutputStream report = new FileOutputStream(report_filename); InputStream xmlData = new FileInputStream(xmlData_filename); // generally called once when your app starts, not in here. ProcessReport.init(); // create the report. ProcessPdf proc = new ProcessPdf(template, report); proc.processSetup(); proc.processData(new Dom4jDataSource(xmlData), ""); proc.processComplete(); } } END text("does this work still 2?"); my $template_file = '/path/PurchaseOrderTemplate.rtf'; my $report_file = '/path/order.pdf'; my $xml_file = '/path/order.xml'; my $generator = GeneratePdfReport->new; $generator->generatePdfReport( "$template_file", "$report_file", "$xml_file" ); print "yes it did\n";