Home » Archived » BIRT » SEVERE: Report engine can not create pdf emitter
|
Re: SEVERE: Report engine can not create pdf emitter [message #110584 is a reply to message #110499] |
Tue, 17 January 2006 17:39 |
|
Can you upload the Stacktrace?
Also verify that you have the other required files under the proper
location, like the iText jar file.
Jason Weathersby
BIRT PMC
"Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
> Hello,
>
> i need some help.
>
> I'm trying to generate a pdf file, but the following error occurs.
>
>
> SEVERE: Report engine can not create pdf emitter.
> Report C:/Program Files/Apache/Tomcat
> 5.5/webapps/BI/Documentos/estat.rptdesign
> run failed.
> org.eclipse.birt.report.engine.api.EngineException: Report engine fails to
> creat
> e extension to handle this request.
>
> The software that i'm using are:
> Windows XP SP2
> Eclipse 3.1.1
> BIRT 2.0.0
> EMF 2.1.*
> GEF 3.1.1
>
> I hope that someone can help me.
>
> Thanks
>
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #110794 is a reply to message #110584] |
Wed, 18 January 2006 12:06 |
Eclipse User |
|
|
|
Originally posted by: carvalho.humberto.almedina.net
This is a multi-part message in MIME format.
--------------060103060005040007090802
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Thanks for your help,
First I have to say that i'm using a Birt viewer and the Birt engine API.
If i use the viewer engine and then choose to print to pdf, this works,
but when i try to generate a pdf file from a rptdesign file using the
engine API, the error occurs
I think that I have all the required files in the right place, I
followed the instructions of the following url
" http://www.eclipse.org/birt/index.php?page=build/install.htm l"
iText.jar is placed in "plugins\org.eclipse.birt.report.engine.pdf\lib"
In my application, the engine directory points to the viewer root
directory. I have also tried using the 'Report Engine' directory of the
runtime distribution, with similar results.
In attachment I send a java file that i think that could be the problem...
I'll wait for your answer..
Thanks
Humberto Carvalho
Jason Weathersby wrote:
> Can you upload the Stacktrace?
> Also verify that you have the other required files under the proper
> location, like the iText jar file.
>
> Jason Weathersby
> BIRT PMC
>
>
> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>> Hello,
>>
>> i need some help.
>>
>> I'm trying to generate a pdf file, but the following error occurs.
>>
>>
>> SEVERE: Report engine can not create pdf emitter.
>> Report C:/Program Files/Apache/Tomcat
>> 5.5/webapps/BI/Documentos/estat.rptdesign
>> run failed.
>> org.eclipse.birt.report.engine.api.EngineException: Report engine fails to
>> creat
>> e extension to handle this request.
>>
>> The software that i'm using are:
>> Windows XP SP2
>> Eclipse 3.1.1
>> BIRT 2.0.0
>> EMF 2.1.*
>> GEF 3.1.1
>>
>> I hope that someone can help me.
>>
>> Thanks
>>
>
>
--------------060103060005040007090802
Content-Type: text/plain;
name="Conversor.java"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="Conversor.java"
package pt.almedina.reports;
/*
* Example command-line utility to generate BIRT reports. Shows the basics
* of integrating the BIRT report engine into a simple Java application.
*/
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.EngineConstants;
import org.eclipse.birt.report.engine.api.EngineException;
import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
import org.eclipse.birt.report.engine.api.HTMLRenderContext;
import org.eclipse.birt.report.engine.api.HTMLRenderOption;
import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
import org.eclipse.birt.report.engine.api.IParameterDefnBase;
import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
import org.eclipse.birt.report.engine.api.IReportRunnable;
import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
import org.eclipse.birt.report.engine.api.ReportEngine;
import org.eclipse.birt.report.engine.api.ReportParameterConverter;
/**
* Runs a BIRT report and writes the output to a directory.
*
* RunReport report-name -[h|p] [-i] param=value
*
* -h HTML (default)
* -p PDF
* -i Display report info.
* param=value Set parameter "param" to the value "value".
*/
public class Conversor
{
static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat 5.5/webapps/Viewer";//c:/reportengine";
static String IMAGE_URL = "C:/Program Files/Apache/Tomcat 5.5/webapps/BI/Documentos";
// Command-line main to parse arguments described above.
public static void main(String[] args) throws EngineException
{
int i = 0;
if ( i >= args.length )
{
System.out.println( "Nao foi especificado qualquer relatorio" );
return;
}
String reportName = args[i++];
String format = null;
boolean showInfo = false;
// Stoare parameter values into a hash map to later pass to the
// BIRT report engine.
HashMap params = new HashMap( );
for ( ; i < args.length; i++ )
{
if ( args[i].charAt(0) == '-' )
{
char flag = Character.toLowerCase( args[i].charAt( 1 ) );
if ( flag == 'p' )
{
format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
}
else if ( flag == 'h' )
{
format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
}
else if ( flag == 'i' )
{
showInfo = true;
}
else
{
usage( );
return;
}
}
else
{
// Get a parameter value. Note, this example code only works
// for string parameters. If you have date or number parameters,
// your application should parse them, then put the corresponding
// objects into the hash map.
String arg = args[i];
int posn = arg.indexOf( '=' );
if ( posn == -1 )
{
usage( );
return;
}
String param = arg.substring( 0, posn );
String value = arg.substring( posn + 1 );
Object put = params.put( param, value );
}
}
run( reportName, params, format, showInfo );
}
public static void usage( )
{
System.out.println( "Sintaxe:\n java RunReport rptName [-h|p]\n param=value ..." );
}
// Example function to run a report given the report name, parameters and
// output type. The output is put into a file in the same directory as the
// report itself.
public static void run( String name, HashMap params,
String format, boolean showInfo ) throws EngineException
{
// The EngineConfig is used to set up engine-wide configuration
// information.
EngineConfig config = new EngineConfig( );
// The Engine home is the location of the BIRT engine runtime.
// M3 Note: Use the report engine installed as part of the BIRT web app
// used to preview reports. Alter this path to the location of your
// Eclipse installation.
config.setEngineHome(REPORTENGINE_URL);
// HTML reports can have embedded images or charts. Set up the configuration
// required to write these into a directory in the output directory.
// The HTMLCompleteImageHandler is one provided by BIRT for this purpose.
// Your application can create a customized version to provide alternative
// ways to handle images.
HTMLEmitterConfig hc = new HTMLEmitterConfig( );
HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
hc.setImageHandler( imageHandler );
config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML, hc );
// Create the report engine itself. This engine can be used to run
// multiple reports.
ReportEngine engine = new ReportEngine( config );
// Open the report design.
IReportRunnable report = null;
try {
report = engine.openReportDesign( name );
} catch ( EngineException e) {
System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n EXCEPTION: "+e);
}
if ( showInfo )
{
showReportInfo( engine, report );
}
// Create a task to run the report and convert the output to HTML
// or PDF.
if ( format != null )
{
parseParams( engine, report, params );
IRunAndRenderTask task = engine.createRunAndRenderTask( report );
/*
//HTMLRenderContext renderContext = new HTMLRenderContext();
//renderContext.setImageDirectory(IMAGE_URL);
HTMLRenderContext renderContext = new HTMLRenderContext( );
renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
HashMap appContext = new HashMap( );
appContext.put("PDF_RENDER_CONTEXT", renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
task.setAppContext( appContext );
//task.setContext((Map) renderContext);
*/
HTMLRenderOption options = new HTMLRenderOption( );
options.setOutputFormat( format );
String output = name.replaceFirst( ".rptdesign", "." + format );
options.setOutputFileName( output );
task.setRenderOption( options );
String str = params.toString();
//task.setParameterValues( params );
// Run the report.
try
{
task.run( );
}
catch (EngineException e)
{
}
}
engine.destroy( );
}
// Display properties of the report and the list of report parameters.
static void showReportInfo( ReportEngine engine, IReportRunnable report )
{
// Display some of the general report properties.
// See the ROM Design specification for a list of properties.
System.out.print( "Report Name: " + report.getReportName() +
"\nTitle: " + report.getProperty( "title" ) +
"\nComments: " + report.getProperty( "comments" ) +
"\nDescription: " + report.getProperty( "description" ) +
"\nAuthor: " + report.getProperty( "author" ) +
"\nCreated By: " + report.getProperty( "createdBy" ) +
"\n" );
// Display the list of report parameters with their groups.
// Parameters defined outside a group appear inside a default, unnamed
// group.
IGetParameterDefinitionTask task = engine.createGetParameterDefinitionTask( report );
Collection params = task.getParameterDefns( true );
if ( params.isEmpty() )
{
System.out.print( "This report has no parameters.\n" );
return;
}
Iterator iter = params.iterator( );
while ( iter.hasNext( ) )
{
IParameterDefnBase param = (IParameterDefnBase) iter.next( );
if ( param instanceof IParameterGroupDefn )
{
IParameterGroupDefn group = (IParameterGroupDefn) param;
System.out.println( "Parameter Group: " + group.getDisplayName( ) );
Iterator i2 = group.getContents( ).iterator( );
while ( iter.hasNext( ) )
{
IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
showParam( task, member, " " );
}
}
else
showParam( task, param, "" );
}
}
// Show information for one parameter.
// Release 1 supports only scalar (single-value) parameters.
static void showParam( IGetParameterDefinitionTask task,
IParameterDefnBase defn,
String prefix )
{
IScalarParameterDefn param = (IScalarParameterDefn) defn;
System.out.println( prefix + "Parameter: " + param.getName( ) );
System.out.println( prefix + " Display Name: " + param.getDisplayName( ) );
System.out.println( prefix + " Type: " + param.getDataType( ) );
System.out.print( prefix + " Default Value: " );
// The default value is an expression. Evaluate it.
Object value = task.getDefaultValue( param );
System.out.println( value == null ? "none" : value.toString( ) );
}
static void parseParams( ReportEngine engine, IReportRunnable report, HashMap values )
{
System.out.println("ENTREI!!! VALORES: "+values);
if ( values.isEmpty( ) )
return;
IGetParameterDefinitionTask task = engine.createGetParameterDefinitionTask( report );
Collection params = task.getParameterDefns( false );
Iterator iter = values.keySet( ).iterator( );
System.out.println("VOU ENTRAR NO WHILE!!!");
int xxx = 1;
while ( iter.hasNext( ) )
{
System.out.println("WHILE: "+xxx);
String name = (String) iter.next( );
IScalarParameterDefn found = null;
Iterator i2 = params.iterator( );
while ( i2.hasNext( ) )
{
IParameterDefnBase param = (IParameterDefnBase) i2.next( );
if ( param instanceof IParameterGroupDefn )
continue;
if ( param.getName( ).equals( name ) )
{
found = (IScalarParameterDefn) param;
break;
}
}
if ( found == null )
{
System.err.println( "Parameter " + name + " not found in the report." );
continue;
}
String value = (String) values.get( name );
// ReportParameterConverter cfgConverter = new ReportParameterConverter( "", Locale.getDefault( ) );
// Object obj = cfgConverter.parse( value, found.getDataType( ) );
// values.put( name, obj );
values.put( name, value );
}
}
}
--------------060103060005040007090802--
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #110862 is a reply to message #110794] |
Wed, 18 January 2006 13:05 |
|
Humberto,
I just tried your sample and it worked fine.
I set my home to "c:/myruntime/report engine".
Below is a directory listing of the report engine directory. Notice I added
iText.
12/31/2005 11:50a 77,586 birt-oda.jar
12/31/2005 11:50a 956,273 chart-engine.jar
12/31/2005 11:50a 30,117 commons-cli-1.0.jar
12/31/2005 11:50a 37,754 commons-codec-1.3.jar
12/31/2005 11:50a 132,596 core.jar
12/31/2005 11:50a 569,702 dte.jar
12/31/2005 11:50a 870,507 engine.jar
12/31/2005 11:50a 71,513 flute.jar
11/29/2005 05:41p 1,145,105 itext-1.3.jar
12/31/2005 11:50a 699,081 js.jar
01/15/2006 11:33p 1,552 libs.txt
12/31/2005 11:50a 3,316,129 model.jar
12/31/2005 11:50a 80,541 oda.jar
12/31/2005 11:50a 69,367 odaconsumer-helper.jar
12/31/2005 11:50a 137,063 org.eclipse.emf.common_2.1.0.jar
12/31/2005 11:50a 144,460 org.eclipse.emf.ecore.xmi_2.1.0.jar
12/31/2005 11:50a 639,778 org.eclipse.emf.ecore_2.1.0.jar
01/04/2006 04:48p <DIR> plugins
12/31/2005 11:50a 14,526 sac.jar
01/04/2006 04:48p <DIR> samples
12/31/2005 11:50a 43,275 scriptapi.jar
01/18/2006 11:00a 0 test.txt
12/31/2005 11:50a 161,563 Tidy.jar
Jason
"HC" <carvalho.humberto@almedina.net> wrote in message
news:43CE2F39.9030104@almedina.net...
> Thanks for your help,
>
> First I have to say that i'm using a Birt viewer and the Birt engine API.
>
> If i use the viewer engine and then choose to print to pdf, this works,
> but when i try to generate a pdf file from a rptdesign file using the
> engine API, the error occurs
>
>
> I think that I have all the required files in the right place, I
> followed the instructions of the following url
> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>
> iText.jar is placed in "plugins\org.eclipse.birt.report.engine.pdf\lib"
>
> In my application, the engine directory points to the viewer root
> directory. I have also tried using the 'Report Engine' directory of the
> runtime distribution, with similar results.
>
> In attachment I send a java file that i think that could be the problem...
>
> I'll wait for your answer..
> Thanks
>
> Humberto Carvalho
>
>
>
>
>
>
> Jason Weathersby wrote:
>> Can you upload the Stacktrace?
>> Also verify that you have the other required files under the proper
>> location, like the iText jar file.
>>
>> Jason Weathersby
>> BIRT PMC
>>
>>
>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>> Hello,
>>>
>>> i need some help.
>>>
>>> I'm trying to generate a pdf file, but the following error occurs.
>>>
>>>
>>> SEVERE: Report engine can not create pdf emitter.
>>> Report C:/Program Files/Apache/Tomcat
>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>> run failed.
>>> org.eclipse.birt.report.engine.api.EngineException: Report engine fails
>>> to
>>> creat
>>> e extension to handle this request.
>>>
>>> The software that i'm using are:
>>> Windows XP SP2
>>> Eclipse 3.1.1
>>> BIRT 2.0.0
>>> EMF 2.1.*
>>> GEF 3.1.1
>>>
>>> I hope that someone can help me.
>>>
>>> Thanks
>>>
>>
>>
>
>
------------------------------------------------------------ --------------------
> package pt.almedina.reports;
>
> /*
> * Example command-line utility to generate BIRT reports. Shows the basics
> * of integrating the BIRT report engine into a simple Java application.
> */
>
>
> import java.util.Collection;
> import java.util.HashMap;
> import java.util.Iterator;
> import java.util.Map;
>
>
>
> import org.eclipse.birt.report.engine.api.EngineConfig;
> import org.eclipse.birt.report.engine.api.EngineConstants;
> import org.eclipse.birt.report.engine.api.EngineException;
> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
> import org.eclipse.birt.report.engine.api.IReportRunnable;
> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
> import org.eclipse.birt.report.engine.api.ReportEngine;
> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>
>
> /**
> * Runs a BIRT report and writes the output to a directory.
> *
> * RunReport report-name -[h|p] [-i] param=value
> *
> * -h HTML (default)
> * -p PDF
> * -i Display report info.
> * param=value Set parameter "param" to the value "value".
> */
>
> public class Conversor
> {
>
> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
> 5.5/webapps/Viewer";//c:/reportengine";
> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
> 5.5/webapps/BI/Documentos";
>
> // Command-line main to parse arguments described above.
>
> public static void main(String[] args) throws EngineException
> {
>
> int i = 0;
> if ( i >= args.length )
> {
> System.out.println( "Nao foi especificado qualquer relatorio" );
> return;
> }
> String reportName = args[i++];
> String format = null;
> boolean showInfo = false;
>
> // Stoare parameter values into a hash map to later pass to the
> // BIRT report engine.
>
> HashMap params = new HashMap( );
> for ( ; i < args.length; i++ )
> {
> if ( args[i].charAt(0) == '-' )
> {
> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
> if ( flag == 'p' )
> {
> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
> }
> else if ( flag == 'h' )
> {
> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
> }
> else if ( flag == 'i' )
> {
> showInfo = true;
> }
> else
> {
> usage( );
> return;
> }
> }
> else
> {
>
> // Get a parameter value. Note, this example code only works
> // for string parameters. If you have date or number parameters,
> // your application should parse them, then put the corresponding
> // objects into the hash map.
>
> String arg = args[i];
> int posn = arg.indexOf( '=' );
> if ( posn == -1 )
> {
> usage( );
> return;
> }
> String param = arg.substring( 0, posn );
> String value = arg.substring( posn + 1 );
> Object put = params.put( param, value );
>
> }
> }
>
>
> run( reportName, params, format, showInfo );
>
> }
>
> public static void usage( )
> {
> System.out.println( "Sintaxe:\n java RunReport rptName [-h|p]\n
> param=value ..." );
> }
>
> // Example function to run a report given the report name, parameters and
> // output type. The output is put into a file in the same directory as the
> // report itself.
>
> public static void run( String name, HashMap params,
> String format, boolean showInfo ) throws EngineException
> {
> // The EngineConfig is used to set up engine-wide configuration
> // information.
>
> EngineConfig config = new EngineConfig( );
>
> // The Engine home is the location of the BIRT engine runtime.
> // M3 Note: Use the report engine installed as part of the BIRT web app
> // used to preview reports. Alter this path to the location of your
> // Eclipse installation.
>
> config.setEngineHome(REPORTENGINE_URL);
>
> // HTML reports can have embedded images or charts. Set up the
> configuration
> // required to write these into a directory in the output directory.
> // The HTMLCompleteImageHandler is one provided by BIRT for this purpose.
> // Your application can create a customized version to provide alternative
> // ways to handle images.
>
> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>
>
> HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
> hc.setImageHandler( imageHandler );
> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML, hc );
>
> // Create the report engine itself. This engine can be used to run
> // multiple reports.
>
> ReportEngine engine = new ReportEngine( config );
>
> // Open the report design.
>
> IReportRunnable report = null;
>
>
> try {
> report = engine.openReportDesign( name );
> } catch ( EngineException e) {
>
> System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
> EXCEPTION: "+e);
>
> }
>
>
> if ( showInfo )
> {
> showReportInfo( engine, report );
> }
>
> // Create a task to run the report and convert the output to HTML
> // or PDF.
>
> if ( format != null )
> {
>
> parseParams( engine, report, params );
>
> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
> /*
> //HTMLRenderContext renderContext = new HTMLRenderContext();
> //renderContext.setImageDirectory(IMAGE_URL);
>
> HTMLRenderContext renderContext = new HTMLRenderContext( );
> renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
> HashMap appContext = new HashMap( );
> appContext.put("PDF_RENDER_CONTEXT",
> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
> task.setAppContext( appContext );
>
> //task.setContext((Map) renderContext);
> */
> HTMLRenderOption options = new HTMLRenderOption( );
> options.setOutputFormat( format );
> String output = name.replaceFirst( ".rptdesign", "." + format );
> options.setOutputFileName( output );
> task.setRenderOption( options );
> String str = params.toString();
>
>
> //task.setParameterValues( params );
>
> // Run the report.
>
> try
> {
> task.run( );
> }
> catch (EngineException e)
> {
> }
> }
>
> engine.destroy( );
> }
>
> // Display properties of the report and the list of report parameters.
>
> static void showReportInfo( ReportEngine engine, IReportRunnable report )
> {
> // Display some of the general report properties.
> // See the ROM Design specification for a list of properties.
>
> System.out.print( "Report Name: " + report.getReportName() +
> "\nTitle: " + report.getProperty( "title" ) +
> "\nComments: " + report.getProperty( "comments" ) +
> "\nDescription: " + report.getProperty( "description" ) +
> "\nAuthor: " + report.getProperty( "author" ) +
> "\nCreated By: " + report.getProperty( "createdBy" ) +
> "\n" );
>
> // Display the list of report parameters with their groups.
> // Parameters defined outside a group appear inside a default, unnamed
> // group.
>
> IGetParameterDefinitionTask task =
> engine.createGetParameterDefinitionTask( report );
> Collection params = task.getParameterDefns( true );
> if ( params.isEmpty() )
> {
> System.out.print( "This report has no parameters.\n" );
> return;
> }
>
> Iterator iter = params.iterator( );
> while ( iter.hasNext( ) )
> {
> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
> if ( param instanceof IParameterGroupDefn )
> {
> IParameterGroupDefn group = (IParameterGroupDefn) param;
> System.out.println( "Parameter Group: " + group.getDisplayName( ) );
> Iterator i2 = group.getContents( ).iterator( );
> while ( iter.hasNext( ) )
> {
> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
> showParam( task, member, " " );
> }
> }
> else
> showParam( task, param, "" );
> }
> }
>
> // Show information for one parameter.
> // Release 1 supports only scalar (single-value) parameters.
>
> static void showParam( IGetParameterDefinitionTask task,
> IParameterDefnBase defn,
> String prefix )
> {
> IScalarParameterDefn param = (IScalarParameterDefn) defn;
> System.out.println( prefix + "Parameter: " + param.getName( ) );
> System.out.println( prefix + " Display Name: " +
> param.getDisplayName( ) );
> System.out.println( prefix + " Type: " + param.getDataType( ) );
> System.out.print( prefix + " Default Value: " );
>
> // The default value is an expression. Evaluate it.
>
> Object value = task.getDefaultValue( param );
> System.out.println( value == null ? "none" : value.toString( ) );
> }
>
> static void parseParams( ReportEngine engine, IReportRunnable report,
> HashMap values )
> {
>
> System.out.println("ENTREI!!! VALORES: "+values);
> if ( values.isEmpty( ) )
> return;
>
> IGetParameterDefinitionTask task =
> engine.createGetParameterDefinitionTask( report );
> Collection params = task.getParameterDefns( false );
> Iterator iter = values.keySet( ).iterator( );
> System.out.println("VOU ENTRAR NO WHILE!!!");
> int xxx = 1;
> while ( iter.hasNext( ) )
> {
> System.out.println("WHILE: "+xxx);
> String name = (String) iter.next( );
>
> IScalarParameterDefn found = null;
> Iterator i2 = params.iterator( );
> while ( i2.hasNext( ) )
> {
> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
> if ( param instanceof IParameterGroupDefn )
> continue;
> if ( param.getName( ).equals( name ) )
> {
> found = (IScalarParameterDefn) param;
> break;
> }
> }
> if ( found == null )
> {
> System.err.println( "Parameter " + name + " not found in the report." );
> continue;
> }
> String value = (String) values.get( name );
> // ReportParameterConverter cfgConverter = new ReportParameterConverter(
> "", Locale.getDefault( ) );
> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
> // values.put( name, obj );
> values.put( name, value );
> }
> }
> }
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #111037 is a reply to message #110862] |
Wed, 18 January 2006 18:34 |
Eclipse User |
|
|
|
Originally posted by: carvalho.humberto.almedina.net
Hello,
I've tried what you said in your last e-mail, but the result was the
same.
In my last e-mail I didn't told you that if I try to generate a pdf file
or a html file in either cases the error occurs, and not only when I try
to generate a pdf file.
One thing that I saw comparing your list files with my Report Engine
files, is that model.jar in your Report Engine it's bigger than mine.
The other files i think that are identical.
I think that this isn't the problem, but I don't know.
Thanks
Humberto Carvalho
Jason Weathersby wrote:
> Humberto,
>
> I just tried your sample and it worked fine.
> I set my home to "c:/myruntime/report engine".
> Below is a directory listing of the report engine directory. Notice I added
> iText.
>
> 12/31/2005 11:50a 77,586 birt-oda.jar
> 12/31/2005 11:50a 956,273 chart-engine.jar
> 12/31/2005 11:50a 30,117 commons-cli-1.0.jar
> 12/31/2005 11:50a 37,754 commons-codec-1.3.jar
> 12/31/2005 11:50a 132,596 core.jar
> 12/31/2005 11:50a 569,702 dte.jar
> 12/31/2005 11:50a 870,507 engine.jar
> 12/31/2005 11:50a 71,513 flute.jar
> 11/29/2005 05:41p 1,145,105 itext-1.3.jar
> 12/31/2005 11:50a 699,081 js.jar
> 01/15/2006 11:33p 1,552 libs.txt
> 12/31/2005 11:50a 3,316,129 model.jar
> 12/31/2005 11:50a 80,541 oda.jar
> 12/31/2005 11:50a 69,367 odaconsumer-helper.jar
> 12/31/2005 11:50a 137,063 org.eclipse.emf.common_2.1.0.jar
> 12/31/2005 11:50a 144,460 org.eclipse.emf.ecore.xmi_2.1.0.jar
> 12/31/2005 11:50a 639,778 org.eclipse.emf.ecore_2.1.0.jar
> 01/04/2006 04:48p <DIR> plugins
> 12/31/2005 11:50a 14,526 sac.jar
> 01/04/2006 04:48p <DIR> samples
> 12/31/2005 11:50a 43,275 scriptapi.jar
> 01/18/2006 11:00a 0 test.txt
> 12/31/2005 11:50a 161,563 Tidy.jar
>
> Jason
>
> "HC" <carvalho.humberto@almedina.net> wrote in message
> news:43CE2F39.9030104@almedina.net...
>> Thanks for your help,
>>
>> First I have to say that i'm using a Birt viewer and the Birt engine API.
>>
>> If i use the viewer engine and then choose to print to pdf, this works,
>> but when i try to generate a pdf file from a rptdesign file using the
>> engine API, the error occurs
>>
>>
>> I think that I have all the required files in the right place, I
>> followed the instructions of the following url
>> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>>
>> iText.jar is placed in "plugins\org.eclipse.birt.report.engine.pdf\lib"
>>
>> In my application, the engine directory points to the viewer root
>> directory. I have also tried using the 'Report Engine' directory of the
>> runtime distribution, with similar results.
>>
>> In attachment I send a java file that i think that could be the problem...
>>
>> I'll wait for your answer..
>> Thanks
>>
>> Humberto Carvalho
>>
>>
>>
>>
>>
>>
>> Jason Weathersby wrote:
>>> Can you upload the Stacktrace?
>>> Also verify that you have the other required files under the proper
>>> location, like the iText jar file.
>>>
>>> Jason Weathersby
>>> BIRT PMC
>>>
>>>
>>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
>>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>>> Hello,
>>>>
>>>> i need some help.
>>>>
>>>> I'm trying to generate a pdf file, but the following error occurs.
>>>>
>>>>
>>>> SEVERE: Report engine can not create pdf emitter.
>>>> Report C:/Program Files/Apache/Tomcat
>>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>>> run failed.
>>>> org.eclipse.birt.report.engine.api.EngineException: Report engine fails
>>>> to
>>>> creat
>>>> e extension to handle this request.
>>>>
>>>> The software that i'm using are:
>>>> Windows XP SP2
>>>> Eclipse 3.1.1
>>>> BIRT 2.0.0
>>>> EMF 2.1.*
>>>> GEF 3.1.1
>>>>
>>>> I hope that someone can help me.
>>>>
>>>> Thanks
>>>>
>>>
>>
>
>
> ------------------------------------------------------------ --------------------
>
>
>> package pt.almedina.reports;
>>
>> /*
>> * Example command-line utility to generate BIRT reports. Shows the basics
>> * of integrating the BIRT report engine into a simple Java application.
>> */
>>
>>
>> import java.util.Collection;
>> import java.util.HashMap;
>> import java.util.Iterator;
>> import java.util.Map;
>>
>>
>>
>> import org.eclipse.birt.report.engine.api.EngineConfig;
>> import org.eclipse.birt.report.engine.api.EngineConstants;
>> import org.eclipse.birt.report.engine.api.EngineException;
>> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>> import org.eclipse.birt.report.engine.api.ReportEngine;
>> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>>
>>
>> /**
>> * Runs a BIRT report and writes the output to a directory.
>> *
>> * RunReport report-name -[h|p] [-i] param=value
>> *
>> * -h HTML (default)
>> * -p PDF
>> * -i Display report info.
>> * param=value Set parameter "param" to the value "value".
>> */
>>
>> public class Conversor
>> {
>>
>> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
>> 5.5/webapps/Viewer";//c:/reportengine";
>> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
>> 5.5/webapps/BI/Documentos";
>>
>> // Command-line main to parse arguments described above.
>>
>> public static void main(String[] args) throws EngineException
>> {
>>
>> int i = 0;
>> if ( i >= args.length )
>> {
>> System.out.println( "Nao foi especificado qualquer relatorio" );
>> return;
>> }
>> String reportName = args[i++];
>> String format = null;
>> boolean showInfo = false;
>>
>> // Stoare parameter values into a hash map to later pass to the
>> // BIRT report engine.
>>
>> HashMap params = new HashMap( );
>> for ( ; i < args.length; i++ )
>> {
>> if ( args[i].charAt(0) == '-' )
>> {
>> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
>> if ( flag == 'p' )
>> {
>> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>> }
>> else if ( flag == 'h' )
>> {
>> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>> }
>> else if ( flag == 'i' )
>> {
>> showInfo = true;
>> }
>> else
>> {
>> usage( );
>> return;
>> }
>> }
>> else
>> {
>>
>> // Get a parameter value. Note, this example code only works
>> // for string parameters. If you have date or number parameters,
>> // your application should parse them, then put the corresponding
>> // objects into the hash map.
>>
>> String arg = args[i];
>> int posn = arg.indexOf( '=' );
>> if ( posn == -1 )
>> {
>> usage( );
>> return;
>> }
>> String param = arg.substring( 0, posn );
>> String value = arg.substring( posn + 1 );
>> Object put = params.put( param, value );
>>
>> }
>> }
>>
>>
>> run( reportName, params, format, showInfo );
>>
>> }
>>
>> public static void usage( )
>> {
>> System.out.println( "Sintaxe:\n java RunReport rptName [-h|p]\n
>> param=value ..." );
>> }
>>
>> // Example function to run a report given the report name, parameters and
>> // output type. The output is put into a file in the same directory as the
>> // report itself.
>>
>> public static void run( String name, HashMap params,
>> String format, boolean showInfo ) throws EngineException
>> {
>> // The EngineConfig is used to set up engine-wide configuration
>> // information.
>>
>> EngineConfig config = new EngineConfig( );
>>
>> // The Engine home is the location of the BIRT engine runtime.
>> // M3 Note: Use the report engine installed as part of the BIRT web app
>> // used to preview reports. Alter this path to the location of your
>> // Eclipse installation.
>>
>> config.setEngineHome(REPORTENGINE_URL);
>>
>> // HTML reports can have embedded images or charts. Set up the
>> configuration
>> // required to write these into a directory in the output directory.
>> // The HTMLCompleteImageHandler is one provided by BIRT for this purpose.
>> // Your application can create a customized version to provide alternative
>> // ways to handle images.
>>
>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>>
>>
>> HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
>> hc.setImageHandler( imageHandler );
>> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML, hc );
>>
>> // Create the report engine itself. This engine can be used to run
>> // multiple reports.
>>
>> ReportEngine engine = new ReportEngine( config );
>>
>> // Open the report design.
>>
>> IReportRunnable report = null;
>>
>>
>> try {
>> report = engine.openReportDesign( name );
>> } catch ( EngineException e) {
>>
>> System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
>> EXCEPTION: "+e);
>>
>> }
>>
>>
>> if ( showInfo )
>> {
>> showReportInfo( engine, report );
>> }
>>
>> // Create a task to run the report and convert the output to HTML
>> // or PDF.
>>
>> if ( format != null )
>> {
>>
>> parseParams( engine, report, params );
>>
>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>> /*
>> //HTMLRenderContext renderContext = new HTMLRenderContext();
>> //renderContext.setImageDirectory(IMAGE_URL);
>>
>> HTMLRenderContext renderContext = new HTMLRenderContext( );
>> renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
>> HashMap appContext = new HashMap( );
>> appContext.put("PDF_RENDER_CONTEXT",
>> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
>> task.setAppContext( appContext );
>>
>> //task.setContext((Map) renderContext);
>> */
>> HTMLRenderOption options = new HTMLRenderOption( );
>> options.setOutputFormat( format );
>> String output = name.replaceFirst( ".rptdesign", "." + format );
>> options.setOutputFileName( output );
>> task.setRenderOption( options );
>> String str = params.toString();
>>
>>
>> //task.setParameterValues( params );
>>
>> // Run the report.
>>
>> try
>> {
>> task.run( );
>> }
>> catch (EngineException e)
>> {
>> }
>> }
>>
>> engine.destroy( );
>> }
>>
>> // Display properties of the report and the list of report parameters.
>>
>> static void showReportInfo( ReportEngine engine, IReportRunnable report )
>> {
>> // Display some of the general report properties.
>> // See the ROM Design specification for a list of properties.
>>
>> System.out.print( "Report Name: " + report.getReportName() +
>> "\nTitle: " + report.getProperty( "title" ) +
>> "\nComments: " + report.getProperty( "comments" ) +
>> "\nDescription: " + report.getProperty( "description" ) +
>> "\nAuthor: " + report.getProperty( "author" ) +
>> "\nCreated By: " + report.getProperty( "createdBy" ) +
>> "\n" );
>>
>> // Display the list of report parameters with their groups.
>> // Parameters defined outside a group appear inside a default, unnamed
>> // group.
>>
>> IGetParameterDefinitionTask task =
>> engine.createGetParameterDefinitionTask( report );
>> Collection params = task.getParameterDefns( true );
>> if ( params.isEmpty() )
>> {
>> System.out.print( "This report has no parameters.\n" );
>> return;
>> }
>>
>> Iterator iter = params.iterator( );
>> while ( iter.hasNext( ) )
>> {
>> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
>> if ( param instanceof IParameterGroupDefn )
>> {
>> IParameterGroupDefn group = (IParameterGroupDefn) param;
>> System.out.println( "Parameter Group: " + group.getDisplayName( ) );
>> Iterator i2 = group.getContents( ).iterator( );
>> while ( iter.hasNext( ) )
>> {
>> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
>> showParam( task, member, " " );
>> }
>> }
>> else
>> showParam( task, param, "" );
>> }
>> }
>>
>> // Show information for one parameter.
>> // Release 1 supports only scalar (single-value) parameters.
>>
>> static void showParam( IGetParameterDefinitionTask task,
>> IParameterDefnBase defn,
>> String prefix )
>> {
>> IScalarParameterDefn param = (IScalarParameterDefn) defn;
>> System.out.println( prefix + "Parameter: " + param.getName( ) );
>> System.out.println( prefix + " Display Name: " +
>> param.getDisplayName( ) );
>> System.out.println( prefix + " Type: " + param.getDataType( ) );
>> System.out.print( prefix + " Default Value: " );
>>
>> // The default value is an expression. Evaluate it.
>>
>> Object value = task.getDefaultValue( param );
>> System.out.println( value == null ? "none" : value.toString( ) );
>> }
>>
>> static void parseParams( ReportEngine engine, IReportRunnable report,
>> HashMap values )
>> {
>>
>> System.out.println("ENTREI!!! VALORES: "+values);
>> if ( values.isEmpty( ) )
>> return;
>>
>> IGetParameterDefinitionTask task =
>> engine.createGetParameterDefinitionTask( report );
>> Collection params = task.getParameterDefns( false );
>> Iterator iter = values.keySet( ).iterator( );
>> System.out.println("VOU ENTRAR NO WHILE!!!");
>> int xxx = 1;
>> while ( iter.hasNext( ) )
>> {
>> System.out.println("WHILE: "+xxx);
>> String name = (String) iter.next( );
>>
>> IScalarParameterDefn found = null;
>> Iterator i2 = params.iterator( );
>> while ( i2.hasNext( ) )
>> {
>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>> if ( param instanceof IParameterGroupDefn )
>> continue;
>> if ( param.getName( ).equals( name ) )
>> {
>> found = (IScalarParameterDefn) param;
>> break;
>> }
>> }
>> if ( found == null )
>> {
>> System.err.println( "Parameter " + name + " not found in the report." );
>> continue;
>> }
>> String value = (String) values.get( name );
>> // ReportParameterConverter cfgConverter = new ReportParameterConverter(
>> "", Locale.getDefault( ) );
>> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
>> // values.put( name, obj );
>> values.put( name, value );
>> }
>> }
>> }
>
>
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #111051 is a reply to message #111037] |
Wed, 18 January 2006 15:48 |
|
Humberto,
What version of BIRT are you using?
Are you getting a stack trace?
Also are you using Eclipse or something like Ant to build your class?
Thanks
Jason
"HC" <carvalho.humberto@almedina.net> wrote in message
news:43CE8A3E.60607@almedina.net...
> Hello,
>
> I've tried what you said in your last e-mail, but the result was the same.
>
> In my last e-mail I didn't told you that if I try to generate a pdf file
> or a html file in either cases the error occurs, and not only when I try
> to generate a pdf file.
>
> One thing that I saw comparing your list files with my Report Engine
> files, is that model.jar in your Report Engine it's bigger than mine. The
> other files i think that are identical.
>
> I think that this isn't the problem, but I don't know.
>
> Thanks
>
> Humberto Carvalho
>
> Jason Weathersby wrote:
>> Humberto,
>>
>> I just tried your sample and it worked fine.
>> I set my home to "c:/myruntime/report engine".
>> Below is a directory listing of the report engine directory. Notice I
>> added iText.
>>
>> 12/31/2005 11:50a 77,586 birt-oda.jar
>> 12/31/2005 11:50a 956,273 chart-engine.jar
>> 12/31/2005 11:50a 30,117 commons-cli-1.0.jar
>> 12/31/2005 11:50a 37,754 commons-codec-1.3.jar
>> 12/31/2005 11:50a 132,596 core.jar
>> 12/31/2005 11:50a 569,702 dte.jar
>> 12/31/2005 11:50a 870,507 engine.jar
>> 12/31/2005 11:50a 71,513 flute.jar
>> 11/29/2005 05:41p 1,145,105 itext-1.3.jar
>> 12/31/2005 11:50a 699,081 js.jar
>> 01/15/2006 11:33p 1,552 libs.txt
>> 12/31/2005 11:50a 3,316,129 model.jar
>> 12/31/2005 11:50a 80,541 oda.jar
>> 12/31/2005 11:50a 69,367 odaconsumer-helper.jar
>> 12/31/2005 11:50a 137,063 org.eclipse.emf.common_2.1.0.jar
>> 12/31/2005 11:50a 144,460
>> org.eclipse.emf.ecore.xmi_2.1.0.jar
>> 12/31/2005 11:50a 639,778 org.eclipse.emf.ecore_2.1.0.jar
>> 01/04/2006 04:48p <DIR> plugins
>> 12/31/2005 11:50a 14,526 sac.jar
>> 01/04/2006 04:48p <DIR> samples
>> 12/31/2005 11:50a 43,275 scriptapi.jar
>> 01/18/2006 11:00a 0 test.txt
>> 12/31/2005 11:50a 161,563 Tidy.jar
>>
>> Jason
>>
>> "HC" <carvalho.humberto@almedina.net> wrote in message
>> news:43CE2F39.9030104@almedina.net...
>>> Thanks for your help,
>>>
>>> First I have to say that i'm using a Birt viewer and the Birt engine
>>> API.
>>>
>>> If i use the viewer engine and then choose to print to pdf, this works,
>>> but when i try to generate a pdf file from a rptdesign file using the
>>> engine API, the error occurs
>>>
>>>
>>> I think that I have all the required files in the right place, I
>>> followed the instructions of the following url
>>> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>>>
>>> iText.jar is placed in "plugins\org.eclipse.birt.report.engine.pdf\lib"
>>>
>>> In my application, the engine directory points to the viewer root
>>> directory. I have also tried using the 'Report Engine' directory of the
>>> runtime distribution, with similar results.
>>>
>>> In attachment I send a java file that i think that could be the
>>> problem...
>>>
>>> I'll wait for your answer..
>>> Thanks
>>>
>>> Humberto Carvalho
>>>
>>>
>>>
>>>
>>>
>>>
>>> Jason Weathersby wrote:
>>>> Can you upload the Stacktrace?
>>>> Also verify that you have the other required files under the proper
>>>> location, like the iText jar file.
>>>>
>>>> Jason Weathersby
>>>> BIRT PMC
>>>>
>>>>
>>>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
>>>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>>>> Hello,
>>>>>
>>>>> i need some help.
>>>>>
>>>>> I'm trying to generate a pdf file, but the following error occurs.
>>>>>
>>>>>
>>>>> SEVERE: Report engine can not create pdf emitter.
>>>>> Report C:/Program Files/Apache/Tomcat
>>>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>>>> run failed.
>>>>> org.eclipse.birt.report.engine.api.EngineException: Report engine
>>>>> fails to
>>>>> creat
>>>>> e extension to handle this request.
>>>>>
>>>>> The software that i'm using are:
>>>>> Windows XP SP2
>>>>> Eclipse 3.1.1
>>>>> BIRT 2.0.0
>>>>> EMF 2.1.*
>>>>> GEF 3.1.1
>>>>>
>>>>> I hope that someone can help me.
>>>>>
>>>>> Thanks
>>>>>
>>>>
>>>
>>
>>
>> ------------------------------------------------------------ --------------------
>>
>>
>>> package pt.almedina.reports;
>>>
>>> /*
>>> * Example command-line utility to generate BIRT reports. Shows the
>>> basics
>>> * of integrating the BIRT report engine into a simple Java application.
>>> */
>>>
>>>
>>> import java.util.Collection;
>>> import java.util.HashMap;
>>> import java.util.Iterator;
>>> import java.util.Map;
>>>
>>>
>>>
>>> import org.eclipse.birt.report.engine.api.EngineConfig;
>>> import org.eclipse.birt.report.engine.api.EngineConstants;
>>> import org.eclipse.birt.report.engine.api.EngineException;
>>> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>>> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
>>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>>> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>>> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
>>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>>> import org.eclipse.birt.report.engine.api.ReportEngine;
>>> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>>>
>>>
>>> /**
>>> * Runs a BIRT report and writes the output to a directory.
>>> *
>>> * RunReport report-name -[h|p] [-i] param=value
>>> *
>>> * -h HTML (default)
>>> * -p PDF
>>> * -i Display report info.
>>> * param=value Set parameter "param" to the value "value".
>>> */
>>>
>>> public class Conversor
>>> {
>>>
>>> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
>>> 5.5/webapps/Viewer";//c:/reportengine";
>>> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
>>> 5.5/webapps/BI/Documentos";
>>>
>>> // Command-line main to parse arguments described above.
>>>
>>> public static void main(String[] args) throws EngineException
>>> {
>>>
>>> int i = 0;
>>> if ( i >= args.length )
>>> {
>>> System.out.println( "Nao foi especificado qualquer relatorio" );
>>> return;
>>> }
>>> String reportName = args[i++];
>>> String format = null;
>>> boolean showInfo = false;
>>>
>>> // Stoare parameter values into a hash map to later pass to the
>>> // BIRT report engine.
>>>
>>> HashMap params = new HashMap( );
>>> for ( ; i < args.length; i++ )
>>> {
>>> if ( args[i].charAt(0) == '-' )
>>> {
>>> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
>>> if ( flag == 'p' )
>>> {
>>> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>>> }
>>> else if ( flag == 'h' )
>>> {
>>> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>>> }
>>> else if ( flag == 'i' )
>>> {
>>> showInfo = true;
>>> }
>>> else
>>> {
>>> usage( );
>>> return;
>>> }
>>> }
>>> else
>>> {
>>>
>>> // Get a parameter value. Note, this example code only works
>>> // for string parameters. If you have date or number parameters,
>>> // your application should parse them, then put the corresponding
>>> // objects into the hash map.
>>>
>>> String arg = args[i];
>>> int posn = arg.indexOf( '=' );
>>> if ( posn == -1 )
>>> {
>>> usage( );
>>> return;
>>> }
>>> String param = arg.substring( 0, posn );
>>> String value = arg.substring( posn + 1 );
>>> Object put = params.put( param, value );
>>>
>>> }
>>> }
>>>
>>>
>>> run( reportName, params, format, showInfo );
>>>
>>> }
>>>
>>> public static void usage( )
>>> {
>>> System.out.println( "Sintaxe:\n java RunReport rptName [-h|p]\n
>>> param=value ..." );
>>> }
>>>
>>> // Example function to run a report given the report name, parameters
>>> and
>>> // output type. The output is put into a file in the same directory as
>>> the
>>> // report itself.
>>>
>>> public static void run( String name, HashMap params,
>>> String format, boolean showInfo ) throws EngineException
>>> {
>>> // The EngineConfig is used to set up engine-wide configuration
>>> // information.
>>>
>>> EngineConfig config = new EngineConfig( );
>>>
>>> // The Engine home is the location of the BIRT engine runtime.
>>> // M3 Note: Use the report engine installed as part of the BIRT web app
>>> // used to preview reports. Alter this path to the location of your
>>> // Eclipse installation.
>>>
>>> config.setEngineHome(REPORTENGINE_URL);
>>>
>>> // HTML reports can have embedded images or charts. Set up the
>>> configuration
>>> // required to write these into a directory in the output directory.
>>> // The HTMLCompleteImageHandler is one provided by BIRT for this
>>> purpose.
>>> // Your application can create a customized version to provide
>>> alternative
>>> // ways to handle images.
>>>
>>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>>>
>>>
>>> HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
>>> hc.setImageHandler( imageHandler );
>>> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML,
>>> hc );
>>>
>>> // Create the report engine itself. This engine can be used to
>>> run
>>> // multiple reports.
>>>
>>> ReportEngine engine = new ReportEngine( config );
>>>
>>> // Open the report design.
>>>
>>> IReportRunnable report = null;
>>>
>>>
>>> try {
>>> report = engine.openReportDesign( name );
>>> } catch ( EngineException e) {
>>>
>>> System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
>>> EXCEPTION: "+e);
>>>
>>> }
>>>
>>>
>>> if ( showInfo )
>>> {
>>> showReportInfo( engine, report );
>>> }
>>>
>>> // Create a task to run the report and convert the output to HTML
>>> // or PDF.
>>>
>>> if ( format != null )
>>> {
>>>
>>> parseParams( engine, report, params );
>>>
>>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>>> /*
>>> //HTMLRenderContext renderContext = new HTMLRenderContext();
>>> //renderContext.setImageDirectory(IMAGE_URL);
>>>
>>> HTMLRenderContext renderContext = new HTMLRenderContext( );
>>> renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
>>> HashMap appContext = new HashMap( );
>>> appContext.put("PDF_RENDER_CONTEXT",
>>> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
>>> task.setAppContext( appContext );
>>>
>>> //task.setContext((Map) renderContext);
>>> */
>>> HTMLRenderOption options = new HTMLRenderOption( );
>>> options.setOutputFormat( format );
>>> String output = name.replaceFirst( ".rptdesign", "." + format );
>>> options.setOutputFileName( output );
>>> task.setRenderOption( options );
>>> String str = params.toString();
>>>
>>>
>>> //task.setParameterValues( params );
>>>
>>> // Run the report.
>>>
>>> try
>>> {
>>> task.run( );
>>> }
>>> catch (EngineException e)
>>> {
>>> }
>>> }
>>>
>>> engine.destroy( );
>>> }
>>>
>>> // Display properties of the report and the list of report parameters.
>>>
>>> static void showReportInfo( ReportEngine engine, IReportRunnable
>>> report )
>>> {
>>> // Display some of the general report properties.
>>> // See the ROM Design specification for a list of properties.
>>>
>>> System.out.print( "Report Name: " + report.getReportName() +
>>> "\nTitle: " + report.getProperty( "title" ) +
>>> "\nComments: " + report.getProperty( "comments" ) +
>>> "\nDescription: " + report.getProperty( "description" ) +
>>> "\nAuthor: " + report.getProperty( "author" ) +
>>> "\nCreated By: " + report.getProperty( "createdBy" ) +
>>> "\n" );
>>>
>>> // Display the list of report parameters with their groups.
>>> // Parameters defined outside a group appear inside a default, unnamed
>>> // group.
>>>
>>> IGetParameterDefinitionTask task =
>>> engine.createGetParameterDefinitionTask( report );
>>> Collection params = task.getParameterDefns( true );
>>> if ( params.isEmpty() )
>>> {
>>> System.out.print( "This report has no parameters.\n" );
>>> return;
>>> }
>>>
>>> Iterator iter = params.iterator( );
>>> while ( iter.hasNext( ) )
>>> {
>>> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
>>> if ( param instanceof IParameterGroupDefn )
>>> {
>>> IParameterGroupDefn group = (IParameterGroupDefn) param;
>>> System.out.println( "Parameter Group: " + group.getDisplayName( ) );
>>> Iterator i2 = group.getContents( ).iterator( );
>>> while ( iter.hasNext( ) )
>>> {
>>> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
>>> showParam( task, member, " " );
>>> }
>>> }
>>> else
>>> showParam( task, param, "" );
>>> }
>>> }
>>>
>>> // Show information for one parameter.
>>> // Release 1 supports only scalar (single-value) parameters.
>>>
>>> static void showParam( IGetParameterDefinitionTask task,
>>> IParameterDefnBase defn,
>>> String prefix )
>>> {
>>> IScalarParameterDefn param = (IScalarParameterDefn) defn;
>>> System.out.println( prefix + "Parameter: " + param.getName( ) );
>>> System.out.println( prefix + " Display Name: " +
>>> param.getDisplayName( ) );
>>> System.out.println( prefix + " Type: " + param.getDataType( ) );
>>> System.out.print( prefix + " Default Value: " );
>>>
>>> // The default value is an expression. Evaluate it.
>>>
>>> Object value = task.getDefaultValue( param );
>>> System.out.println( value == null ? "none" : value.toString( ) );
>>> }
>>>
>>> static void parseParams( ReportEngine engine, IReportRunnable report,
>>> HashMap values )
>>> {
>>>
>>> System.out.println("ENTREI!!! VALORES: "+values);
>>> if ( values.isEmpty( ) )
>>> return;
>>>
>>> IGetParameterDefinitionTask task =
>>> engine.createGetParameterDefinitionTask( report );
>>> Collection params = task.getParameterDefns( false );
>>> Iterator iter = values.keySet( ).iterator( );
>>> System.out.println("VOU ENTRAR NO WHILE!!!");
>>> int xxx = 1;
>>> while ( iter.hasNext( ) )
>>> {
>>> System.out.println("WHILE: "+xxx);
>>> String name = (String) iter.next( );
>>>
>>> IScalarParameterDefn found = null;
>>> Iterator i2 = params.iterator( );
>>> while ( i2.hasNext( ) )
>>> {
>>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>>> if ( param instanceof IParameterGroupDefn )
>>> continue;
>>> if ( param.getName( ).equals( name ) )
>>> {
>>> found = (IScalarParameterDefn) param;
>>> break;
>>> }
>>> }
>>> if ( found == null )
>>> {
>>> System.err.println( "Parameter " + name + " not found in the report." );
>>> continue;
>>> }
>>> String value = (String) values.get( name );
>>> // ReportParameterConverter cfgConverter = new
>>> ReportParameterConverter( "", Locale.getDefault( ) );
>>> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
>>> // values.put( name, obj );
>>> values.put( name, value );
>>> }
>>> }
>>> }
>>
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #111469 is a reply to message #111051] |
Thu, 19 January 2006 11:25 |
Eclipse User |
|
|
|
Originally posted by: carvalho.humberto.almedina.net
This is a multi-part message in MIME format.
--------------050008050901040404000204
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Jason,
I'm using:
Windows XP SP2
Tomcat 5.5.12
Eclipse 3.1.1
BIRT 2.0.0
EMF 2.1.*
GEF 3.1.1
The Report Engine and the Viewer that I use came in the
birt-runtime-2.0RC1.zip from BIRT download page.
In attachment I send you a zip file with 2 files that I think you asked for.
Thanks for your help
Humberto
Jason Weathersby wrote:
> Humberto,
>
> What version of BIRT are you using?
> Are you getting a stack trace?
> Also are you using Eclipse or something like Ant to build your class?
> Thanks
>
> Jason
>
> "HC" <carvalho.humberto@almedina.net> wrote in message
> news:43CE8A3E.60607@almedina.net...
>> Hello,
>>
>> I've tried what you said in your last e-mail, but the result was the same.
>>
>> In my last e-mail I didn't told you that if I try to generate a pdf file
>> or a html file in either cases the error occurs, and not only when I try
>> to generate a pdf file.
>>
>> One thing that I saw comparing your list files with my Report Engine
>> files, is that model.jar in your Report Engine it's bigger than mine. The
>> other files i think that are identical.
>>
>> I think that this isn't the problem, but I don't know.
>>
>> Thanks
>>
>> Humberto Carvalho
>>
>> Jason Weathersby wrote:
>>> Humberto,
>>>
>>> I just tried your sample and it worked fine.
>>> I set my home to "c:/myruntime/report engine".
>>> Below is a directory listing of the report engine directory. Notice I
>>> added iText.
>>>
>>> 12/31/2005 11:50a 77,586 birt-oda.jar
>>> 12/31/2005 11:50a 956,273 chart-engine.jar
>>> 12/31/2005 11:50a 30,117 commons-cli-1.0.jar
>>> 12/31/2005 11:50a 37,754 commons-codec-1.3.jar
>>> 12/31/2005 11:50a 132,596 core.jar
>>> 12/31/2005 11:50a 569,702 dte.jar
>>> 12/31/2005 11:50a 870,507 engine.jar
>>> 12/31/2005 11:50a 71,513 flute.jar
>>> 11/29/2005 05:41p 1,145,105 itext-1.3.jar
>>> 12/31/2005 11:50a 699,081 js.jar
>>> 01/15/2006 11:33p 1,552 libs.txt
>>> 12/31/2005 11:50a 3,316,129 model.jar
>>> 12/31/2005 11:50a 80,541 oda.jar
>>> 12/31/2005 11:50a 69,367 odaconsumer-helper.jar
>>> 12/31/2005 11:50a 137,063 org.eclipse.emf.common_2.1.0.jar
>>> 12/31/2005 11:50a 144,460
>>> org.eclipse.emf.ecore.xmi_2.1.0.jar
>>> 12/31/2005 11:50a 639,778 org.eclipse.emf.ecore_2.1.0.jar
>>> 01/04/2006 04:48p <DIR> plugins
>>> 12/31/2005 11:50a 14,526 sac.jar
>>> 01/04/2006 04:48p <DIR> samples
>>> 12/31/2005 11:50a 43,275 scriptapi.jar
>>> 01/18/2006 11:00a 0 test.txt
>>> 12/31/2005 11:50a 161,563 Tidy.jar
>>>
>>> Jason
>>>
>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>> news:43CE2F39.9030104@almedina.net...
>>>> Thanks for your help,
>>>>
>>>> First I have to say that i'm using a Birt viewer and the Birt engine
>>>> API.
>>>>
>>>> If i use the viewer engine and then choose to print to pdf, this works,
>>>> but when i try to generate a pdf file from a rptdesign file using the
>>>> engine API, the error occurs
>>>>
>>>>
>>>> I think that I have all the required files in the right place, I
>>>> followed the instructions of the following url
>>>> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>>>>
>>>> iText.jar is placed in "plugins\org.eclipse.birt.report.engine.pdf\lib"
>>>>
>>>> In my application, the engine directory points to the viewer root
>>>> directory. I have also tried using the 'Report Engine' directory of the
>>>> runtime distribution, with similar results.
>>>>
>>>> In attachment I send a java file that i think that could be the
>>>> problem...
>>>>
>>>> I'll wait for your answer..
>>>> Thanks
>>>>
>>>> Humberto Carvalho
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Jason Weathersby wrote:
>>>>> Can you upload the Stacktrace?
>>>>> Also verify that you have the other required files under the proper
>>>>> location, like the iText jar file.
>>>>>
>>>>> Jason Weathersby
>>>>> BIRT PMC
>>>>>
>>>>>
>>>>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
>>>>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>>>>> Hello,
>>>>>>
>>>>>> i need some help.
>>>>>>
>>>>>> I'm trying to generate a pdf file, but the following error occurs.
>>>>>>
>>>>>>
>>>>>> SEVERE: Report engine can not create pdf emitter.
>>>>>> Report C:/Program Files/Apache/Tomcat
>>>>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>>>>> run failed.
>>>>>> org.eclipse.birt.report.engine.api.EngineException: Report engine
>>>>>> fails to
>>>>>> creat
>>>>>> e extension to handle this request.
>>>>>>
>>>>>> The software that i'm using are:
>>>>>> Windows XP SP2
>>>>>> Eclipse 3.1.1
>>>>>> BIRT 2.0.0
>>>>>> EMF 2.1.*
>>>>>> GEF 3.1.1
>>>>>>
>>>>>> I hope that someone can help me.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>
>>> ------------------------------------------------------------ --------------------
>>>
>>>
>>>> package pt.almedina.reports;
>>>>
>>>> /*
>>>> * Example command-line utility to generate BIRT reports. Shows the
>>>> basics
>>>> * of integrating the BIRT report engine into a simple Java application.
>>>> */
>>>>
>>>>
>>>> import java.util.Collection;
>>>> import java.util.HashMap;
>>>> import java.util.Iterator;
>>>> import java.util.Map;
>>>>
>>>>
>>>>
>>>> import org.eclipse.birt.report.engine.api.EngineConfig;
>>>> import org.eclipse.birt.report.engine.api.EngineConstants;
>>>> import org.eclipse.birt.report.engine.api.EngineException;
>>>> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>>>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>>>> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
>>>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>>>> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>>>> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
>>>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>>>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>>>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>>>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>>>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>>>> import org.eclipse.birt.report.engine.api.ReportEngine;
>>>> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>>>>
>>>>
>>>> /**
>>>> * Runs a BIRT report and writes the output to a directory.
>>>> *
>>>> * RunReport report-name -[h|p] [-i] param=value
>>>> *
>>>> * -h HTML (default)
>>>> * -p PDF
>>>> * -i Display report info.
>>>> * param=value Set parameter "param" to the value "value".
>>>> */
>>>>
>>>> public class Conversor
>>>> {
>>>>
>>>> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
>>>> 5.5/webapps/Viewer";//c:/reportengine";
>>>> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
>>>> 5.5/webapps/BI/Documentos";
>>>>
>>>> // Command-line main to parse arguments described above.
>>>>
>>>> public static void main(String[] args) throws EngineException
>>>> {
>>>>
>>>> int i = 0;
>>>> if ( i >= args.length )
>>>> {
>>>> System.out.println( "Nao foi especificado qualquer relatorio" );
>>>> return;
>>>> }
>>>> String reportName = args[i++];
>>>> String format = null;
>>>> boolean showInfo = false;
>>>>
>>>> // Stoare parameter values into a hash map to later pass to the
>>>> // BIRT report engine.
>>>>
>>>> HashMap params = new HashMap( );
>>>> for ( ; i < args.length; i++ )
>>>> {
>>>> if ( args[i].charAt(0) == '-' )
>>>> {
>>>> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
>>>> if ( flag == 'p' )
>>>> {
>>>> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>>>> }
>>>> else if ( flag == 'h' )
>>>> {
>>>> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>>>> }
>>>> else if ( flag == 'i' )
>>>> {
>>>> showInfo = true;
>>>> }
>>>> else
>>>> {
>>>> usage( );
>>>> return;
>>>> }
>>>> }
>>>> else
>>>> {
>>>>
>>>> // Get a parameter value. Note, this example code only works
>>>> // for string parameters. If you have date or number parameters,
>>>> // your application should parse them, then put the corresponding
>>>> // objects into the hash map.
>>>>
>>>> String arg = args[i];
>>>> int posn = arg.indexOf( '=' );
>>>> if ( posn == -1 )
>>>> {
>>>> usage( );
>>>> return;
>>>> }
>>>> String param = arg.substring( 0, posn );
>>>> String value = arg.substring( posn + 1 );
>>>> Object put = params.put( param, value );
>>>>
>>>> }
>>>> }
>>>>
>>>>
>>>> run( reportName, params, format, showInfo );
>>>>
>>>> }
>>>>
>>>> public static void usage( )
>>>> {
>>>> System.out.println( "Sintaxe:\n java RunReport rptName [-h|p]\n
>>>> param=value ..." );
>>>> }
>>>>
>>>> // Example function to run a report given the report name, parameters
>>>> and
>>>> // output type. The output is put into a file in the same directory as
>>>> the
>>>> // report itself.
>>>>
>>>> public static void run( String name, HashMap params,
>>>> String format, boolean showInfo ) throws EngineException
>>>> {
>>>> // The EngineConfig is used to set up engine-wide configuration
>>>> // information.
>>>>
>>>> EngineConfig config = new EngineConfig( );
>>>>
>>>> // The Engine home is the location of the BIRT engine runtime.
>>>> // M3 Note: Use the report engine installed as part of the BIRT web app
>>>> // used to preview reports. Alter this path to the location of your
>>>> // Eclipse installation.
>>>>
>>>> config.setEngineHome(REPORTENGINE_URL);
>>>>
>>>> // HTML reports can have embedded images or charts. Set up the
>>>> configuration
>>>> // required to write these into a directory in the output directory.
>>>> // The HTMLCompleteImageHandler is one provided by BIRT for this
>>>> purpose.
>>>> // Your application can create a customized version to provide
>>>> alternative
>>>> // ways to handle images.
>>>>
>>>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>>>>
>>>>
>>>> HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
>>>> hc.setImageHandler( imageHandler );
>>>> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML,
>>>> hc );
>>>>
>>>> // Create the report engine itself. This engine can be used to
>>>> run
>>>> // multiple reports.
>>>>
>>>> ReportEngine engine = new ReportEngine( config );
>>>>
>>>> // Open the report design.
>>>>
>>>> IReportRunnable report = null;
>>>>
>>>>
>>>> try {
>>>> report = engine.openReportDesign( name );
>>>> } catch ( EngineException e) {
>>>>
>>>> System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
>>>> EXCEPTION: "+e);
>>>>
>>>> }
>>>>
>>>>
>>>> if ( showInfo )
>>>> {
>>>> showReportInfo( engine, report );
>>>> }
>>>>
>>>> // Create a task to run the report and convert the output to HTML
>>>> // or PDF.
>>>>
>>>> if ( format != null )
>>>> {
>>>>
>>>> parseParams( engine, report, params );
>>>>
>>>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>>>> /*
>>>> //HTMLRenderContext renderContext = new HTMLRenderContext();
>>>> //renderContext.setImageDirectory(IMAGE_URL);
>>>>
>>>> HTMLRenderContext renderContext = new HTMLRenderContext( );
>>>> renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
>>>> HashMap appContext = new HashMap( );
>>>> appContext.put("PDF_RENDER_CONTEXT",
>>>> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
>>>> task.setAppContext( appContext );
>>>>
>>>> //task.setContext((Map) renderContext);
>>>> */
>>>> HTMLRenderOption options = new HTMLRenderOption( );
>>>> options.setOutputFormat( format );
>>>> String output = name.replaceFirst( ".rptdesign", "." + format );
>>>> options.setOutputFileName( output );
>>>> task.setRenderOption( options );
>>>> String str = params.toString();
>>>>
>>>>
>>>> //task.setParameterValues( params );
>>>>
>>>> // Run the report.
>>>>
>>>> try
>>>> {
>>>> task.run( );
>>>> }
>>>> catch (EngineException e)
>>>> {
>>>> }
>>>> }
>>>>
>>>> engine.destroy( );
>>>> }
>>>>
>>>> // Display properties of the report and the list of report parameters.
>>>>
>>>> static void showReportInfo( ReportEngine engine, IReportRunnable
>>>> report )
>>>> {
>>>> // Display some of the general report properties.
>>>> // See the ROM Design specification for a list of properties.
>>>>
>>>> System.out.print( "Report Name: " + report.getReportName() +
>>>> "\nTitle: " + report.getProperty( "title" ) +
>>>> "\nComments: " + report.getProperty( "comments" ) +
>>>> "\nDescription: " + report.getProperty( "description" ) +
>>>> "\nAuthor: " + report.getProperty( "author" ) +
>>>> "\nCreated By: " + report.getProperty( "createdBy" ) +
>>>> "\n" );
>>>>
>>>> // Display the list of report parameters with their groups.
>>>> // Parameters defined outside a group appear inside a default, unnamed
>>>> // group.
>>>>
>>>> IGetParameterDefinitionTask task =
>>>> engine.createGetParameterDefinitionTask( report );
>>>> Collection params = task.getParameterDefns( true );
>>>> if ( params.isEmpty() )
>>>> {
>>>> System.out.print( "This report has no parameters.\n" );
>>>> return;
>>>> }
>>>>
>>>> Iterator iter = params.iterator( );
>>>> while ( iter.hasNext( ) )
>>>> {
>>>> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
>>>> if ( param instanceof IParameterGroupDefn )
>>>> {
>>>> IParameterGroupDefn group = (IParameterGroupDefn) param;
>>>> System.out.println( "Parameter Group: " + group.getDisplayName( ) );
>>>> Iterator i2 = group.getContents( ).iterator( );
>>>> while ( iter.hasNext( ) )
>>>> {
>>>> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
>>>> showParam( task, member, " " );
>>>> }
>>>> }
>>>> else
>>>> showParam( task, param, "" );
>>>> }
>>>> }
>>>>
>>>> // Show information for one parameter.
>>>> // Release 1 supports only scalar (single-value) parameters.
>>>>
>>>> static void showParam( IGetParameterDefinitionTask task,
>>>> IParameterDefnBase defn,
>>>> String prefix )
>>>> {
>>>> IScalarParameterDefn param = (IScalarParameterDefn) defn;
>>>> System.out.println( prefix + "Parameter: " + param.getName( ) );
>>>> System.out.println( prefix + " Display Name: " +
>>>> param.getDisplayName( ) );
>>>> System.out.println( prefix + " Type: " + param.getDataType( ) );
>>>> System.out.print( prefix + " Default Value: " );
>>>>
>>>> // The default value is an expression. Evaluate it.
>>>>
>>>> Object value = task.getDefaultValue( param );
>>>> System.out.println( value == null ? "none" : value.toString( ) );
>>>> }
>>>>
>>>> static void parseParams( ReportEngine engine, IReportRunnable report,
>>>> HashMap values )
>>>> {
>>>>
>>>> System.out.println("ENTREI!!! VALORES: "+values);
>>>> if ( values.isEmpty( ) )
>>>> return;
>>>>
>>>> IGetParameterDefinitionTask task =
>>>> engine.createGetParameterDefinitionTask( report );
>>>> Collection params = task.getParameterDefns( false );
>>>> Iterator iter = values.keySet( ).iterator( );
>>>> System.out.println("VOU ENTRAR NO WHILE!!!");
>>>> int xxx = 1;
>>>> while ( iter.hasNext( ) )
>>>> {
>>>> System.out.println("WHILE: "+xxx);
>>>> String name = (String) iter.next( );
>>>>
>>>> IScalarParameterDefn found = null;
>>>> Iterator i2 = params.iterator( );
>>>> while ( i2.hasNext( ) )
>>>> {
>>>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>>>> if ( param instanceof IParameterGroupDefn )
>>>> continue;
>>>> if ( param.getName( ).equals( name ) )
>>>> {
>>>> found = (IScalarParameterDefn) param;
>>>> break;
>>>> }
>>>> }
>>>> if ( found == null )
>>>> {
>>>> System.err.println( "Parameter " + name + " not found in the report." );
>>>> continue;
>>>> }
>>>> String value = (String) values.get( name );
>>>> // ReportParameterConverter cfgConverter = new
>>>> ReportParameterConverter( "", Locale.getDefault( ) );
>>>> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
>>>> // values.put( name, obj );
>>>> values.put( name, value );
>>>> }
>>>> }
>>>> }
>
--------------050008050901040404000204
Content-Type: application/octet-stream;
name="logs.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="logs.zip"
UEsDBBQAAgAIABdYMzQtB4d18gAAAM4CAAAXAAAAY2F0YWxpbmEuMjAwNi0w MS0xOS5sb2e9
kM9OwzAMxu+T9g5+gqwZXSUihASiSEMCpDJxz1pTWUudKHHfn2yFAxQ4ASf/ +WT/7E+fr+4s
r9ZFUYEuzKY0WoOPvcLWUUio9hRFtT6iGoWcus7ljgaM4Hx/THb2gLxcbB9u Hw3U3BMjJLFR
xgCStQRVqeGenKOErecuqeVCz6nrObWzYhWeVioaglM3uTEhtrmEC2KSy3f2 UfxwQIIxfIk6
m6MiBp/DG8wGmoDNyFfcNcgdxp1NB4hj/vWpfq6b2kBzGoJpCFrLwF6gjWgF IXQvgAOJYPz8
sDZFYcrNL9tc5tU/2TxRq/+w+VvUX9v8ClBLAwQUAAIACACHWjM0EVAT5PNV AQASfzUACgAA
AHRvbWNhdC5sb2fsXWtP48jS/n6k8x9a+2XmvCJ2EmDIoGW1DIF9QcCMCHuR JqNVx+4kZnw7
bhvIeXX++9vVbTtOSCAXty+ZXmmZxLGrnu6q6mv56e75p99/Q/fjgGCz0UJe MNKwj40x0Qwc
YttysUZDHISRr507A2KaxEQN1CNhaLkj5GIH/vEDMrSeTzIPix/++Q/UXV3+ WXyBye9aI0JD
EqChFyBKgkcSaM+OjQwmJmQIDo5WE214AdHOPDfElkuCT5gSJvzUNJExtmwT 9ULsmjgw/9ej
4VfbM7A9Zp++pdfP3RF77msC7FullbouMUIvAM3iE9N6BvUVG4rwykzvQ4mC 43Dik5P0qT3f
C8KTTrPTLElx8yNTfHl78Xltr7l0rdBiX/7DVHsu80rPIJQyd7Fc9LH5ATl0 DQPecg8GM5Ln
8Npi3siMyZR88iJ3asQe982vDPXht6oLT21yddu9TELXELdVXzyCEAKRAaFe FBiEfRii31nj
0GXPDyDK0F380x0ZfjVsTCkTRk4Wqco+tzfE4H+TM3jimgUkeM+JG9n2zC/z skQJtfgWLdF9
Ib7v/R/3bpNQI7B8kLjH68INT0A3MhPQ4RiHyMAuGhAU+SZv3pj5EcWPxPxv LIYank9SAb0x
ZrU4sEnyM47Ccfpr2vIkv/o4HEMYpnewf4d66DmspI2IgaHQtiZ3x+VJb15U e+KhG+KwG7M1
GZf9v9+UvZW9N7U3cR+twHMdBoZ9DoMJopbj2+QPbEekYorYiAi7VBMN9bU1 JMbEsMmiRvHm
E7uTd4T8U1xzCEYHN55J7BuQ9BWc8Js81eLmLfqXTZQKOyThQhfKNYlvexNt 7tZfW7j5gex3
5GGLveM84wkvL32FYDrJ+MYe4pHzgB+xZmPWJlyyR0Yk2EOP8PPJfnMPeQxE YJnkJAwi8k16
CZI6m/8usM+0fijTRq3TNsWlfrN1RdA6TVulPcQbs2kjJtm/LVYJWQdn39cd S2+iWozatxzE
b6L4jmDbWSgtgF9mbMPv/fWDcdg5xPIQwcRmaUVoS6Y/a8H5zfYG2E7bibdx UQ5MPCbGp9P2
iE0O4qBB797lDmNMjO8zo5isPaQVemaYlKmBQlAkck9eDhi+WuZsY5SMVRaP UfZGgRf5Z2xS
FJ409wLPJuLzwR7cEn/O3XXQtB7vmMqMZwMC9DP/C3848J8E6J/0X0rGAZ9a 5cNwsItZX1g+
EGyywYRcGLz3nMIAp0Q/87/wZ8Y9kM+mFE9eYE6vAFRajP+sAlT4z3KcBfjX KjAHXjh+szb3
KgI28LwZ04vvMVTuoHvy4uVl3zM7v3l7jY3Po+YGU7D6C0tvIJjGl5LeXZbQ Vad8s4MOJvSO
jCy+jixL2JrFTWWlpYUKsEkYjx+P0Sl/HN1zN9YPtUOt1S5QzwqVI4aVfCgZ r22nFSPGorPr
u/zaBtXOR5EZ2TBKROl4ET1Z4RiZnoNh+La5cTfTsqY1YiV/3VzDBNEyxfK0 aVGYDpkS5K1Q
C+zBR0K1P+Cf2Iz8EmusAlgG2oPyn0xrYtaogGDuji3VeoMHYoR8t+BkThm/ eY83qOdB4AV3
BHYKxNVcMVS66Fnjb172ZNcEpLBZz9AaMRjTL8foi9g04U3G/end/RZiu3xR J94FYJeiIHbU
eP2BdZq8C4SRfq47a/F07qvOxX+TNBetFJh0N0xoS20w8/14ukO2/ubsnOCM n8R7PCgt4qy5
hxYblp8d99kTowA76IJ9p33R//RF/4NY/8Of0mNZq7vEMny9yAB8w8i2J5md wEpizb0u+/BU
2pToqTNlIWsmGeLIDqsIvZ9A76fQ+2lTgWCRvMLOkWsJZvr9ZJkqM6wTSCsj KxlHgbiHNiH3
0In9SQY3nhnZcUemZ/xRTIGu2ufnp75vW8lWnOcSflEsO/LvfI61db1VHd9Z 7HCAL47P6Upl
DST7gfXIomLEgilRcu1hkwSV0rBsZ5CSEDZ9kb6g5Vw3NorQ8bKmMs0xjX/k rRofoqC4OayK
BpvbTWPhh31fGDHbHIVji65l28XyMqNQ2NVHAZs9UIsNPi1CUeihJy/4zuZO AREbsiu07/DE
0vZ9e6jo6vQO6X+ef2qwaaFuWwM9eawhepAHHADwFZCKzLn+E1dDBcB+LLnP JPdfSt4Af5xH
ERcCm+YVDt6/UYB/ba1nurwFLS/sxT7rVCxy6PFih8YtLsUinuN4Lm3AWlwU WjbN1SiLhMux
yyJNO2Iaw7NtFtOsv5ZinDnxUs0zp2tHDGTGOb6NlnYkw0Lz8qWaaF5ZzW1E wyAKc42bqUQp
dpiKr3bNz2oakTRR55T2QibEeZ94lO2NRpBvyKanPmEjIkJzKBnqERwYYygb H7fMjIZyEI/Y
JNk1kzJJLgtCjcYv6SQGuV7IDBa55h4rVRgFLk8/X3lG9qqqLmFTDrHtx+JB rBOL8aR4DEUu
GwSbFrTRGBYVXtGQjqmnOn5tdfY7h2Q/B6QFVckiz705vz/lARnv4FE9K1S4 gpa4wrU3inMg
6+fWJRZU+Xx5Pg8/8SvvMw8yMx88gJF5/ucQ25TUxqFfLUw+3ppRBEmyAfMU uQrBF75gsUDh
uUhk8nvhBXjE+bNBeNprEdGBIancPC4vKuDjdNljGHhODFNOIMy3e5BqApY9 uNqR4HirgIUE
TDEgVBCpIFJBpIKoGkH0Zr4OJJGfxHt1y3J38t3tKyTj5444XkhOTTMQF5cX M/8pTh1m7D+q
X8xtyuXjHEmqxL1tpmkS6NQwIieyReNyf92dZhKDOrqFZNQzsMvt/XOIR7Y1 +AWxZgzetuMv
5DyRwfppNUsUMNxcZrJeiGg0SPf7ttGQvEcKdYHepcuRsBsaeDbVQtt8J6UE 8WpnQ6Sn8IyS
vMq0XGdskpw0XWMWhI5nWkOLmGhh3aFWq3108KFz2D5oNpt5qZK5w1B9xLP7 lSXDnd2AdsPG
g/M8xdVpf2y324edKlbj/N5iWRUp8PStVsftx+/OwecGcefqsXl4VAFYw6CS sAgtFdYGSRqV
c7gHXAXLQmXxFUXWILe11n6MaX//qN3uHHRKa+TimsJ+UO3mLbPrW6WugbKh BonHOmXWX8bL
5jY2mb81tYMYXKtz1Om0mh+2qrg7EvGFAzYOOuMvam2bl9ZPJGnwhmIz17cK tntnZJ2Ucua7
c0nZ6YwEsrOPdX3V/Oy1Zhhbb4TyJAKedc/mpvzt9t7pX1/4xx3aBS2mlGoL dOkWaFJ8yv1Q
/nL1M4HscdbuPfsvTH3p+HZuy9VrpxvEyJ5dK/ZF7a+ba4HvLNt+7FjyQZHF VnFYsVSE2PhJ
2/vXpWvYkUlOn1h9LfCB3ILzNTB8a8V81MzQ1Lr33e4fG7cOy95eiploBYMY Z/DKvF/qRwPb
MtBlF/zmHVT9u8pqe/tV0j8DVvck+Bq/+LL+u6TakpdSf2CUD9RXCFWsLa19 zJf5Ku4i9QDJ
V68G2GU3/139sKsnXBu73xVaOWijMPRcqvBKwmtGji/ezw4mCrRs0CJpQUGW B5kAV5FCKwXt
0PNCouDKghtgh1ASKsCyAI8JrJ0ouHLgWq5JnhVaKWhtj0FTaKWg5TT7Cq00 tENs2QqwLMBh
QMjfzWbbjJM4+eeQ0FCVoLAS8DRyDXN2u2tvxFPDFfjiwAezr2wo9IWjT+lx FfpC0f87Yu1k
N3LYL6oAJRQA8uVs0rNG7mdX4S8ev3inS4GWCVqcC2QSm4TkNzgZSEEvGDqc u6OQF4sczplR
yItCXrOl+hqD5me7KczSMdds8b7GoG2LhrXs3GsNvI49e51x17FXrytuOClQ QZYNGf4qyBK3
ssSbSsm/CnexuKkCXgRwEsT/KNRSUSdvfFPNZHJ6/LMCXzB4vr7TTYtAVRlK LMO5+3juhvC6
sSpCeUW4wZbdA+KKOr10sZOFSF7Avrbc76oU5ZYCZt3Qxg7Y46oUZZWCiOZ1 oqAXCR1Wneo9
vtiNEtR6cLETBaj5sGJHilD3EcWulKHuo4ldKIMzDWeFvmD0QSaGFfyi4UeZ yFXwi4KPbSez
5HsH3xX6AtE/mAND4S4Qt2taCndxuB3ieMFEIS8SOf9LFWj5oLOdfh09pb74 Qa/GnsdUQS4C
MlGg5YOGPwqxfMRUQZYHOT4cI/lX4S4WN1XACwDu8oMGp58U9nKwUwV+TfA4 CsfEDeG0WIbl
NPstLsmth3oZ1gPEaQ+QRZEfEKpOR37jFNwLL3BmajW3I3AXnHbFT80gJsIu mrErGrL/HRKO
PRNdfL67WVGR2LnRbrCLR6ljCxphEgDn/Wyp4/u2L2Cl9DIDGgQFLMQ8B7mR MyABslwrtNhD
/xGHe3GLMFw1UPNbfFqBw35ll5E4GxYZnuOziHBD7inYHnmBFY4ddNM9rI+2 MyYWsuBMOIfp
Vb3V18Jkd7m49/9a+RQ8uYJWcFAjqZo66OlBNB0jOB6In45NAgrti4ni22ll hS+XKo5S6533
epefb3vwxkwd9JyxJ3ggGRENmVzRsTKj+1GYnhHHGgp+khaKj9KqqMKVzp+C Awg1G7sj7ZJ1
4dB15X/G1VTHLY+h9VS87hBNSQ6dt9wL1m7QsawwzE36sgNGLTZ8dQmaOQ3t eDuZ6LUh7t0s
r6Le0poytM3OOF6Mj2WpXXR8U07lPFn43xqTx1vMxqyjWOw1OJHLw/kTnMpX xmy2NoDSpvzq
tnuJXH5Xch5vdcS/PDUsCWqQh6fzVEQeYVhsxwhoxXTMLHJoGcNnjZ2eggxn o7nmvHYeRAKD
Up276niKCMdMh5Jtu5Oq5nWhdz0SorMxDrABX89dwwPjvlMY1sGw7rGsT/xG LT42RVhdYwhS
AIn+C/5bbuPngk5J3ra8+ZyLnMEC85DAxXapmGYnL8+c8IFN87U623hRSeRZ T542ODD6C7sI
lca6M37DrRdewHjw/NkgPvRyRRyhjVkv6prH5R2dnUz3xOKAnLPrp5P3z3xp Ikffh//u0lO+
RSHE381DPydY/KuJBhP04h6mAZnCNcixqAy4lA1cNjNupP+Bs3LXOZu6Drth U6eR4zZzjc9E
cgMqpgO704yK8hTbmOapUzWpRTapi9f1uG2p1hVnwPfE99qPJt8qYCHDx2JA qCAqKYgeMPVj
UjZoHq+ovyvRs7RkhYSNZO0qXnKKlyVrrumyyZp71MWIOxsT4ztf1PGCcrOq Kg/QGRDswqQH
nru2hsSYGDbJbA18CTw4AQ5h0zyDPL+vcSLbupsjezxL8CSvPZVvORUv3fm4 +cTu5PaIg0eE
k/iy3k7OJkrjPddX92WTqojv/fVwHw+aB/Iwid2ihOKDLpRrEt/2Jtrcrb+2 ms0BNtrr7TeC
6dPNxi4XHO9DTTeG2fSYGoHlQ7YfOEjDEZWhPTt2rmmsqb9ltayftVpfTK/k X06/H6PLJGdp
9Yy9ZYkAoqXJbD2i+ZLOusLQsgk6O+6zB0cBdhCbuxLaP+Xq+veewzSiQ+2Q P6Unafcr+8ky
mL2IH4k5jGx7gnyBmZiVhiyrZvvwVNp/ZXqpDHLWQvDpUIVL0E9K0E9L0J9v W5DL7F19x5FR
nrfGbDO4qyYym069yvgqq3ilYRbvKbeuzJrAzKZaxHGN0k6/BpL9wHpkgTNi YZcoSRfeq6Nh
WZYOJeEtvIahL2hxNwyYAlW9rLdMo07jH3lryAdBKG5Gq6JhZpKdzq/TFisc W3QtSy+Wlxn1
8vl6dikIVhievOA7Mq2Av0g1WaVDgCfe6hC2R4yuTu+Q/uf5p8bl7YVuWwM9 eawx0/M84ACK
sQJucQxCX2zR0Rm4/VhPn+npL9Wz9doJm/Fe4eD9aqXKYdlqZlGA78ro8fKY Hq+NadwpttY0
Iilv4ynt8Tzw94bnOJ5LG7Y3YpOIkcbGJz5hrk1obVY4kzJJLotYXEyUIdeD 13si19xjpUr2
m1fvaLdbXYxc1pqZFvT6GEaVpa0yFlQlizz35vz+lMdnckyNnhUqXEFLXOHa G11g3nbWz61L
LKjy+fJ8fuG2FDPzwQMYebQDWYHZwhSy+ZS/QrXfVFaSw1y7Zzm+DZY9uNqR 4HirgMUkORQC
QgWRCiIVRCqIqhFEKzK5zKzEbkPosvaSbiG8LoveJH275PlPfuowl082fu5t c/qS7qlhRE5k
i0i5v+6ihDsdQS3SLSSjnoFdDvHnEI9sa/ALYjHpwKt3yHLRExmsv3O4RAHD zWUma2GIRoN0
FVKKBj2Gn5Oma8zC0fFMa2gRs5DlR9RqtY8OOu2P7fbBUad45DPgsBs2Hpzn OVztwyJxie6v
b7U6bj/klxvwufGA52A1D48qAGsYVBIWcasAC5yLT6IbLa2ttfZjTPv7R+12 56DTbDarUFW0
1KrKxGGMCvtBFSKQtwyzS+TMjE3tIAbX6hx1Oq3mh2KtuKjZoqzRJyIPIs+K uyMRHx6H7Brc
ndc2Wj8RCGnNqJlrmlVmJ7N3f3p3Lz2dhvV8cyko6cAFclGOdX3VbJS1BiLL MkNiDjKRbghj
nGwioB8N2EgZXXZhKvIOBmzvKqttdQLNOH8gD6bMGdMqsDnxj+480O0io6Hr vchFN5YReHRC
Q+LQPXTpGpqud++7kF+NMlNc1Nb2df389t0O4Vvd0GDCm03zecvwzPoBvr+5 VqBfgv7z9O72
dcxxin+PGFFghZMzz7bZdBxCAnJaqW8ZlhdRFAU2LGnAuucx+kkfh46t/89P PJeMoHEY+mzI
wF/4pxHQQjs6HnhReMWu6DAajVwmO86K1YdWQEP9gQbNw/0kCaa9//eXi67m m0PERAoALTb9
qCX/846vGrJHLGMRHfTWa4ZbskJ/Ou1dnhVBz7x9QauoXpFEK5JoRRKtSKIV SbQiiVYk0Yok
egdJomcnCi8Hsoq3OX+a5E0n0nXDpVicK8jiPLvtUQatsUKwAIF0LuS6alQ0 cIoGTiV3Kho4
RQOn4kXRwMlhWZO0q1IXnPUjhZsZWhXNDbfBNLEoirgPH81me1BJijjSIgR3 5DLESSeHqxgv
3A9BCVcvNrjqE8HVmgNOEl1awcxvlSrFm+Rs+VK9lcHyVn2CN8Xtprjd5nyh cloUo1ulGN2K
IHPbmsft1XcoC2Nvqw1x29uWiV/kgqFC5MOz/F2ufO2zVIccKy1Vp0j2FMme IhxTJHuKZE/5
vCLZUyR7ajdP8YMpfjAVRCqIVBCpINphkr083pStE7WeYtVTrHo7zKpXOW66 DRepS+P4U1x6
iktPcekpLr3yufSkNLXL97QyDW6nIgyAu0H+p3j/dpH3ry6Uf3Ug0dtRjCrm oP5zJFiT6id1
wQnEdQpr/ljZ9zCiCmY+MK9u/mIjmefJjwpUFvfjg/PsA9yi+B93gcNSVhko D0XFxPlDbS0s
5d/8Eag3y2PdVISbinBTEW4qwk1FuKkINxXhpiLcVISbinCzkoSbFeTa/OFo NpeJR7AOBCLT
fTf2zHcU0fU4CSWL/8FIQkvlxlTKC6HnrJcyRQOqaEBV+rmiAVU0oCpeFA2o HHrNGjCAKvLP
6ViqaN7PalJ+HnSIOTisJOVni5C20TbkYYtdItF4DTPbBde+8jDiU949xPfx FgH4nf3eZV8G
bCC/h0a2N8D2Sfbit1zISyHhNjujmnJBndoOYa01lsMVmkivCnepbDzVIC+d lrIW7KXVgiuj
RkvmL90WffIeRSKnnxDY9DP48yT/3KBRki5uXXLNRGmF+T9LgFh3AlBWEw35 JKB5admEonOD
YClIjaICrRQV6HoWfJVxMl4pAADT18j5RQF6kz4qedkvFpMHi+RdUpeT9/Mo 9X8VQ7y5Bunm
0hpZ/PpjgVSbO0SJmpBb5GyWjFipNsnoqb1BaMNhnaTls/Y0P3PMCZVkjDkt NTeFgy07Lwsk
sqRUfCK87vU9of+2G2xU4vJOvQHqG/taU2sdNUa4MbDc3KyxkiY5tlpJdc0t 6Y3c3CInkSXF
Gonwutc35cP+vGo8lSanzlPxNa91n9h2/n31S6lSrPBSTc2t8UjYlM4KJw2T +I1WTCqTgz0W
yZVikUWKdsUmoefZlHM25W2VGcly7TKjarcs82iRJ4nmyYovwkZZfTU3FKtm WLhqtLWWdpSX
eV4IlWKUF1pqbopnKE1eJkiFSan6VLo6BUadAlO7EzEOTXPwgahDYNQhMMrl 1Rkw6gyYHzWV
O7egUKdXqNMrZBmXKZNKCvCZUx7k6DLw313aG4iQEH/XqNyccPCvJhpM0It7 mAZkioaFHIvS
w6Wsg8Mr9uy/FzkM//xHI/0PWkDeHp1N2yP23IYtkZy2aC50J7Vvlebdi5fS AAFSQoTJ8p7w
wCZSA3Fx9ymXEMTjV7pkKJQGgSeDgUQN4dQQTg3hsoHHJvFMmfzmZD0NK7I0 punQ29A0rpVT
XfYRUEtKrM6AUmdAbXkGlFjahjoqQhlzK85vJl8VDYxitOg3mKc0PeKC9Plh YYp0HLc7xWvU
py1Qqcr1O8IbtkINPAUC48ggpOVp1m/oqOTC65izStPyEehs5Gu5p/xL2ZVi DkpVrt9AnicT
UoGK0HusQzbCooCUfGziBmlDcIJcu3XQPjzodA72K4p1JkVnCvhj56AqgNOs 31arud/cP+wc
VeRAPnWk4hY5wFNrflDHK272OlppAbFmonFppl7v5aVqwlzx7ZVWq/Xx4LB9 0KwU9uRNp6rF
esln9P4/e//eHLetdYnD//+q5jvwmfgp50zFbEu2Y8c1mTq6xvJItketOKk3 Tp1ik+gWbTbZ
hxdZOp/+BcBLk2x2q0kCBAjsVMWW2hKxNjfW2hu3jbZnHEVHPqmux91v+6MM r0y+S2nb7d5d
v8PnEsFsPJCRJq7PX2Iq//xKjjtpC/DjvpR2XRwHbqVV6Fbawq16A2V056uy IPsx4dlkMk18
48q1wyB6iGK0jH4yLnzbnExOb07J3hyjtARoHJovJpOzD08Vwre/k/OwJn93 HA/SLKMBoKw3
8nwKXXJj24MiW3lycwbczMO2SdjOw2Y7T7+rJ3ttF5Guabj2Eq69hGsv4dpL uPYSrr2Eay/h
2ksFr73U+frJLgPaMWEaxwWUml3huF5MEHGTIbSetc79ZsWxtdZ2FiyfAjXp HjqT7KErLk77
nP3bZ/yhKjfTtbR3kHm0wTFVc8z7orHbOF6Z7/Afo/b2bpv4eXSIdmF6lPtp xz3P/7ckLZQD
GEc5gNLA3iPv0sPWxYj7YXY3MD8m8SqJ0+JYnJpZq1PWK7m0KVDsG8waSu+5 NQ2SP/QBd0zG
T3hEGf8RujG/mb0a5bk3xrcBKpk8ZbIp9GKr8lDL2Drhw5MN04YdiXBrfv+8 agMCpFCjq6hU
OPMGLVcefqvqEDS3aFhesmt1t7/CxI/dJTLzfdFmXntDHQduNXFYj3KHsb/i boUCyiuz8rZ1
c64h4NXRVii0A48ULCAr1DjpjvGwDDmfipIjylRP3W3moDVUeUOpDaeS2PXM d1Z0GzOt2tiy
tuluo0E/xjOluTFPxX6oLn7ar7Bp4Dk/xu3ChJ+YouRNKzo3+MtZcJ9vUVdx 9btqorAFbz4w
6qHOJWjmlo2MVnAg1I1t9e5D4nmfAuruoWels71z+UZKdUSjZtiwUsGp8XYC UQMBsjAiWXCD
rGg114WwjeRw1Cqwy6KBk2ymrUKKLTjFpvMbU3LBBvqEMy11YmTNsGFjJKfG 959argGA+Dje
FVv848X6e3oORh2Sbto2LE95tL/feu51+jcOphHuwHGk3nJu3UIxq7m8ULQb rmxDA7qs0nru
ppqAf8c1Lk2viOC49zMd+HJv5jiZz1GIHO4N/e5HyYpU70fOmW8HxGVDbNG/ 8IvtutxMbGI4
ym0zMV0iRG+5G/kCXmszh43jnKHs6+5C1lV29oaRolzNDcj+sXwHGAjqKiVt OwUGXD3eeZN8
zLUibg0z76on3zvNFDPm5gql/S7qRjjA7PEyO1/8zTtjtiJ15FgrpY6e7bZT zKo/LyztPP4u
SCL0DaHVupCSum5vMFas7zkC6rYLZAcw0Hl1dD4rba484at2iuU6Hyz9aF7F BAxXh+FnpFSd
8vwuWymW3TyQ9ON2GREwe3wTbe28XR1FgL/HP9uW7XC4oBscVKxSUDNQ6K4W diBaOZdsBHZt
pO6epdxAoc5lB6KVcy+DhVIH7BrNE+pYthB6bURLoUDcVS3P2iIl4GiVVq63 JAPg5PFn0V6w
MLE2T+kFourF4op5YmIxFwjdRLoCBdg7rh3DFx8H3u/KqxV6YuzKWg20k7bc +T+F7jIIHdfy
FNe8BkPFqR9HMO1zmC2AQA1HpIZUQT4jGz+bq0hxqK/XVLiEfn9iRTF3gadW Hc2iOLRseiEY
34bC0Hrg3sqHYJrYt2ceWmJWcH+D5XsijsJFMkijOC6fux4aIDZT8xgHxv3C c7r5fWnZYXBu
EWY/qBeZN20UE5T54WgfjzexQCge/7TCplef3HwP/G86cDq1VBZms0XDgt8p ImD5+FnuuCGp
FXyHzNP8K/UI3mCkGG5zAdLZ0QrXE9llrTSul6TOyC5kIPFjK6F64gU+ElF+ fp9+Bd1JpYyh
lBd+CoP7B5XDSN1W0UGEF54+NK9jAraPbUKe3F0y/LJeqd8oV7J/u43CZxc4 F+1vNa8AFftH
nx9QAcEjjjCIVun1Q+TkRvZdECpWLHi7oQKKB/ME08vpx1aEtHE8MVYq57ME 1LKa9G5QIPMq
bS1+xOHg7LGNAqYoHmgE0NB1rlB8Gzh4EPLkaDlzF0mQRAoW4mppuPCwMgS4 XoqzCyAo0Bjn
IYZTofQCuQXyUeja1R32J+mdqvh71W4RfMRcETcKDgRpf53ZCxaoy9iWyNK6 6mnZ80Elht5R
WbshS7Uj1I9ZKuyqUq5o2mrKdkQgJ+OdAm3wbfqQ9PeVJnnZUOEcZwtmv1Ws EEVBEtoof9J1
9r1qvt/PXjGrW8Ngar/StRsXSL5K06GPyBE4ezzDhabrbOfuQq1bgbFBw18K zKxRuBN4wDuB
1xN0F9i/FstV/QWK86B4FKUHJEmkn6SPmOTqOski6sRBcyvx4qj4F3NVnPQd DTFzi4VamnJo
Hd+efrXCt3PXQ28nJ28nn8JgEVrL/z58To6vRpOjFOVNsMRPx5++Ml9NvtPn 4n/zlgj3QasI
K547K1A/c9Dq2YH50sSP/69JV4OfMjC4am5E+1opnPAZLtjpfCH+2/PSJYvI PLuPsWQgZ31G
/cn6S8ZX1YkaNnS0e5DhgzBsm2fDL10ffUiWMxQy9/te2WvHVwHJ7Ogmq1p7 +ib4hnz3Pzpq
UWG6nHLEEF7jNhC6TMLD/XwkqUAKqjTWFTnX43sDMclhBdQsuwwWyh5sqNon tD6j8AMNVRwg
Q2PbdsS90NWZnyzJxEl1LyP2y8fdzdhBiExy/4WFxwl0C7X510n2j3+bf9GX cxtEMf66GIX/
TV5lfh8xfql/uf48+Lv45LOLvmfzcW+ND4FhJ1FM5oyKcGrMyRyaafxO59ay Qfn6gTadxEtS
Y0ywQl8r/lev/wyAqxJcHBlCOkv+3vqGv7LWP3J3YL4ENPKgqVWCN1zfjV38 oP9ghCaAkQXM
aSb263GuQUYxdKHpS9rulzwR/ZIlol/yKfQvDVPoYIBuBtyED9m6ZRIhnJeS bYb9digCfG3g
pyknwB4b7EG3POYL2dnMx8Vy5Sm84bHBWsHbHbkg6tcH9PG/XL4XW0twGyqY C1XxMrFd+gMe
H+85FpRvnCwcu7GlUh1538PYYRV+QED7U34PUMB4vowXMulRU/bqXJjxY78Y 8Q+walRWiT9G
p+y9MnuZLeOhOuG3z+wFD2KTQrEp97CRwUwXarDUxah6AKfFmTwwQLQB7HcV HuM2kcX3HrnL
wF+I2spTfoHG23W4p9tAjChbbTYB1nhh2QFOvVCMAFZbWELmvk/Iz2my+lHY Ksn8N0M8fbyv
i+dl8rpkax4UE4w4tFjxKFQH/K3gCJN6t5xnIKfbRFolOIEp2pvy6JSt4Dxb QXyC6pOsr8dS
vkAJL1PlrVDSZPFoS5TsuNnt0iX1fjyVL/jLTBR9rx9jGH2u88ugQGKrUGKb eSGtYW4U97K+
bd0lAPVwqIfV+ityH5/KSk8NFK3zTEH0UXkKBDRepXuZqUvxe4qQgts19zJX CnbzgdSb61VY
wHzI7uqhADAPg3nYqEB5r3IcoAaKVn5GINo698JfJbFat+3uMFK0k5kD6RPU CzAQylVcca5J
CzhZhWN16W2lF/4dBkA+UPpY3VZjRR2r4w6oy7G6raCA8TBCq4cAwDwM5qGT eNtLHMVTeGqi
+ASeKYx+6TuFAio//hn4Yn8Z0TD8ivLdMwpvCa9ZKnhTOCc0PbYJ1xAByyGX 2xR+QD0c6mEz
unP8BvDPqJzRZSaKzugYw+iT0WVQQOtB6ze7BKAeDvUQWr8iMwVhOmGgYM3L inliNJ4xhA5u
vQkRwl2blriIFPdxxVYJHM4FT7dzvttxQagf/+RNxbu6sF0mpsvIcmC40nsr Kr4GFysj4n7g
IPNDoOJSWt1CocLNHEUvyS7QAJPHdv9vduMW+21QTY2dhWEQDnwLcLmLTl1S lEB9eVrbKV6k
2GPpnG3U8IBYqZV2HE1viilLtfldtlQ8w3mg6cfxMiJguXIsX4WBjaJIeY5n dkrBcMZYevM7
wwPsVobdN8E35F8tQraDBNm4XbFSKLO5IOnM6woaYLUyrD65tcK0aJ+ylF6b KJTP7GH0mhNc
wwE2j2hS0A3M44cYHYWh9UDPNzMmbyvxyHcoaSAim6YKFRN+cDpnCJuQQFiU SRPev79J14Kx
4bG6s3dVM4UynA+UzuyuwgFmjyhlSGLXI2bZ38RkCWm/efL+/YnlearvG8vN lGDbGGsoPXcR
5XBAOxTbEppODaXXDKi+B7xkqgxbwDnA6cnyMiRg+tiyhLPlKn6gqQLPDUf7 TjervcggfnFB
jkUFUAmFToOe4GboTceHz43UyZEJGAoMPBWUCrjrx2EQrcjWmsA3f5/hdsk3 al28+pilwyor
fzTd/a6Hz+Xxt5iVvV2IILqOd7S9y6+XwWJhzTykB8Nza+VhOmtE7BifIwPm q3Qw87EsA7w9
tpNdH4JpYt+mxY2Hnm1p6E14DPMpvanzYYrUThyrpgqPKXzg9A4oVVigL4od 05hFcWjZ8dk9
spNY4Q3djdZKcGSDE6KeBzdqqID1arE+F3Q9WF+3VjzreSHqx/o6KmC9Wqz/ DWkS5kuGiuc6
BzD9aF4CBAxXi+HHQeAhy9crvG8xWjzzOQPrpwJbwIEiKLVOVJq8+U2f2bzf 5JrN+03O2bzf
YDZPPban6wiqEz21UgaOs0XCgt4pImC2Qrsp00+Wlh0GxlvcKdzYxY/5D70F 1YhiK4wxYBNQ
jQWV5dAe9vkq61+frwzPnYVW+GDEaLnyMKPwT32++tfCC2aW96/sH827JeAe HPeg9yLm1+Cd
WzYRGoXvRaxZKvheRE5oetyLWEME8VyBeP4XIlWz/jZy32bn47D2JD7ZqmfE Ae3ARt4LjKdN
ovQUhzXD8h/WP5a9ALBDTzuaox41zkgi0vkbQ16TLUbzJWIo35hW6NKHID4P En+9Ze2t8Xur
lwYvB17OGF9O4wtJ/zFEC5dsnKFjDTsgBcxjZAJcdeFanhd8v/Dxc5DxqxGH STqQwJme5Rsz
hBMq3KFxwuWmP4LjRG5UBMC1BX4TfLzDGus6xASaaWc21MAvrQfjw8cbkql6 ZBJwFaI7N0gi
QhL6oy7hAtgFdnWz65KOg3aa9N31PEIrIw3DhE+RHawwsebpk5Bjgj1gz3Z7 liiK8KgqMnDU
pjYYUXpvMYUeJPEqifGAabEg2Wb+wwBZfchWEgdkoGwE83kDZj+I6Y8sccKH m/DI8Jr+eNbT
8yyRPg5MAVMeW/yRZMgAqB5HhT+JEptcHDJPSB+j63bCIhmg2YXms4u+T1F4 h7vLW+NDYMRB
4M2CewP5MdYBl/Qlf+4uknTgDjDVg3mK5lbixQRajHE+ix9I/hm9xSPv+3hy Gy89gMkYJqtF
aazzJh4t+NHDcnUb+A/mdzT7HoTfTMeNVlaMHxiaGbLT4pNxrkp3MpXfsrQg OHu4Hv/aH/hv
UuDbtSPFnF01ToB7+QDYvnFwTyCwv2CsVWI6CQm4e3RlYpLlDIXnQYhH3rxv Ab83o7TDmLdx
vDLf4T+yHnSN/p2gaKQHSfYyjV9IGLD5lDcRXcDHo3n6AxvL7gxaOk0JTpqJ A1LglDDVXjPV
sGI8cnHeGh35yoOtKUqeidQ9ld90oEZGCuvxGnviis2q9rB0wBRrEDSP+v1P 8qeajq6aNrhn
+TS/Z1bVBAGyKGWS5j20A7w9jpx5i2+P6Am5T2Fw/6CUKJfsGlyRObTdYiZj AwMwdHTHmbFT
l4EfmdnWBPMyWLA++/SoMtBztHSvjfsf5Nyg+/h3/IlSItFs4uB6wRdGq1Df DAUUZGxXVd2E
CLEsVNzUxpVLp1LyAwy8p9/SRk8Cz0tP9Q/UTDSE4uaT002ZtmJLTU0mClhw 4gmj5YpEExRQ
3JGOqmpOzbYtaEDoJkvF8Zonmm70bkIELB/beuPvfpSsVgHZWvhxhXgtX7TR l3ypSQuJaTRW
pMpwBdRVaBpBgdaokVFkdQrxy9SA8VuMFcd4zoC6MX4LKGD82LKL9Fm8JjZo E6WfYNbOguzT
SSeBfsy75qrok/9gphncGyFdcU3Bp3PXQ28nJ28nmGCL0Fr+9+Hzc/xRNDmi j53cBEv8ZPzp
K/PV5Dt9ZlRsbt/o8ZugnzIAPTrItU7po9j8/fqSS1/Eujkp62Zuz8RJx2J8 O+ngrde6wlcr
fMumO3juLAf/7NA8MF+b+Nn/NWlhIIeerpZ5jauAX60IN1DsjXwf5bsiR18A catlgxQ85Nw6
bDNls82UHikrAJJzX/cxfu40q1ZbnMZ1ZHrcyS2yv5HHzYPQyA/Avf16iNDN wwr9il/UVeAk
HvrJt5bo18mkOBhX6NJP7w/Pzo5WK8+1aRr/qx/4iH5IeikK6ffqYFzOkOVH Zvp7l+4c2Q+2
hy7dKEY+7UdY28mxXlKu9uTW9Zy/0j70a27Xmb9wfVQ6bJj/wzuMuHTw8Ceb /HbrX6u/v9Lx
xb8ZWXiCf5l2watj/JPUKxmLUl6l35Qa5tduXuux6Xk4I4zI6dr8hWQ/+8+D V8j5+dUv/EB9
sJaldeao8bkOWnnBg1n70X8evLReWweH+2GjZ8aTlUl6QDqSxnhO6YMJIBz/ DWvd5w3HDRHd
k2PMLDy2svc9P7R5VBY3c+Q4Bu2gxkZ/y5/+t9G2744TT+6GrMHCE5Xv3xoX eW0G7Jt+D84U
Jg0CqUiWraycLTdIzmmcvP2SpZwGTTi/pAnnlzThNHC6SX9rkj3OvN/3ePI2 iNNybYNVihc5
0sLl8Ua/kN8qwlUpKJVQm1luLiH6bPjxJX/Ol6uzmyMy/vhSwm/42MFy9xTm hjyWl006qCv3
x13TqpsoJE/cJ3HKG90rcaJBr/cLHAHEfLqaQMyYW1Sdjkbw5FXo3mGWLDC/ 8kaKiXF5Wkhz
ouz5pUwrQjH+J2RMGjS1A0kGambzfZXkOsr+kcodTWeMTCdlaaEyYC7GyoU6 xbdu1MrDzc9b
J63p2Ls8q0MmC8g8Vil/3Uf18W98yT34pfDgl3Ye3IXWeH90bVQm5fJfe5Y3 QibmCPwuUSp7
8Bf84C+ND+494YEHqO+t8MfHTWAwzVQZwtMj1JNsOmuSzWWZ1PMs59OPommM H7L8MTud8Cw/
ncB2InuQGcnyLD1HW/JZ66xwOykTOCfTgD9hq/KZ7P2jaL/ZwMTHkuXQWru0 QmHLWcGDNy/e
vEIvmE3kc38lTT03T1UpWVys6ZO9Dt2Mr1sLNBT6vLg+37iMhN388itx8gKN /87rsjGDLBax
b3Ds60PsWDFEHZIduucuV+Sw2+Lle0XI8ZiBgxBmGBBAIiARkAhIJAeJ7izv DkXmZ/JXtoBG
P8oe8utPKyu+/XU9xUqmTn4tJlHarcG3mqftCT+YfUV2TCAYv65Rktq7v9If TtHVJszSf9lp
MfsBzxjG7/mSzY3nFMs1xpFtJ8vES9lxc3m6vuaNvMGox5ONqW35FOL/jq2F 587+j4F5uMT9
kdQPIcvZ7Rf6tjSAcdNn5nNfRpTMiulFLi1M0sWrwRqahJiMEV3a4t9k5hpG LV1aWGKWgePO
XeTsM3caUf2ozpRafvzs6/KezsAeHBy+fvnm8JfDw8NXbwbE1X5OF0M9OHjz 8udfXj7H/w0I
NY3fX9yDN/6XmH78jHz97KtVe4PPX72WANY8lBIW8mWARXoXnQV4dmAemgcv MkwvXrw+PHzz
8o0cHQtrk8hXVZKMDJW1CoWKRcl5tTl+7Mbn5stcHt68fvPm4PnPw3qxSWEj rPIoO9HF8MVd
o/TG2hh/Rn6axWLfl/xhZA+18Zzptq7SWuv05uj6hutWHrKlr7oLpsi+0rMF kz33JX1plU1t
26OC4jjdsEDWQ0mihr+M7NBd4a5hrJIZTvWNi1MyhnpKss6n0rb2+G7CP0Ic ylH4V7arof1e
QnP7vkS9gX6NVgBSP97lu7OzXdmZB8qbwKrj9+znWIzTpWv6PCAKHuI3Hyzx +JxcEVC/yi3K
dtyMoJnfsg6T3U9pOO4C4XyDnFcJfNJ9yB4Qy1sEoRvfLo2r01fjae0kP3RD lut3tit/K/jZ
p/RxP/5j75yI74P26KAtTz2JbYduk3tbTNbiQBIRiXGM7McjaR++/anpZPP0 bDq9+PhhShLq
MbRTnNKxEzxuWWYTxdjp5ELdiG62oUKRzqdns/ySNtiyggJZrmG5zrX9Wpt2 TezuEM85dWjW
zz3HuhHd8qIhs6dvG266K3r/eKUOy9t+zzT2Ti7pwsvkwOw5IP+18T8GO8GP ydKJoKx/TJgK
rXv/4fTC8OlP5dMX8jx+98GF8kFJdEfyRi9DEEnWxp6Xlq4njcgQznfqACib UhjQOr/W84MS
c9eL+ftZ4dbqzRlPj7N/PaffP4Xm2W+eSlcwzWKJstro6LdO7TZvkI1TvCFs uxJyzB5ssmSo
Cx9Ztgbb2YbcE7oerX6kY3GGfX97Kcy9mS5L8UvWVS6LPjLuMpfBd2vmIa5z KMNdB5yduBz5
7Za7bRoqHvBpFyLD0JGhHuHTcbs6+VFqz7BZEss2gRHiGJFpXDappVC0yCwa OFYwbRV4Iehc
WT2dvyb77XHGHCk4L1KyTcikCIf2Ww/XShhgrCbvWK1ZAPkufgf0k1M0TxsN w4Dvavt14sfu
kusFlqVfTPfHp9dMptuP8G+fZl+MXup2WjeI2A2AAJIEMRON9Hu+7GwKUye3 lusrmYRQy4Sl
IExb75SAUASQfsibflx45K15R+EiITvlh7ljmuyV4ZpwTGOyf+U4mc/53MK0 o95ZOoImpZJX
NPeOzOnRn2karlCxs2GshEpnj17Tk+/M5T17cI9IYV/zq3W/2nD1xXLlDcyy TWT3vpv1RfPP
q8sUH/MrBCWqMTik2cBDySoOZs7PtffPC9/2Egcdfcfvq6EP8M3oMzC0gpJz ZzqxY57enJ5+
5qEOwoYU9eyXCq5NHsAlQzoKQ+uBU5q0482lNVh+v75ME6grK7ZvydtUbmy2 zVAhQzV+YFo4
nWztVNjVuXkCHcwOwt4qqOScirDpFF4zKS5pf27hNOIRADCRIsdESscJsaoM gDMVcOZm0Aa3
yjvZmbqK+3bV2zheme/wH9n+mWv07wRFSuxD2mLaUBuSuDYPi44S7Uwa5dDd x10URwQRY/aM
CVjprSXC3FF4KNdkqsBhHU84HbOSJkiQl8iWlyimgI/2yiObxNCzOxQ+xERK FJaoJlMFShRP
OB0lqgkSSBRI1EDrKxeYOlZc2fZ68eH8I59aCHufqX1Li7r9+I+3RpgvYb01 /tpnpWv3j22b
q3hr3FjhAtH6Xvjzt8YH9D0yJtgZaVV8A//KW4MMut5OJt+/fzdt3yc3p/z9 0x7NNSUhRYMr
8ikpjYM/ol+nN9hW//nO8pL83z+Tr3dBe7Bug2BvcE3y87b54V+tb1YYW/nz 8KP//hu6C3QX
6C7QXbh1Fx73iq0r99G5s8g8TStuZ3Np479X7BEDh7lXbBAQMFUpaKryqxWt 8M/n89Hvo5Uq
7Nlq2SC04dw68IURX7aV3M+LvbWsQj3M405ukf2NlqILQuFXAY4B43KGLD8y 09+7dOfIfrA9
VKpwmt36YliOc0Kun/gru4axbZnXn+jlFb8yrA77NyMLixquV8f4J6lXMhal vEq/aV2Wtku7
WYXlnVWY8xeS/ew/f/n5zdyx+GFKS9/m25+jxuem92+YtR/95wy9PEB2uwrK xP9F+eRT+lyC
h9wuVC6TWtzlZxxfML1Vpehnxxftb1UZG5I975G6yO8f2P/2jTZ3SBH7qjdH kQuj9rhci/7W
JHtQ+ws46+CmiU3AzRNy2GCVIkWOhEDZvkV66VYRiErhpoTXzK5skgp3fofl 8cWX/PzMlxLm
FocyHktOJq1EhuODyhcB7ZMxHF/slStQoe/9uqQGVy52nnXm4kxPNIIn4zfx bBW6d5gLCyxK
eUPFYpdcrWyrlx+hOJ2ga5CbVtTg3sDmeyqpV5T9I5UxGsWNTPNkaaEyMiwG hYUOxbdu1Mqr
zc9b52fpILM8f0GGxeTyy1Kq1uO6zH19twtnPhImTZfupCYfpnDbxZz8xuTs Ab1H7HiEdV2s
7P5Yxzf5B4MX8P7oem24584mpMEwTu+77fwCyNWrpQexeBHvrfDHbUAZzBNV huB03+kkm4+a
ZJNRJn3tPF75jes89H/f+VO4vOz84SN/0zM3jJ8FjtX/bZefxOWNlxsY+Vu3 b3GMeYboOLX/
m68/jcvbrzcydg9kd3Tbnkvv5+7vhM0H8vHDZjuquCJwkI1tesHQGeVH8nVH uSVFHOLM7BU2
6YCdP8pP5OqOckOKeIOk5MmK/C47f1SfydUj1aYU8YkXLHA8XLBzSOmBXL1R amf0rghZpFDZ
Uzi99FCNlCl6tky82F3hTJDFK689jtO7r7Uycic4MYPenj2EywvPnj3y18xq aMZ5UKbMcGzu
JSw6dvEYLm+7ePrIX7ZLptLZDLQqj+Ly0istjPzFf2UwifyV3/zxVxWmjpeW 6/V/y/lTuLzn
/OFjf9OBg1i86vwxfN51/vSxv+xoRo7A9H/bxXP4vO7i8aN/39G/vYhusGDx 0isP4/TmK22M
/vXTc6kM3nz+HE4vPX/82N/3A+49z+zA9+k2hGek+WcvzOfmwetnC+vZzPUZ +GKvNvj4aa+m
R+5DJqu4PBdw1Vi7xVbgjhQlSxQ+u0XeikWAaH4mLyc0NDV2nyx8BsEifwqf 9549fOxvGj8B
2Z67wlkeWs7NdEHhX4cmk0X0x57OxzOPNKqYxxBdjrhfuryc1tDAIH5raFdF 13F1mwiXqeOu
iM1i5Po5fJwQKbIguUKex3JFcvN5XN7/ZjMj98O/E2zHf54dmK9Y7BWqP42L D+qNjNwDkWX3
f/HZQ7i87+zZY3/NduiuYmvlMnjZ5UfxeeXlFkb+4u+QF9hu/PDMQWRb38v+ 77/piVzc0NSQ
Kt6Ig8CLsFGHDP1ReSZfj1SaUssndy76zsUx5QcP4Z1ye2N3ETalKIPV3y+1 p/FxRq2RkXsA
v0pydvIZGXC+7u+Cjcdx8cFGKyN3wj2xpv/LLx7D5aUXT5f7ZT9+V2x9w/cq DFYojF0Uje8C
WL62KHSr6yvHmf2MxnOpa+tLjrOeYOY94TJYKHSb+GCGQpeX6x5j7OWXX4mP FygcfQXNsjGD
FM1k3+DY62QyI8XAZWXrqkfv0saOffleEW48ZuAwtZm5g9jLubgxTlcQprcc fpx9RTbLgsR7
XfPy2MuV5XIX8pCNMjrs73zJlWjMV74MqErDXf9CKYKfFXy3ZgxvsGlqpTl8 cm3yQ0A/OUXz
tNEwDEK+1xFCCgcpnLYp3EBXC5fkpF0Ld5Z3hyLzM/krKylMP8rexK8/raz4 9ldSc5PU0/u1
qKzXrgL5niU7e0IOaFpDGjd+XeOLCTb6wymuWv3E9F+2WMl+amMME3V5Hd4b zylq8BpHtp0s
Ey/l883lKX5y1hp5d1GPJxtT2/IpxP8dWwvPnf0fAyvHEve+yHB9UsK7fenj LQ1g3PSZeXpn
RMmsqDPJpYVJOpFN3tEQjeFuRTgwQFMnn6fDtDI582NaGHSY1ta1NIdqMAiG 8FcU2sO0MlDP
yFoasHfkLQ7aQ4pGB+slkyuLnv26swZqbxUP1tCAfTNtbODumTU6eA/N2x2u k+IWLW+JcP5u
Dd/isN2o3Orw/anSuoiOVQUgpIdN1tm60MYF9bsqAIFdsAZEaG+sYxHdMfHb oAPEQQP3GkiY
FloX17IgbpRaF0iMMgqhrKgAEUOJAkLg36EwCkRTYnKKHygaw28otBzxr+Iq WoiG8P/oMSc5
UKS3U4jGkqL4jdyEY8Xi+8h14svxXn6PhIfTiWWTyfJIPALB4bWEQoIwW0Yj RbitABIbdnMo
l8HC9Y/oN5KQiEAKklguTNYCkdUouUAh/8615IK0wMHpGnkkQLmBZNDCBEuA XJg8Fz/xNLAl
gxUFnmu7sSz93ZkJbVxwTE0BSBBOMyBSRNIci9ggilFc+Dj9jMUzZHJFCgXi h0jA1skUebhl
0UDSfSaReASCBaSEQgIVKaORQkoqgMTqSQ4FZwQJ2VgTSEKhyW8kd5IKTPSv j5ensiCiadwC
LcUgu8O/6pCMO6L3og/TaHa22xx8yS093zyModjIZzFarvB4Bg3X5HAteXjw bzNs7tKKYmMZ
OO7cRU7/Ur7GwcGLn1/9/Murn988f/5cPKzNa6QwwBdv3hy8+uVACoDFDRKS 4cqLfEnmz+xS
E1Go0lM5X9yDN/6XmH78jHz9bB5msA5fv3xz+Mvh4fNXryWAhSKhsNrclyqf cGxe2SsZxPJV
8RjawasXLw+f/ywFtIZimZLp25bC6pL2wtp1rJK9y/x2eulk+aslo/5tqWgn G0HyKveicGVO
JVjoST36og6KYPHi9eHhm5dy0LR0gczB88PnL37++ZcDOYQ4v8FTMl17tLC/ ZHg3a7nJNoxY
39glWQ8sXW4qmVOrN1NicK8O3hz8/Or5yxevZXBo9UowUV7dOrTwpRxa3OJn P5O3y+1585Vk
4rJRch17/c2bN69eH8rxVquVsiUPdU03okgGeX0/sqTDofyot4RcySE6M5tU 4M758uL54etf
DiUJyY0FzmUbfqyvN5EM2a7i17K9xEeu9JGM3jMXB29pFxJCOTOK4l5kyYCt Ky9jYC9f/vLm
Nc4SD96ImUCoBQ46o5vL3sGb15iykkycbpRtJ6HjJc6tX/bDd40SWpUoxp+R n94LInbgl7zY
y5eicguBnD/GxFiNlrCy6jAFtMr3bw2MykZpCaXpzdH1Tb+Hl55mp/9k/DU5 vvib1D4hn+Cf
SkJaNmdddYVMtr6dTPbqYf78S6sqKlRGanVyMMwpimn1F4eWMSf7SPCXaVob hMYqmXmubVyc
kmpPT0m1mafStkZasfDoK8zqBx05jmHfup5j5Dj+CHHHR+FfDppbiRf/XfzD GR22/ZX3uL8L
5O9wr/ur6H9/1y2iDtUV4tdoBfCY9vhnk8k08Y0r1w6D6CGK0TL6ybjwbXMy Ob05JaUvjVK1
LePQfDGZnH14qhC+/d2b58Iyd8ExYMzmlwFiL4ifcfKEwuyaCwDKrsLop9AN QkwhRWqM5uYM
WGWUbZNQZ5RNndGIDA0C37yyfGtR8PYaLVwcVklN0Vqty+zn+tW0lKjR84CM d0LsIPzi/GQ5
w6/V9d3Yxb/0nzR9oAMrDGoEzfyWJVFL/K/4Y8NxFwiPyvHYfxX4pOeSK5Es b0GIeLs0rk5f
jae1E/xYHCuQQ66v2dmu/K3gZ5/Sx/34j73nDvg+aI8OauevZgztTAmb3hbq iFOOiIiLY2Q/
Hkn78O1PTdV9ejadXnz8MCUTT2No5wT/BiWSnUQxfm56/AQ7fZXEWPTI5VNU KNIAlkVVSRts
WTKbJEMs69I3ltynHGrXxO4OccCpQ3d/bstXchlwLoV+HAQeslpepbA5QDJL 45zy2Cadnn1m
kIelt6lgdfeyt5i9OePV0cuT0+PXz3/55cXZ2fHx4fHp4clr/NfL1yevjl4f /wygRIMyCiRW
HIfuLImR8XT5cEbOuzw1vuOciJSWT/CHJ1Z4R37bvKVkjoN/5of2TB/FTwHg yAAerZDnOkEN
4tH156PLdx8BjBxgImTbVg1JmBeBiQCLDFiWDx+sJapieff71fHZ9c1HQCIe yYVTxXEAAIYG
8HvskpGzE4RVIJazxONqPNyh/wSgJAVFK9lV8dzaAKIliC1zTcStt7zmaZg9 fdu+HXeF/x0Z
J+UtOm/7PdPYe0We3lw1OTB77mz6tfG/Fj0Lxzr8crPHXpL369Nh+TFZ6Bl8 fXMcaIoJsPcf
Ti8Mn/5UvvdLnsdvbgHJezqVhtL+DXRHFhO8DEEkWRuttG+KfKfeNOVOCgDa ZdVutphGdjLG
PP0pdTtttzrk+4RMuq/fJDtxzWwrrvk5+zeycSPbtjH6vRAt7R1ks8TgmKoT 3PdFY7dxvDLf
4T9G7e3dNvHz6BDtwh4Y7nft7nn7fEvSwmX047iMvrSS65F36WHrYsT9KnU3 MD8m8SqJp3Sx
mlMza3XKeiWXNgWKfYNZQ+k9t6ZB8oe+Xh2T8RMeLcZ/hG7MbytHjfLcG+Pb AJVMnjLZFHqx
VXmoZWyd8OHJhmnDjkS4Nb9/XrUBAVKocaRQTc68yYoTq0PQ3KJhecmu1d3+ ChM/dpfIzI8H
m9fZF+o4cKuJw3qUO4z9FXcrFFBemZW3rZtzDQGvji6eZhU98N8eubiGrDjj pDvGwzLkfCou
OBi9Ru9n5iA6PRSU2nCKVlZ9Z0W3sTXzWAbdvaRiP6NBP8YzpbkxT8V+qC5+ 2q+waeA5P8bt
woTfgBN+j6zo3OAvZ8F9fhpZxdXvqonCFrz5wKiHOpegmVs2MlrBgVA3ttW7 D4nnfQqou4ee
lc72xeUbI9URjZphw0oFp8bbCUQNBMjCiGTBDbBRZBMo14WwjeRw1Cqwy6KB k2ymrUKKLTjF
pvMbU5dU/fiEMy11YmTNsGFjJKfG959argGA+DjeFVv848X6e3q6RR2Sbto2 LE95tL/feu51
+jcOphHuwHGk3nJu3UIxq7m8ULQbrmxDA7qs0nruppqAf8c1Lr1G5J847v1M B77cmzlO5nMU
Iod7Q7/7UbIi9wAj58y3A+KyIbboX/jFdl1uJjYxHOW2mZguEToLwyAc+QJe azOHjeOcoezr
7kLWVXb2hpGiXM0NyP6xfAcYCOoqJW07BQZcPd55k3zMtSJuDTPvqiffO80U M+bmCqX9LupG
OMDs8TI7X/zNO2O2InXkWCuljp7ttlPMqj8vLO08/i5IIvQNodW6SJK6bm8w VqzvOQLqtgtk
BzDQeXV0Pru/SnnCV+0Uy3U+WPrRvIoJGK4Ow89IYTrl+V22Uiy7eSDpx+0y ImD2+Cba2nm7
OooAf49/ti3b4XBBNzioWKWgZqDQXS3sQLRyLtkI7NpI3T1LuYFCncsORCvn XgYLpQ7YNZon
1LFsIfTaiJZCgbirWp61RUrA0SqtXG9JBsDJ48+ivYDcpLmYPkQxWqoXiyvm iYnFXCB0E+kK
FGDvuHYMX3wceL8rr1boibErazXQTtpy5/8UussgdFzLU1zzGgwVp34cwbTP YbYAAjUckRpS
BfmMbPxsriLFob5eU+ES+v2JFcXcBZ5adTQjtyDa9LIvvg2FofXAvZUPwTSx b888tMSs4P4G
y/dEHIWLZJBGcVw+dz00QGym5jEOjPuF53Tz+9Kyw+DcIsx+UC8yb9ooJijz w9E+Hm9igVA8
/mmFTa8+ufke+N904HRqqSzMZouGBb9TRMDy8bPccUNSK/gOmaf5V+oRvMFI MdzmAqSzoxWu
J7LLWmlcL0mdkV3IQOLHVkL1xAt8JKL8/D79CrqTShlDKS/8FAb3DyqHkbqt ooMILzx9aF7H
BGwf24Q8ubtk+GW9Ur9RrmT/dhuFzy5wLtrfal4BKvaPPj+gAoJHHGEQrdLr h8jJjey7IFSs
WPB2QwUUD+YJppfTj60IaeN4YqxUzmcJqGU16d2gQOZV2lr8iMPB2WMbBUxR PNAIoKHrXKH4
NnDwIOTJ0XLmLpIgiRQsxNXScOFhZQhwvRRnF0BQoDHOQwynQukFcgvko9C1 qzvsT9I7VfH3
qt0i+Ii5Im4UHAjS/jqzFyxQl7EtkaV11dOy54NKDL2jsnZDlmpHqB+zVNhV pVzRtNWU7YhA
TsY7Bdrg2/Qh6e8rTfKyocI5zhbMfqtYIYqCJLRR/qTr7HvVfL+fvWJWt4bB 1H6lazcukHyV
pkMfkSNw9niGC03X2c7dhVq3AmODhr8UmFmjcCfwgHcCryfoLrB/LZar+gsU 50HxKEoPSJJI
P0kfMcnVdZJF1ImD5lbixVHxL+aqOOk7GmLmFgu1NOXQOr49/WqFb+euh95O Tt5OPoXBIrSW
/334nBxfjSZHKcqbYImfjj99Zb6afKfPjSbHF0VA8dxZgfeZg1bPDsyXJn7w f026mvqUgalV
QyPay0qBhM9AwU5nCvHfnpcuVkTm2X2MxQI569PpT9ZfMr6kTtSAoaPdgwwc hGHbPBV+6fro
Q7KcoZC53/fKWzu+CkhjRzdN1drTN8E35Lv/0VGLCtPllCOG8Bo3gNAFEh7u 5yNJBVJQpbGu
xbke37uHSfYqoFrZZbBQ9khD1T6hlRmFH2Wo4gAZGtuGI+4lrs78ZEmmTKq7 GLFfPu5uxg5C
ZJKbLyw8TqCbp82/TrJ//Nv8i76c2yCK8dd4/P03eYn5HcT4df7l+vPg7+KT zy76ns3BvTU+
BIadRDGZJyoCqTEn82am8TudT8uG4+sH2nTiLknNMAG/Lvj/V6//DAA6XqBY 70M66/3e+oa/
stY/cndgvgQconDU6rgbru/GLn7EfzA2E2CIgXGaCfZ6ZGqQcQddFPqStvgl Tx2/ZKnjl3zS
+0vDpDdAVxv6TfiQrSgmEcJ5I9kA2G/vIABXFHiaEgLgMQAedLthvoiczT1c LFeewpsNG6wV
vNWQC6J+fUAf/8vle7F1/LahgtlIFS/y2qU/4PHxniFB+abFwrEb2xnVkfc9 jB1W4QcEtD/l
9wAFjOfL+IGnMmqaXp3PMn7sFx3+AfZIb4/4A2vK3uCyl9kyHl8Tfs/LXvAg EikRiXLfGhnA
dGkFi1yMqodcWpx7A+gKQy+3arxdR0S6V8GIsmVTEwCNBZAd4FwExQgA7QNI yHTvCfk5TSb8
C1slmfJliKeP93XxvExel2yan2KCtFuLSf5CdcDfSg2zqF/LGQZyus0jVcIS GKGZEY/OTwrL
pJVCJqjUxfqmJeVrXfAyVcZiF022jrbaxY7rwS5dUjTGU/mWuMxE0ZfDMYbR 5064DAqkq0qk
q9n7T0tgG8W1nm9bdwbAyxfvsMp+Ra5wU1nXqYGiVZ0piD6aToGAoqt0lS91 KX5PEVJwl+Fe
5krBbj6QenO9CguYD7ncOggAWn5oh40BlOUqqz41ULTOMwLR1rkX/iqJ1bqO dYeRop3MHEif
EF6AgcCt4hpxTVrAySqc/Uqvs7zw7zAA8oHSZ7+2Givq7Bd3QF3Ofm0FBYyH 8dha/AEtP7RD
p+y2lziKJ+zURPHpOlMY/ZJ1CgU0ffyz68WOMKJe+BXlO2AU3rJds1Twpm1O aHps460hApZD
5laWfMDLF++w+ds5th3/jMr5W2ai6PyNMYw++VsGBZQdlL3cGQAvX7xDKPuK zAKE6WSAgiUW
K+aJUXTGEDq49SZECHdqWnUhUtzHFVslcDgXPN3O2G7HBYF9/BMzFe/qwnaZ mC4jy4HhSu+S
qPgaXKyMiPuBg8wPgYrLZHULhQo3cxS9JLtAA0we24Wv2VVN7Dc0NTV2FoZB OPC1r+UuOnVJ
0QD15Wltp3iRYo+lc7ZRwwNipVbacTS9KaYs1eZ32VLxDOeBph/Hy4iA5cqx fBUGNooi5Tme
2SkFwxlj6c3vDA+wWxl23wTfkH+1CNkOEmTjdsVKoczmgqQzrytogNXKsPrk 1grTonrKUnpt
olA+s4fRa05wDQfYPKJJQTcwjx9idBSG1gM9qcyYvK3EI9+hpIGIbJoqVEz4 wemcIWxCAmFR
Jk14//4mXQvGhsfqzt5VzRTKcD5QOrO7CgeYPaKUIYldj5hlfxOTJaT95sn7 9yeW56m+byw3
U4JtY6yh9NxFlMMB7VBsS2g6NZReA6D6HvCSqTJsAecApyfLy5CA6WPLEs6W q/iBpgo8Nxzt
O92s9iKD+MUFORYVQCWUOPt5ghug1+4ePjdS90am5q3z1Esq164fh0G0Ihtp At/8fYbbJd+o
dcXpY5YOq6P80XT3ux4+l8ffYtbxdiGCWDresfUuv14Gi4U185AeDM+tlYfp rBGxY3yODJiv
0jHMx7IM8PbYznF9CKaJfZsWJR56bqWhN+ExzKf09syHKVI7cayaKjym8IHT O6BUYYG+KHYo
YxbFoWXHZ/fITmKFt283WivBAQ1OiHoe06ihAtarxfpc0PVgfd1a8aznhagf 6+uogPVqsf43
pEmYLxkqnuscwPSjeQkQMFwthh8HgYcsX6/wvsVo8cznDKyfCmwBB4qg1DpR afLmN31m836T
azbvNzln836D2Tz12J6uI6hO9NRKGTjOFgkLeqeIgNlK7J1MP1mSa+yNt7g7 uLGLH/Afem+p
EcVWGGOoJuCRE4/l0J70+SrrR5+vDM+dhVb4YMRoufIwc/BPfb7618ILZpb3 r+wfzbslIB4E
8aC3F+aX1Z1bNhERhW8vrFkq+PZCTmh63F5YQwSxetSx+i9EKl/9beRezc64 YdVJfLIBz4gD
2nWN3P/G0yY5eorDl2H5D+sfy0wHC3SwoDm6UbOMJCKdvDG0NVlhNF/7hfLN ZYX+fAji8yDx
19vO3hq/t3pd8Frgtcj/WhpfRfqPIVq4ZKsLHS/YASkwHiMTgKoC1PK84PuF j5+AjF+NOEzS
wQDO1izfmCGcFOGOi5MmN/0RrP65ORFA1gTyTfDxDiun6xDwNDfO0NdgL60H 48PHG5JbemRK
bhWiOzdIIkIG+qMu6fNgEVi0j0WXdJyy05jvrucR+hhpKCW8iexghQk0T5+E HBMsAUtyS5Yo
ivCoJzJw5KXojSi9D5iCDpJ4lcR4QLNYkPww/2EAqxpYK4kDMmw1gvm8Aa0f xPRHljhFww/3
yGCX/njWo/O8jj4OjNDeiNqiivCUHvA048GfRIlNrtaYJ6Qv0dUvAdEIcNRx fHbR9ykK73C3
eGt8CIw4CLxZcG8gP8bsdkmf8efuIkkHzQBw7ABP0dxKvJiAijHCZ/EDyQ+j t3jUex9PbuOl
BwAZAGS1eIsV28QZvB89LFe3gf9gfkez70H4zXTcaGXF+IGhmSE7LT4Z5+pt J1P5Ld8KgrOH
6/Gv/YH/JiWtXTtSzNlV4wS4lw+A7Zvn9gQC6/BjrZTSSUjA3aMrlZIsZyg8 D0I8YuZ97/W9
GaUdxryN45X5Dv+R9aBr9O8ERSM9TLGXafxCwoDNp7yJ6GI4HpfTH9hYwmbQ 0mlKcNJMHJAi
n4Sp9pqphhXjcYrz1ujIVx5sTVHyTKTuqfymwzIyRliPztgTV2xWtYelA6ZY g6B51O9/kj/V
dHTVtME9y6f5PbOqJgiQRSmTNO+hHeDtceTMW3x7RE+JfQqD+welRLlk1+CK zLTtzTs9cWqc
ri6xLfLbcsJkw1QQgtGdHMZOXQZ+ZGb7FMzLYMH6KNKjAkSPrNJtNu5/kHOD 7uPf8SdKaVGz
iYPLEl8YrTKKZiigIGO7A+omRIhlTeCmNq5cOmOTnzngPcuXNnoSeF56gH6g ZqIhFDefA29K
6BVb0WoyUcC6Fk8YLRc+mqCA4o508FZzarY7QgNCN1kqjtc80XSjdxMiYPnY ljV/96NktQrI
7sSPK8RrlaSNvuQrWlpITKOxIlWGK6CuQtMICrRGjYwiKwmIX6YGjN9irDjG cwbUjfFbQAHj
x5ZdpM/iNbFBmyj9BLN2FmQ7UDoJ9GPeNVdFn/wHM83g3gjpimsKPp27Hno7 OXk7wQRbhNby
vw+fn+OPoskRfezkJljiJ+NPX5mvJt/pM6PJ8cVGX9+E+5QB3BGBrXVEH8Xm 79eXXPof1spJ
WStzeyZOOv7i2zEHb73WCb5a4du+HcFzZznsZ4fmgfnaxE/9r0kL0zj0blUM a1zt+2pFuIFi
q+X7KN9kOfq6g1stG6TOIOfWYdfqgLtWo8Q3QzQnizJkpjyKw4Sshx/RU6NB SO5TbccWeiKu
eC3k8Np9jFucZoVoi8PBjkyPO7lF9jfyuHkQGvn5vbdfDxG6eVihX/ErvAqc xEM/+dYS/TqZ
FOf6sA7+9P7w7OxotfJcmw4PfvUDH9EPCStQSL9XAd1yhiw/MtPfu3TnyH6w PXTpRjHyaa/C
8YP0GlKP9uTW9Zy/0t76a27Rmb9wfVQ6H5n/wzuMtXRW8ieb/HbrX6u/OXri 8m9Gtp3gX6Yd
7uoY/yT1RMamlF/pN7RJfi3mJR2bnodzzIgc/M1fQvaz/zw4tF+8OHzND9QH a1larY4an+ug
lRc8mLUf/adz+BK9mO8HjZ5dT1YmcXo6HMdwTulzCR6cXBjWupsbjhsiurHH +BqtnqF7i8hE
1IKGlUO9uKkjxzFovzQ2ulm5hb+Ntt12vJhyl2SNFl6pfP/WuMirQ2A/9Xtw JjCp7qfqWLe0
cgreIKmtcfL2S5bZGjSv/ZLmtV/SvNbAWS39rUn2SPN+36PV22BOyzUXVilm 5EgNmdeb/UJ+
q4hZpchUQm5mAwJJLchGPF/Kz/pydXZzRAY/X0p2GD52OJusZtJRtAZ55DUt b4lC8tR9kpBy
w3ulIzSs9H6ZI4GZTy0TmBkRihLO0QiejN/Es1Xo3mH2LLDI5Q0VE9lytZJm IFkbpbwmQjH+
J2RMGqSqI3EGbGrz3ZXUMMr+kcoizR6MTENlaaEyUC3GqIVyxbdu1MrTzc9b 54rpeLo8U0Mm
AMjcVClt3Ccy4N/4knvxS+HFL+29uAtxPvwnIDbWewjwrjEse9SX7FG9JxXw sO+6WMf5cWMC
/B8MXsX7o2ujMu/4NYo9Mt3I4j3g533Jn8fiZby3wh8bwTKYJqtMCdAT5ZNs Om6SzcWZ9L3z
eOc53Vm+9/Izubz7cgNyv/+tazBH0TTGD1n+mJ1ieZafYmG7+DHIjHZ5ZYej Lfl6R1aTn1Sb
nJNp5J+wVfkayP4ZXL/Z5MTH4dGhxZdpoUtRs8oDvZGmjpuPmihXXJw+TPY6 mzW+Xi3QUOjy
wrp84yIk9vLLr8THCzT+S8jLxgyy1Mi+QVhdHHB1cYfquTgJJI59+V4Rbjxm 4CB8GQYEcAg4
BBwCDsnAoTvLu0OR+Zn8lS2L0o+yh/z608qKb3+tzu6TWbpfi/m6dlsqWi8T 9DQjmH1Fdkxg
GL+ukZJq0L/SH04R1uZn03951HL2A58xDOPzFcQbzylWD40j206WiZcS5eby dH2RH3mLUY8n
G1Pb8inE/x1bC8+d/R8DU3KJ+yYpN0M2LrRfvt3SAMZNn5nPfBlRMitmtLm0 QHrXMK1MyO4O
FA/a2OQEU+XboUkm+Jg1THZtkHZJvzKeVlp10CxZPEt7iRl7zlNO7WRywKql na/ycIAXd0j/
eDaYWbiBaICOSJqZkPLNnvXwKcTxyI4jE384VNO3yPOCP4LQc4ZsdWX5yBuy wXtymcLMilx7
oFYzyWfU0qWFU5hl4LhzFznGTj0xDg4OX798c/jL4etf3vzMo8mtTFw3/fLg l+dcrN3Z6OFz
Zo2yXGdcI/z5lxcvB0SYDnK+uAdv/C8x/fgZ+frZV6sK6/D5q9cyvbjK4uP6 5T0/fCHBy5uH
Ql/eNljIlwEW8R6dzn12YB6aBy8yTC9evD48fPPyzfNBCbr1VUWyvKrawih+ ac/Nlxm4gzev
37w5eP5zr3d2jdJb0rFOnpCfZrXj5Uv+QHJAyHjOdCtxadPR9Obo+ob7llGy rby6bbQYF6bH
5iZ77oH90mqct20zJ4rjdDcf2ZlBhpD4y8gO3RVOIYxVMvNc27g4JRM9T8l4 +Km0rT2+k/2P
EAcCFP6VbfVrv4fd3L0nHsDiFgAo8HBPJ2Tbm26C92PpNuNDfBIsV2F6jgvH khiFNyiKs/1k
YMEwFpTPOUcrMw32/xqNVqoFn5wOwv8DfkH4Y2ux8hIM17RvgyBCYIg8hszx c/DHYIlElrhz
MEJouPPJ/0GwAgvEWUD2yyDcnTCvA7BCrBVpKh7h54VxBGaINsNOQjd+ILtj YmTHyPmXicIw
CMEiqS1yfQfdg0VSW+QFGD5YJI1FWS6Z/gVWCLXCT5bk/0WCwygYIdII/H8c kHlpk+6tAjuk
saP4Cif9YI405hySeQla+mL8PU1RW+h+TbBFPluyHcNgjkTmrKeVZkHwDWyR zxYFpFlRY0K0
QlYM1shjzdKN7OyyHDBEHkOcB99akiOpcRiBORKZg/+4N+lJI2LHPRgihyEE wHUQWzECa+Sy
hnDenSUxqnwzehFQ3qzoNpnPPbBIMouQl4n28+eH+Gfd+HaJ4lTDwSh5jSJ3 3GDDosCPwCop
rZonvk1Oh4El8lhCRtqu7ca0s6VVdMAoqYxyfdtLHDTqHXYq2ZD9DXYItmMe hN9JiYPsb7BD
EjsCH4ENAm2gO0vJn2CBeAuCcLVAYIZYMxwrRhH9E0wQZ4IdeEEYkb9GvECh hhHkWpZZcJ9+
EaIo8WIwRgpjLI/8fwAGCDbgEAzYYsAfR9cfduPPrjGeZqc1TgKP3JtOqkKR S1+jlWu7QRIZ
SeiRIqWksvhb439O8sMdk+Jwx+R//U96ESAybuN49XYyIQVmTXIVux0sJ9Ys SOL3+JMJqQGW
+PhXs0tkJ3M3pCWow+evXuQXTh2++Nen81Nz5cwN/MgUzsGBebifS6wkvkV+ TJbXcUJ0VP4u
88+HwJi6/sJDU3fhf/QNWlvacCODFPqAMt2tynSfB+Gy8o5Z1ejeUT+N1i5D jmH5RsXZ9Oqy
JYpvA8c4/3h9tWdD2TXj2fXi2Tso37VaNT77OWZ2ytg89qqNjBDLS7A0/GQ5 Q6Hh5pdep1Xj
ouwyyxE081tWbmqJ/xV/bDjuAmH2keUaTBM/pv3G8hYBXWozrk5fjac1Up4I SyZmw+KRduVv
BT/7lD7ux3/sXWWR74P26KB2/mrG0A69gfZtcUEFTkkiIjOOkZ9Hl/bh25+a XrAxPZtOLz5+
mJISnWNo5wT/BiWSnUQxfm4abbHTV0mMRY9cLkiFIr1DJLvYRNIG97r0hyaE nuUvTHJDDcur
fZra+EA51K6J3R3iOacOzfq551g3olteNGT29G0FbF2c0/qoyPKo9r3t90xj j2HCRho7OTCf
82i2qSImTaf7N/hr438M7nc/JjfTCBxfjw1XIbXvP5xeGD79qbwes/yPL24l Qf6dGwY+Lc+K
/w8fcHwIJmTU91KJZvAvnN2jJb2WLFKmKfLyZlZIX+ChMk2RJl6Mvom8Yx/I 18xmkeY8BJM2
rPVUk4HuSEtehiSSrI3KXKxZigblCFCviY/fZhlJtfUsI35aoDFrzngK8PjD 2yv/39rIOK8R
3WoOv0tDOTZZHabdm9lkv5nV0s7aO8rPJ4zbda1M5OdOATDgFtgBb1Le5V91 CSSWN0CXUdMl
nR/8SGc/GVKD/HddXN2bGpFNpW4LqYxapd86xuzB2PgZ3ILhpI5Hb1NbyUdl 2pK5Nfxfce0g
xYyiyf/4/54V/5EeSvvLybq/4N/r2FP49JWaID1IlvRO09lRWXNyJeG1HDLU Ghn7kKFmzhBD
BuZNbkt0yB4j8x3+I2tRyUHDo0YOlf4MBAQyIWEDh7qHVaaRaPYAaUZGmv1y +5p3IbcfdW4/
xX25viZBl93TVDUCBHE00DTWGWlMvTksapaYCSyGTUP4ETJ7NY3JsPk4mc+5 baPb1nnUY6IY
EgL/BuMfTn0+8guTtUndt/lOrIt8+zZyfvwHoBgQRS0VBxR7oOCdS2aneLBI kiu0I2iRyRx6
rUnjaRZjjCty3NQx0gvLnwKSrkj2Spcyf5tnKYy0gXHmSY2m8EuQODW3LZMd s2eaLBkqc2XZ
GmSsQicsGxkHk5XCJys7q1m6jK6OpqX2DKtsLNsEfWOjb2xzQHJ+PUyHQiJT 0bHD2Eul7PXT
z7Noc1L/aJx6tY9l/JRryNabk4d9EEAuMcZcIhsjX6NoFfgRUmiSPzdp4Fl+ ts1CUiFjUjFF
WDxurdCyybdnvh0QbE8BSncorebbcEtFQ3k7Kky+bbeL/0wc/7Z3z0tsbx8S i3GfltgQik9W
fCvB8sDYYUixRFEnNe1kNnmAiHd5jf6dkKJ0p8lyhb8X6FU1kLTqYllDaTsq hOMGg/jHYY6N
7g7ADQ1D5B3PkN50A/OP0I35ldfDDaTbD7k1Uy6SbUW4GxaD6/fRKhtfj1NS 9rGMn7YM1zrM
VzCcr9ismlQE95Y1YYd53Am524GmHkEoRYXzseBczpDlR2b6e5fuHNkPtodK Jb8+pTXzDctx
Tsj1An9llebbVkD8iV5O8Cvjwol/M7KyKG94dYx/knonY1TKsfSbTlUbu7Sd 1T/dWSM1fzHZ
z/7zNbKd12/4YUprwl2jKEhC3CN23exQ+9F/ohdvXv5i84OWnzEpFaXb/Ogv SqmizONPBq1s
31Ah+M7yEvTrwfOfjABDCF0H/RqHCfpbCvyVoo6P2iClCZUKjhsmHAeBhx+a m0BgS2kFrdw4
XgfQUo0b8NMkO0dP/+xoQl4vmMh5USz4lMoDwf0dzSpn/Bw3RDYZmhjXHz/e ML0GJw8c7e+6
GRWMHVeXrL9/axR78Pe/3mJb1ew0MSjVATawcXa5hjYZ4CPj5O0X/LOL0FqS GSAUfTmiLXy5
CZa4EeOV+Yr+1iR7inm/9PohmyY2QTZPPO/ByO78QY5sKBm+vy/kt4p0spQ0 lsDi2Dy3Ei+W
B/R3mllFXwjjv1yd3RyROZYvJciGjz3IZpTRUlV4Pql8y84+if9eyT4NAb1f l8TQypWbsp5s
FAnmCJ6M38SzVejeYS4ssBblDRVTkXK1sq3+c4Ri/E/ImGxqjTRP33xDJdGK sn+k6kUDtpFJ
nSwtVKZ2ilmdQn7iWzdq5c/m560zsXSWqDz/SKa1vgfht1JSto+a49/4kjvu S+G4L//qD9N4
f3S9noT33Nkk/7VnYRDE5lcrJJjbhpzsgV/wA79sPLD3PJzlOO+t8MfdsBnM fFZmlOi2sPxG
w0k2vWpSF/duaUE3mFFZPIqm9O4esj10icehz7xggXPZhYmTrRXCHRVFo5kk z23ibEs6P503
hoWaXMmW+M5P2Kp8aWz/INlvgjrxsT
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #111700 is a reply to message #111469] |
Thu, 19 January 2006 17:19 |
|
Humberto,
When I ran the file you sent me I ran it from Eclipse using the JDT.
I copied itext to the Report Engine Directory
I added the jars from the Report Engine Directory to my build path.
Everything worked fine.
If the issue is in tomcat using the Web Viewer, I did the following to get
BIRT to work.
copied the Web Viewer Example directory to Webapps under tomcat.
Renamed it Birt-viewer.
Copied prototype.js to birt-viewer/ajax/lib
Copied itext-1.3.jar to
birt-viewer/plugins/org.eclipse.birt.report.engine.pdf/lib
Copied
axis.jar
axis-ant.jar
commons-discovery-0.2.jar
jaxrpc.jar
saaj.jar
wsdl4j-1.5.1.jar
to birt-viewer/WEB-INF/lib
Jason
"HC" <carvalho.humberto@almedina.net> wrote in message
news:dqnsv4$p59$1@utils.eclipse.org...
> Jason,
>
> I'm using:
> Windows XP SP2
> Tomcat 5.5.12
> Eclipse 3.1.1
> BIRT 2.0.0
> EMF 2.1.*
> GEF 3.1.1
>
> The Report Engine and the Viewer that I use came in the
> birt-runtime-2.0RC1.zip from BIRT download page.
>
> In attachment I send you a zip file with 2 files that I think you asked
> for.
>
> Thanks for your help
>
> Humberto
>
>
> Jason Weathersby wrote:
>> Humberto,
>>
>> What version of BIRT are you using?
>> Are you getting a stack trace?
>> Also are you using Eclipse or something like Ant to build your class?
>> Thanks
>>
>> Jason
>>
>> "HC" <carvalho.humberto@almedina.net> wrote in message
>> news:43CE8A3E.60607@almedina.net...
>>> Hello,
>>>
>>> I've tried what you said in your last e-mail, but the result was the
>>> same.
>>>
>>> In my last e-mail I didn't told you that if I try to generate a pdf file
>>> or a html file in either cases the error occurs, and not only when I try
>>> to generate a pdf file.
>>>
>>> One thing that I saw comparing your list files with my Report Engine
>>> files, is that model.jar in your Report Engine it's bigger than mine.
>>> The
>>> other files i think that are identical.
>>>
>>> I think that this isn't the problem, but I don't know.
>>>
>>> Thanks
>>>
>>> Humberto Carvalho
>>>
>>> Jason Weathersby wrote:
>>>> Humberto,
>>>>
>>>> I just tried your sample and it worked fine.
>>>> I set my home to "c:/myruntime/report engine".
>>>> Below is a directory listing of the report engine directory. Notice I
>>>> added iText.
>>>>
>>>> 12/31/2005 11:50a 77,586 birt-oda.jar
>>>> 12/31/2005 11:50a 956,273 chart-engine.jar
>>>> 12/31/2005 11:50a 30,117 commons-cli-1.0.jar
>>>> 12/31/2005 11:50a 37,754 commons-codec-1.3.jar
>>>> 12/31/2005 11:50a 132,596 core.jar
>>>> 12/31/2005 11:50a 569,702 dte.jar
>>>> 12/31/2005 11:50a 870,507 engine.jar
>>>> 12/31/2005 11:50a 71,513 flute.jar
>>>> 11/29/2005 05:41p 1,145,105 itext-1.3.jar
>>>> 12/31/2005 11:50a 699,081 js.jar
>>>> 01/15/2006 11:33p 1,552 libs.txt
>>>> 12/31/2005 11:50a 3,316,129 model.jar
>>>> 12/31/2005 11:50a 80,541 oda.jar
>>>> 12/31/2005 11:50a 69,367 odaconsumer-helper.jar
>>>> 12/31/2005 11:50a 137,063 org.eclipse.emf.common_2.1.0.jar
>>>> 12/31/2005 11:50a 144,460
>>>> org.eclipse.emf.ecore.xmi_2.1.0.jar
>>>> 12/31/2005 11:50a 639,778 org.eclipse.emf.ecore_2.1.0.jar
>>>> 01/04/2006 04:48p <DIR> plugins
>>>> 12/31/2005 11:50a 14,526 sac.jar
>>>> 01/04/2006 04:48p <DIR> samples
>>>> 12/31/2005 11:50a 43,275 scriptapi.jar
>>>> 01/18/2006 11:00a 0 test.txt
>>>> 12/31/2005 11:50a 161,563 Tidy.jar
>>>>
>>>> Jason
>>>>
>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>> news:43CE2F39.9030104@almedina.net...
>>>>> Thanks for your help,
>>>>>
>>>>> First I have to say that i'm using a Birt viewer and the Birt engine
>>>>> API.
>>>>>
>>>>> If i use the viewer engine and then choose to print to pdf, this
>>>>> works,
>>>>> but when i try to generate a pdf file from a rptdesign file using the
>>>>> engine API, the error occurs
>>>>>
>>>>>
>>>>> I think that I have all the required files in the right place, I
>>>>> followed the instructions of the following url
>>>>> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>>>>>
>>>>> iText.jar is placed in
>>>>> "plugins\org.eclipse.birt.report.engine.pdf\lib"
>>>>>
>>>>> In my application, the engine directory points to the viewer root
>>>>> directory. I have also tried using the 'Report Engine' directory of
>>>>> the
>>>>> runtime distribution, with similar results.
>>>>>
>>>>> In attachment I send a java file that i think that could be the
>>>>> problem...
>>>>>
>>>>> I'll wait for your answer..
>>>>> Thanks
>>>>>
>>>>> Humberto Carvalho
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Jason Weathersby wrote:
>>>>>> Can you upload the Stacktrace?
>>>>>> Also verify that you have the other required files under the proper
>>>>>> location, like the iText jar file.
>>>>>>
>>>>>> Jason Weathersby
>>>>>> BIRT PMC
>>>>>>
>>>>>>
>>>>>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
>>>>>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>>>>>> Hello,
>>>>>>>
>>>>>>> i need some help.
>>>>>>>
>>>>>>> I'm trying to generate a pdf file, but the following error occurs.
>>>>>>>
>>>>>>>
>>>>>>> SEVERE: Report engine can not create pdf emitter.
>>>>>>> Report C:/Program Files/Apache/Tomcat
>>>>>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>>>>>> run failed.
>>>>>>> org.eclipse.birt.report.engine.api.EngineException: Report engine
>>>>>>> fails to
>>>>>>> creat
>>>>>>> e extension to handle this request.
>>>>>>>
>>>>>>> The software that i'm using are:
>>>>>>> Windows XP SP2
>>>>>>> Eclipse 3.1.1
>>>>>>> BIRT 2.0.0
>>>>>>> EMF 2.1.*
>>>>>>> GEF 3.1.1
>>>>>>>
>>>>>>> I hope that someone can help me.
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>
>>>> ------------------------------------------------------------ --------------------
>>>>
>>>>
>>>>> package pt.almedina.reports;
>>>>>
>>>>> /*
>>>>> * Example command-line utility to generate BIRT reports. Shows the
>>>>> basics
>>>>> * of integrating the BIRT report engine into a simple Java
>>>>> application.
>>>>> */
>>>>>
>>>>>
>>>>> import java.util.Collection;
>>>>> import java.util.HashMap;
>>>>> import java.util.Iterator;
>>>>> import java.util.Map;
>>>>>
>>>>>
>>>>>
>>>>> import org.eclipse.birt.report.engine.api.EngineConfig;
>>>>> import org.eclipse.birt.report.engine.api.EngineConstants;
>>>>> import org.eclipse.birt.report.engine.api.EngineException;
>>>>> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>>>>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>>>>> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>>>>> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
>>>>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>>>>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>>>>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>>>>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>>>>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>>>>> import org.eclipse.birt.report.engine.api.ReportEngine;
>>>>> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>>>>>
>>>>>
>>>>> /**
>>>>> * Runs a BIRT report and writes the output to a directory.
>>>>> *
>>>>> * RunReport report-name -[h|p] [-i] param=value
>>>>> *
>>>>> * -h HTML (default)
>>>>> * -p PDF
>>>>> * -i Display report info.
>>>>> * param=value Set parameter "param" to the value "value".
>>>>> */
>>>>>
>>>>> public class Conversor
>>>>> {
>>>>>
>>>>> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
>>>>> 5.5/webapps/Viewer";//c:/reportengine";
>>>>> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
>>>>> 5.5/webapps/BI/Documentos";
>>>>>
>>>>> // Command-line main to parse arguments described above.
>>>>>
>>>>> public static void main(String[] args) throws EngineException
>>>>> {
>>>>>
>>>>> int i = 0;
>>>>> if ( i >= args.length )
>>>>> {
>>>>> System.out.println( "Nao foi especificado qualquer relatorio" );
>>>>> return;
>>>>> }
>>>>> String reportName = args[i++];
>>>>> String format = null;
>>>>> boolean showInfo = false;
>>>>>
>>>>> // Stoare parameter values into a hash map to later pass to the
>>>>> // BIRT report engine.
>>>>>
>>>>> HashMap params = new HashMap( );
>>>>> for ( ; i < args.length; i++ )
>>>>> {
>>>>> if ( args[i].charAt(0) == '-' )
>>>>> {
>>>>> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
>>>>> if ( flag == 'p' )
>>>>> {
>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>>>>> }
>>>>> else if ( flag == 'h' )
>>>>> {
>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>>>>> }
>>>>> else if ( flag == 'i' )
>>>>> {
>>>>> showInfo = true;
>>>>> }
>>>>> else
>>>>> {
>>>>> usage( );
>>>>> return;
>>>>> }
>>>>> }
>>>>> else
>>>>> {
>>>>>
>>>>> // Get a parameter value. Note, this example code only works
>>>>> // for string parameters. If you have date or number parameters,
>>>>> // your application should parse them, then put the corresponding
>>>>> // objects into the hash map.
>>>>>
>>>>> String arg = args[i];
>>>>> int posn = arg.indexOf( '=' );
>>>>> if ( posn == -1 )
>>>>> {
>>>>> usage( );
>>>>> return;
>>>>> }
>>>>> String param = arg.substring( 0, posn );
>>>>> String value = arg.substring( posn + 1 );
>>>>> Object put = params.put( param, value );
>>>>>
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>> run( reportName, params, format, showInfo );
>>>>>
>>>>> }
>>>>>
>>>>> public static void usage( )
>>>>> {
>>>>> System.out.println( "Sintaxe:\n java RunReport rptName [-h|p]\n
>>>>> param=value ..." );
>>>>> }
>>>>>
>>>>> // Example function to run a report given the report name, parameters
>>>>> and
>>>>> // output type. The output is put into a file in the same directory as
>>>>> the
>>>>> // report itself.
>>>>>
>>>>> public static void run( String name, HashMap params,
>>>>> String format, boolean showInfo ) throws EngineException
>>>>> {
>>>>> // The EngineConfig is used to set up engine-wide configuration
>>>>> // information.
>>>>>
>>>>> EngineConfig config = new EngineConfig( );
>>>>>
>>>>> // The Engine home is the location of the BIRT engine runtime.
>>>>> // M3 Note: Use the report engine installed as part of the BIRT web
>>>>> app
>>>>> // used to preview reports. Alter this path to the location of your
>>>>> // Eclipse installation.
>>>>>
>>>>> config.setEngineHome(REPORTENGINE_URL);
>>>>>
>>>>> // HTML reports can have embedded images or charts. Set up the
>>>>> configuration
>>>>> // required to write these into a directory in the output directory.
>>>>> // The HTMLCompleteImageHandler is one provided by BIRT for this
>>>>> purpose.
>>>>> // Your application can create a customized version to provide
>>>>> alternative
>>>>> // ways to handle images.
>>>>>
>>>>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>>>>>
>>>>>
>>>>> HTMLCompleteImageHandler imageHandler = new
>>>>> HTMLCompleteImageHandler( );
>>>>> hc.setImageHandler( imageHandler );
>>>>> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML,
>>>>> hc );
>>>>>
>>>>> // Create the report engine itself. This engine can be used to
>>>>> run
>>>>> // multiple reports.
>>>>>
>>>>> ReportEngine engine = new ReportEngine( config );
>>>>>
>>>>> // Open the report design.
>>>>>
>>>>> IReportRunnable report = null;
>>>>>
>>>>>
>>>>> try {
>>>>> report = engine.openReportDesign( name );
>>>>> } catch ( EngineException e) {
>>>>>
>>>>> System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
>>>>> EXCEPTION: "+e);
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> if ( showInfo )
>>>>> {
>>>>> showReportInfo( engine, report );
>>>>> }
>>>>>
>>>>> // Create a task to run the report and convert the output to HTML
>>>>> // or PDF.
>>>>>
>>>>> if ( format != null )
>>>>> {
>>>>>
>>>>> parseParams( engine, report, params );
>>>>>
>>>>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>>>>> /*
>>>>> //HTMLRenderContext renderContext = new HTMLRenderContext();
>>>>> //renderContext.setImageDirectory(IMAGE_URL);
>>>>>
>>>>> HTMLRenderContext renderContext = new HTMLRenderContext( );
>>>>> renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
>>>>> HashMap appContext = new HashMap( );
>>>>> appContext.put("PDF_RENDER_CONTEXT",
>>>>> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
>>>>> task.setAppContext( appContext );
>>>>>
>>>>> //task.setContext((Map) renderContext);
>>>>> */
>>>>> HTMLRenderOption options = new HTMLRenderOption( );
>>>>> options.setOutputFormat( format );
>>>>> String output = name.replaceFirst( ".rptdesign", "." + format );
>>>>> options.setOutputFileName( output );
>>>>> task.setRenderOption( options );
>>>>> String str = params.toString();
>>>>>
>>>>>
>>>>> //task.setParameterValues( params );
>>>>>
>>>>> // Run the report.
>>>>>
>>>>> try
>>>>> {
>>>>> task.run( );
>>>>> }
>>>>> catch (EngineException e)
>>>>> {
>>>>> }
>>>>> }
>>>>>
>>>>> engine.destroy( );
>>>>> }
>>>>>
>>>>> // Display properties of the report and the list of report parameters.
>>>>>
>>>>> static void showReportInfo( ReportEngine engine, IReportRunnable
>>>>> report )
>>>>> {
>>>>> // Display some of the general report properties.
>>>>> // See the ROM Design specification for a list of properties.
>>>>>
>>>>> System.out.print( "Report Name: " + report.getReportName() +
>>>>> "\nTitle: " + report.getProperty( "title" ) +
>>>>> "\nComments: " + report.getProperty( "comments" ) +
>>>>> "\nDescription: " + report.getProperty( "description" ) +
>>>>> "\nAuthor: " + report.getProperty( "author" ) +
>>>>> "\nCreated By: " + report.getProperty( "createdBy" ) +
>>>>> "\n" );
>>>>>
>>>>> // Display the list of report parameters with their groups.
>>>>> // Parameters defined outside a group appear inside a default, unnamed
>>>>> // group.
>>>>>
>>>>> IGetParameterDefinitionTask task =
>>>>> engine.createGetParameterDefinitionTask( report );
>>>>> Collection params = task.getParameterDefns( true );
>>>>> if ( params.isEmpty() )
>>>>> {
>>>>> System.out.print( "This report has no parameters.\n" );
>>>>> return;
>>>>> }
>>>>>
>>>>> Iterator iter = params.iterator( );
>>>>> while ( iter.hasNext( ) )
>>>>> {
>>>>> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
>>>>> if ( param instanceof IParameterGroupDefn )
>>>>> {
>>>>> IParameterGroupDefn group = (IParameterGroupDefn) param;
>>>>> System.out.println( "Parameter Group: " + group.getDisplayName( ) );
>>>>> Iterator i2 = group.getContents( ).iterator( );
>>>>> while ( iter.hasNext( ) )
>>>>> {
>>>>> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
>>>>> showParam( task, member, " " );
>>>>> }
>>>>> }
>>>>> else
>>>>> showParam( task, param, "" );
>>>>> }
>>>>> }
>>>>>
>>>>> // Show information for one parameter.
>>>>> // Release 1 supports only scalar (single-value) parameters.
>>>>>
>>>>> static void showParam( IGetParameterDefinitionTask task,
>>>>> IParameterDefnBase defn,
>>>>> String prefix )
>>>>> {
>>>>> IScalarParameterDefn param = (IScalarParameterDefn) defn;
>>>>> System.out.println( prefix + "Parameter: " + param.getName( ) );
>>>>> System.out.println( prefix + " Display Name: " +
>>>>> param.getDisplayName( ) );
>>>>> System.out.println( prefix + " Type: " + param.getDataType( ) );
>>>>> System.out.print( prefix + " Default Value: " );
>>>>>
>>>>> // The default value is an expression. Evaluate it.
>>>>>
>>>>> Object value = task.getDefaultValue( param );
>>>>> System.out.println( value == null ? "none" : value.toString( ) );
>>>>> }
>>>>>
>>>>> static void parseParams( ReportEngine engine, IReportRunnable report,
>>>>> HashMap values )
>>>>> {
>>>>>
>>>>> System.out.println("ENTREI!!! VALORES: "+values);
>>>>> if ( values.isEmpty( ) )
>>>>> return;
>>>>>
>>>>> IGetParameterDefinitionTask task =
>>>>> engine.createGetParameterDefinitionTask( report );
>>>>> Collection params = task.getParameterDefns( false );
>>>>> Iterator iter = values.keySet( ).iterator( );
>>>>> System.out.println("VOU ENTRAR NO WHILE!!!");
>>>>> int xxx = 1;
>>>>> while ( iter.hasNext( ) )
>>>>> {
>>>>> System.out.println("WHILE: "+xxx);
>>>>> String name = (String) iter.next( );
>>>>>
>>>>> IScalarParameterDefn found = null;
>>>>> Iterator i2 = params.iterator( );
>>>>> while ( i2.hasNext( ) )
>>>>> {
>>>>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>>>>> if ( param instanceof IParameterGroupDefn )
>>>>> continue;
>>>>> if ( param.getName( ).equals( name ) )
>>>>> {
>>>>> found = (IScalarParameterDefn) param;
>>>>> break;
>>>>> }
>>>>> }
>>>>> if ( found == null )
>>>>> {
>>>>> System.err.println( "Parameter " + name + " not found in the
>>>>> report." );
>>>>> continue;
>>>>> }
>>>>> String value = (String) values.get( name );
>>>>> // ReportParameterConverter cfgConverter = new
>>>>> ReportParameterConverter( "", Locale.getDefault( ) );
>>>>> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
>>>>> // values.put( name, obj );
>>>>> values.put( name, value );
>>>>> }
>>>>> }
>>>>> }
>>
>
>
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #111736 is a reply to message #111700] |
Thu, 19 January 2006 18:13 |
Eclipse User |
|
|
|
Originally posted by: carvalho.humberto.almedina.net
Jason,
I have all the files exactly as you said in your last e-mail and even so
this don't work.
Thanks
Humberto Carvalho
Jason Weathersby wrote:
> Humberto,
>
> When I ran the file you sent me I ran it from Eclipse using the JDT.
> I copied itext to the Report Engine Directory
> I added the jars from the Report Engine Directory to my build path.
> Everything worked fine.
>
> If the issue is in tomcat using the Web Viewer, I did the following to get
> BIRT to work.
> copied the Web Viewer Example directory to Webapps under tomcat.
> Renamed it Birt-viewer.
> Copied prototype.js to birt-viewer/ajax/lib
> Copied itext-1.3.jar to
> birt-viewer/plugins/org.eclipse.birt.report.engine.pdf/lib
> Copied
> axis.jar
> axis-ant.jar
> commons-discovery-0.2.jar
> jaxrpc.jar
> saaj.jar
> wsdl4j-1.5.1.jar
> to birt-viewer/WEB-INF/lib
>
> Jason
>
> "HC" <carvalho.humberto@almedina.net> wrote in message
> news:dqnsv4$p59$1@utils.eclipse.org...
>> Jason,
>>
>> I'm using:
>> Windows XP SP2
>> Tomcat 5.5.12
>> Eclipse 3.1.1
>> BIRT 2.0.0
>> EMF 2.1.*
>> GEF 3.1.1
>>
>> The Report Engine and the Viewer that I use came in the
>> birt-runtime-2.0RC1.zip from BIRT download page.
>>
>> In attachment I send you a zip file with 2 files that I think you asked
>> for.
>>
>> Thanks for your help
>>
>> Humberto
>>
>>
>> Jason Weathersby wrote:
>>> Humberto,
>>>
>>> What version of BIRT are you using?
>>> Are you getting a stack trace?
>>> Also are you using Eclipse or something like Ant to build your class?
>>> Thanks
>>>
>>> Jason
>>>
>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>> news:43CE8A3E.60607@almedina.net...
>>>> Hello,
>>>>
>>>> I've tried what you said in your last e-mail, but the result was the
>>>> same.
>>>>
>>>> In my last e-mail I didn't told you that if I try to generate a pdf file
>>>> or a html file in either cases the error occurs, and not only when I try
>>>> to generate a pdf file.
>>>>
>>>> One thing that I saw comparing your list files with my Report Engine
>>>> files, is that model.jar in your Report Engine it's bigger than mine.
>>>> The
>>>> other files i think that are identical.
>>>>
>>>> I think that this isn't the problem, but I don't know.
>>>>
>>>> Thanks
>>>>
>>>> Humberto Carvalho
>>>>
>>>> Jason Weathersby wrote:
>>>>> Humberto,
>>>>>
>>>>> I just tried your sample and it worked fine.
>>>>> I set my home to "c:/myruntime/report engine".
>>>>> Below is a directory listing of the report engine directory. Notice I
>>>>> added iText.
>>>>>
>>>>> 12/31/2005 11:50a 77,586 birt-oda.jar
>>>>> 12/31/2005 11:50a 956,273 chart-engine.jar
>>>>> 12/31/2005 11:50a 30,117 commons-cli-1.0.jar
>>>>> 12/31/2005 11:50a 37,754 commons-codec-1.3.jar
>>>>> 12/31/2005 11:50a 132,596 core.jar
>>>>> 12/31/2005 11:50a 569,702 dte.jar
>>>>> 12/31/2005 11:50a 870,507 engine.jar
>>>>> 12/31/2005 11:50a 71,513 flute.jar
>>>>> 11/29/2005 05:41p 1,145,105 itext-1.3.jar
>>>>> 12/31/2005 11:50a 699,081 js.jar
>>>>> 01/15/2006 11:33p 1,552 libs.txt
>>>>> 12/31/2005 11:50a 3,316,129 model.jar
>>>>> 12/31/2005 11:50a 80,541 oda.jar
>>>>> 12/31/2005 11:50a 69,367 odaconsumer-helper.jar
>>>>> 12/31/2005 11:50a 137,063 org.eclipse.emf.common_2.1.0.jar
>>>>> 12/31/2005 11:50a 144,460
>>>>> org.eclipse.emf.ecore.xmi_2.1.0.jar
>>>>> 12/31/2005 11:50a 639,778 org.eclipse.emf.ecore_2.1.0.jar
>>>>> 01/04/2006 04:48p <DIR> plugins
>>>>> 12/31/2005 11:50a 14,526 sac.jar
>>>>> 01/04/2006 04:48p <DIR> samples
>>>>> 12/31/2005 11:50a 43,275 scriptapi.jar
>>>>> 01/18/2006 11:00a 0 test.txt
>>>>> 12/31/2005 11:50a 161,563 Tidy.jar
>>>>>
>>>>> Jason
>>>>>
>>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>>> news:43CE2F39.9030104@almedina.net...
>>>>>> Thanks for your help,
>>>>>>
>>>>>> First I have to say that i'm using a Birt viewer and the Birt engine
>>>>>> API.
>>>>>>
>>>>>> If i use the viewer engine and then choose to print to pdf, this
>>>>>> works,
>>>>>> but when i try to generate a pdf file from a rptdesign file using the
>>>>>> engine API, the error occurs
>>>>>>
>>>>>>
>>>>>> I think that I have all the required files in the right place, I
>>>>>> followed the instructions of the following url
>>>>>> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>>>>>>
>>>>>> iText.jar is placed in
>>>>>> "plugins\org.eclipse.birt.report.engine.pdf\lib"
>>>>>>
>>>>>> In my application, the engine directory points to the viewer root
>>>>>> directory. I have also tried using the 'Report Engine' directory of
>>>>>> the
>>>>>> runtime distribution, with similar results.
>>>>>>
>>>>>> In attachment I send a java file that i think that could be the
>>>>>> problem...
>>>>>>
>>>>>> I'll wait for your answer..
>>>>>> Thanks
>>>>>>
>>>>>> Humberto Carvalho
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Jason Weathersby wrote:
>>>>>>> Can you upload the Stacktrace?
>>>>>>> Also verify that you have the other required files under the proper
>>>>>>> location, like the iText jar file.
>>>>>>>
>>>>>>> Jason Weathersby
>>>>>>> BIRT PMC
>>>>>>>
>>>>>>>
>>>>>>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
>>>>>>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> i need some help.
>>>>>>>>
>>>>>>>> I'm trying to generate a pdf file, but the following error occurs.
>>>>>>>>
>>>>>>>>
>>>>>>>> SEVERE: Report engine can not create pdf emitter.
>>>>>>>> Report C:/Program Files/Apache/Tomcat
>>>>>>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>>>>>>> run failed.
>>>>>>>> org.eclipse.birt.report.engine.api.EngineException: Report engine
>>>>>>>> fails to
>>>>>>>> creat
>>>>>>>> e extension to handle this request.
>>>>>>>>
>>>>>>>> The software that i'm using are:
>>>>>>>> Windows XP SP2
>>>>>>>> Eclipse 3.1.1
>>>>>>>> BIRT 2.0.0
>>>>>>>> EMF 2.1.*
>>>>>>>> GEF 3.1.1
>>>>>>>>
>>>>>>>> I hope that someone can help me.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>> ------------------------------------------------------------ --------------------
>>>>>
>>>>>
>>>>>> package pt.almedina.reports;
>>>>>>
>>>>>> /*
>>>>>> * Example command-line utility to generate BIRT reports. Shows the
>>>>>> basics
>>>>>> * of integrating the BIRT report engine into a simple Java
>>>>>> application.
>>>>>> */
>>>>>>
>>>>>>
>>>>>> import java.util.Collection;
>>>>>> import java.util.HashMap;
>>>>>> import java.util.Iterator;
>>>>>> import java.util.Map;
>>>>>>
>>>>>>
>>>>>>
>>>>>> import org.eclipse.birt.report.engine.api.EngineConfig;
>>>>>> import org.eclipse.birt.report.engine.api.EngineConstants;
>>>>>> import org.eclipse.birt.report.engine.api.EngineException;
>>>>>> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>>>>>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
>>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>>>>>> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>>>>>> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
>>>>>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>>>>>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>>>>>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>>>>>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>>>>>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>>>>>> import org.eclipse.birt.report.engine.api.ReportEngine;
>>>>>> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>>>>>>
>>>>>>
>>>>>> /**
>>>>>> * Runs a BIRT report and writes the output to a directory.
>>>>>> *
>>>>>> * RunReport report-name -[h|p] [-i] param=value
>>>>>> *
>>>>>> * -h HTML (default)
>>>>>> * -p PDF
>>>>>> * -i Display report info.
>>>>>> * param=value Set parameter "param" to the value "value".
>>>>>> */
>>>>>>
>>>>>> public class Conversor
>>>>>> {
>>>>>>
>>>>>> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
>>>>>> 5.5/webapps/Viewer";//c:/reportengine";
>>>>>> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
>>>>>> 5.5/webapps/BI/Documentos";
>>>>>>
>>>>>> // Command-line main to parse arguments described above.
>>>>>>
>>>>>> public static void main(String[] args) throws EngineException
>>>>>> {
>>>>>>
>>>>>> int i = 0;
>>>>>> if ( i >= args.length )
>>>>>> {
>>>>>> System.out.println( "Nao foi especificado qualquer relatorio" );
>>>>>> return;
>>>>>> }
>>>>>> String reportName = args[i++];
>>>>>> String format = null;
>>>>>> boolean showInfo = false;
>>>>>>
>>>>>> // Stoare parameter values into a hash map to later pass to the
>>>>>> // BIRT report engine.
>>>>>>
>>>>>> HashMap params = new HashMap( );
>>>>>> for ( ; i < args.length; i++ )
>>>>>> {
>>>>>> if ( args[i].charAt(0) == '-' )
>>>>>> {
>>>>>> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
>>>>>> if ( flag == 'p' )
>>>>>> {
>>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>>>>>> }
>>>>>> else if ( flag == 'h' )
>>>>>> {
>>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>>>>>> }
>>>>>> else if ( flag == 'i' )
>>>>>> {
>>>>>> showInfo = true;
>>>>>> }
>>>>>> else
>>>>>> {
>>>>>> usage( );
>>>>>> return;
>>>>>> }
>>>>>> }
>>>>>> else
>>>>>> {
>>>>>>
>>>>>> // Get a parameter value. Note, this example code only works
>>>>>> // for string parameters. If you have date or number parameters,
>>>>>> // your application should parse them, then put the corresponding
>>>>>> // objects into the hash map.
>>>>>>
>>>>>> String arg = args[i];
>>>>>> int posn = arg.indexOf( '=' );
>>>>>> if ( posn == -1 )
>>>>>> {
>>>>>> usage( );
>>>>>> return;
>>>>>> }
>>>>>> String param = arg.substring( 0, posn );
>>>>>> String value = arg.substring( posn + 1 );
>>>>>> Object put = params.put( param, value );
>>>>>>
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> run( reportName, params, format, showInfo );
>>>>>>
>>>>>> }
>>>>>>
>>>>>> public static void usage( )
>>>>>> {
>>>>>> System.out.println( "Sintaxe:\n java RunReport rptName [-h|p]\n
>>>>>> param=value ..." );
>>>>>> }
>>>>>>
>>>>>> // Example function to run a report given the report name, parameters
>>>>>> and
>>>>>> // output type. The output is put into a file in the same directory as
>>>>>> the
>>>>>> // report itself.
>>>>>>
>>>>>> public static void run( String name, HashMap params,
>>>>>> String format, boolean showInfo ) throws EngineException
>>>>>> {
>>>>>> // The EngineConfig is used to set up engine-wide configuration
>>>>>> // information.
>>>>>>
>>>>>> EngineConfig config = new EngineConfig( );
>>>>>>
>>>>>> // The Engine home is the location of the BIRT engine runtime.
>>>>>> // M3 Note: Use the report engine installed as part of the BIRT web
>>>>>> app
>>>>>> // used to preview reports. Alter this path to the location of your
>>>>>> // Eclipse installation.
>>>>>>
>>>>>> config.setEngineHome(REPORTENGINE_URL);
>>>>>>
>>>>>> // HTML reports can have embedded images or charts. Set up the
>>>>>> configuration
>>>>>> // required to write these into a directory in the output directory.
>>>>>> // The HTMLCompleteImageHandler is one provided by BIRT for this
>>>>>> purpose.
>>>>>> // Your application can create a customized version to provide
>>>>>> alternative
>>>>>> // ways to handle images.
>>>>>>
>>>>>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>>>>>>
>>>>>>
>>>>>> HTMLCompleteImageHandler imageHandler = new
>>>>>> HTMLCompleteImageHandler( );
>>>>>> hc.setImageHandler( imageHandler );
>>>>>> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML,
>>>>>> hc );
>>>>>>
>>>>>> // Create the report engine itself. This engine can be used to
>>>>>> run
>>>>>> // multiple reports.
>>>>>>
>>>>>> ReportEngine engine = new ReportEngine( config );
>>>>>>
>>>>>> // Open the report design.
>>>>>>
>>>>>> IReportRunnable report = null;
>>>>>>
>>>>>>
>>>>>> try {
>>>>>> report = engine.openReportDesign( name );
>>>>>> } catch ( EngineException e) {
>>>>>>
>>>>>> System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
>>>>>> EXCEPTION: "+e);
>>>>>>
>>>>>> }
>>>>>>
>>>>>>
>>>>>> if ( showInfo )
>>>>>> {
>>>>>> showReportInfo( engine, report );
>>>>>> }
>>>>>>
>>>>>> // Create a task to run the report and convert the output to HTML
>>>>>> // or PDF.
>>>>>>
>>>>>> if ( format != null )
>>>>>> {
>>>>>>
>>>>>> parseParams( engine, report, params );
>>>>>>
>>>>>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>>>>>> /*
>>>>>> //HTMLRenderContext renderContext = new HTMLRenderContext();
>>>>>> //renderContext.setImageDirectory(IMAGE_URL);
>>>>>>
>>>>>> HTMLRenderContext renderContext = new HTMLRenderContext( );
>>>>>> renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
>>>>>> HashMap appContext = new HashMap( );
>>>>>> appContext.put("PDF_RENDER_CONTEXT",
>>>>>> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
>>>>>> task.setAppContext( appContext );
>>>>>>
>>>>>> //task.setContext((Map) renderContext);
>>>>>> */
>>>>>> HTMLRenderOption options = new HTMLRenderOption( );
>>>>>> options.setOutputFormat( format );
>>>>>> String output = name.replaceFirst( ".rptdesign", "." + format );
>>>>>> options.setOutputFileName( output );
>>>>>> task.setRenderOption( options );
>>>>>> String str = params.toString();
>>>>>>
>>>>>>
>>>>>> //task.setParameterValues( params );
>>>>>>
>>>>>> // Run the report.
>>>>>>
>>>>>> try
>>>>>> {
>>>>>> task.run( );
>>>>>> }
>>>>>> catch (EngineException e)
>>>>>> {
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> engine.destroy( );
>>>>>> }
>>>>>>
>>>>>> // Display properties of the report and the list of report parameters.
>>>>>>
>>>>>> static void showReportInfo( ReportEngine engine, IReportRunnable
>>>>>> report )
>>>>>> {
>>>>>> // Display some of the general report properties.
>>>>>> // See the ROM Design specification for a list of properties.
>>>>>>
>>>>>> System.out.print( "Report Name: " + report.getReportName() +
>>>>>> "\nTitle: " + report.getProperty( "title" ) +
>>>>>> "\nComments: " + report.getProperty( "comments" ) +
>>>>>> "\nDescription: " + report.getProperty( "description" ) +
>>>>>> "\nAuthor: " + report.getProperty( "author" ) +
>>>>>> "\nCreated By: " + report.getProperty( "createdBy" ) +
>>>>>> "\n" );
>>>>>>
>>>>>> // Display the list of report parameters with their groups.
>>>>>> // Parameters defined outside a group appear inside a default, unnamed
>>>>>> // group.
>>>>>>
>>>>>> IGetParameterDefinitionTask task =
>>>>>> engine.createGetParameterDefinitionTask( report );
>>>>>> Collection params = task.getParameterDefns( true );
>>>>>> if ( params.isEmpty() )
>>>>>> {
>>>>>> System.out.print( "This report has no parameters.\n" );
>>>>>> return;
>>>>>> }
>>>>>>
>>>>>> Iterator iter = params.iterator( );
>>>>>> while ( iter.hasNext( ) )
>>>>>> {
>>>>>> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
>>>>>> if ( param instanceof IParameterGroupDefn )
>>>>>> {
>>>>>> IParameterGroupDefn group = (IParameterGroupDefn) param;
>>>>>> System.out.println( "Parameter Group: " + group.getDisplayName( ) );
>>>>>> Iterator i2 = group.getContents( ).iterator( );
>>>>>> while ( iter.hasNext( ) )
>>>>>> {
>>>>>> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
>>>>>> showParam( task, member, " " );
>>>>>> }
>>>>>> }
>>>>>> else
>>>>>> showParam( task, param, "" );
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> // Show information for one parameter.
>>>>>> // Release 1 supports only scalar (single-value) parameters.
>>>>>>
>>>>>> static void showParam( IGetParameterDefinitionTask task,
>>>>>> IParameterDefnBase defn,
>>>>>> String prefix )
>>>>>> {
>>>>>> IScalarParameterDefn param = (IScalarParameterDefn) defn;
>>>>>> System.out.println( prefix + "Parameter: " + param.getName( ) );
>>>>>> System.out.println( prefix + " Display Name: " +
>>>>>> param.getDisplayName( ) );
>>>>>> System.out.println( prefix + " Type: " + param.getDataType( ) );
>>>>>> System.out.print( prefix + " Default Value: " );
>>>>>>
>>>>>> // The default value is an expression. Evaluate it.
>>>>>>
>>>>>> Object value = task.getDefaultValue( param );
>>>>>> System.out.println( value == null ? "none" : value.toString( ) );
>>>>>> }
>>>>>>
>>>>>> static void parseParams( ReportEngine engine, IReportRunnable report,
>>>>>> HashMap values )
>>>>>> {
>>>>>>
>>>>>> System.out.println("ENTREI!!! VALORES: "+values);
>>>>>> if ( values.isEmpty( ) )
>>>>>> return;
>>>>>>
>>>>>> IGetParameterDefinitionTask task =
>>>>>> engine.createGetParameterDefinitionTask( report );
>>>>>> Collection params = task.getParameterDefns( false );
>>>>>> Iterator iter = values.keySet( ).iterator( );
>>>>>> System.out.println("VOU ENTRAR NO WHILE!!!");
>>>>>> int xxx = 1;
>>>>>> while ( iter.hasNext( ) )
>>>>>> {
>>>>>> System.out.println("WHILE: "+xxx);
>>>>>> String name = (String) iter.next( );
>>>>>>
>>>>>> IScalarParameterDefn found = null;
>>>>>> Iterator i2 = params.iterator( );
>>>>>> while ( i2.hasNext( ) )
>>>>>> {
>>>>>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>>>>>> if ( param instanceof IParameterGroupDefn )
>>>>>> continue;
>>>>>> if ( param.getName( ).equals( name ) )
>>>>>> {
>>>>>> found = (IScalarParameterDefn) param;
>>>>>> break;
>>>>>> }
>>>>>> }
>>>>>> if ( found == null )
>>>>>> {
>>>>>> System.err.println( "Parameter " + name + " not found in the
>>>>>> report." );
>>>>>> continue;
>>>>>> }
>>>>>> String value = (String) values.get( name );
>>>>>> // ReportParameterConverter cfgConverter = new
>>>>>> ReportParameterConverter( "", Locale.getDefault( ) );
>>>>>> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
>>>>>> // values.put( name, obj );
>>>>>> values.put( name, value );
>>>>>> }
>>>>>> }
>>>>>> }
>>
>
>
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #111806 is a reply to message #111736] |
Thu, 19 January 2006 20:26 |
|
Humberto,
Attached is an ant project with the code you sent me slightly modified.
Look at the readme and let me know if it runs the runreport.rptdesign.
Thanks
Jason
"HC" <carvalho.humberto@almedina.net> wrote in message
news:dqoksg$k74$1@utils.eclipse.org...
> Jason,
>
> I have all the files exactly as you said in your last e-mail and even so
> this don't work.
>
> Thanks
>
> Humberto Carvalho
>
>
> Jason Weathersby wrote:
>> Humberto,
>>
>> When I ran the file you sent me I ran it from Eclipse using the JDT.
>> I copied itext to the Report Engine Directory
>> I added the jars from the Report Engine Directory to my build path.
>> Everything worked fine.
>>
>> If the issue is in tomcat using the Web Viewer, I did the following to
>> get
>> BIRT to work.
>> copied the Web Viewer Example directory to Webapps under tomcat.
>> Renamed it Birt-viewer.
>> Copied prototype.js to birt-viewer/ajax/lib
>> Copied itext-1.3.jar to
>> birt-viewer/plugins/org.eclipse.birt.report.engine.pdf/lib
>> Copied
>> axis.jar
>> axis-ant.jar
>> commons-discovery-0.2.jar
>> jaxrpc.jar
>> saaj.jar
>> wsdl4j-1.5.1.jar
>> to birt-viewer/WEB-INF/lib
>>
>> Jason
>>
>> "HC" <carvalho.humberto@almedina.net> wrote in message
>> news:dqnsv4$p59$1@utils.eclipse.org...
>>> Jason,
>>>
>>> I'm using:
>>> Windows XP SP2
>>> Tomcat 5.5.12
>>> Eclipse 3.1.1
>>> BIRT 2.0.0
>>> EMF 2.1.*
>>> GEF 3.1.1
>>>
>>> The Report Engine and the Viewer that I use came in the
>>> birt-runtime-2.0RC1.zip from BIRT download page.
>>>
>>> In attachment I send you a zip file with 2 files that I think you asked
>>> for.
>>>
>>> Thanks for your help
>>>
>>> Humberto
>>>
>>>
>>> Jason Weathersby wrote:
>>>> Humberto,
>>>>
>>>> What version of BIRT are you using?
>>>> Are you getting a stack trace?
>>>> Also are you using Eclipse or something like Ant to build your class?
>>>> Thanks
>>>>
>>>> Jason
>>>>
>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>> news:43CE8A3E.60607@almedina.net...
>>>>> Hello,
>>>>>
>>>>> I've tried what you said in your last e-mail, but the result was the
>>>>> same.
>>>>>
>>>>> In my last e-mail I didn't told you that if I try to generate a pdf
>>>>> file
>>>>> or a html file in either cases the error occurs, and not only when I
>>>>> try
>>>>> to generate a pdf file.
>>>>>
>>>>> One thing that I saw comparing your list files with my Report Engine
>>>>> files, is that model.jar in your Report Engine it's bigger than mine.
>>>>> The
>>>>> other files i think that are identical.
>>>>>
>>>>> I think that this isn't the problem, but I don't know.
>>>>>
>>>>> Thanks
>>>>>
>>>>> Humberto Carvalho
>>>>>
>>>>> Jason Weathersby wrote:
>>>>>> Humberto,
>>>>>>
>>>>>> I just tried your sample and it worked fine.
>>>>>> I set my home to "c:/myruntime/report engine".
>>>>>> Below is a directory listing of the report engine directory. Notice
>>>>>> I
>>>>>> added iText.
>>>>>>
>>>>>> 12/31/2005 11:50a 77,586 birt-oda.jar
>>>>>> 12/31/2005 11:50a 956,273 chart-engine.jar
>>>>>> 12/31/2005 11:50a 30,117 commons-cli-1.0.jar
>>>>>> 12/31/2005 11:50a 37,754 commons-codec-1.3.jar
>>>>>> 12/31/2005 11:50a 132,596 core.jar
>>>>>> 12/31/2005 11:50a 569,702 dte.jar
>>>>>> 12/31/2005 11:50a 870,507 engine.jar
>>>>>> 12/31/2005 11:50a 71,513 flute.jar
>>>>>> 11/29/2005 05:41p 1,145,105 itext-1.3.jar
>>>>>> 12/31/2005 11:50a 699,081 js.jar
>>>>>> 01/15/2006 11:33p 1,552 libs.txt
>>>>>> 12/31/2005 11:50a 3,316,129 model.jar
>>>>>> 12/31/2005 11:50a 80,541 oda.jar
>>>>>> 12/31/2005 11:50a 69,367 odaconsumer-helper.jar
>>>>>> 12/31/2005 11:50a 137,063
>>>>>> org.eclipse.emf.common_2.1.0.jar
>>>>>> 12/31/2005 11:50a 144,460
>>>>>> org.eclipse.emf.ecore.xmi_2.1.0.jar
>>>>>> 12/31/2005 11:50a 639,778
>>>>>> org.eclipse.emf.ecore_2.1.0.jar
>>>>>> 01/04/2006 04:48p <DIR> plugins
>>>>>> 12/31/2005 11:50a 14,526 sac.jar
>>>>>> 01/04/2006 04:48p <DIR> samples
>>>>>> 12/31/2005 11:50a 43,275 scriptapi.jar
>>>>>> 01/18/2006 11:00a 0 test.txt
>>>>>> 12/31/2005 11:50a 161,563 Tidy.jar
>>>>>>
>>>>>> Jason
>>>>>>
>>>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>>>> news:43CE2F39.9030104@almedina.net...
>>>>>>> Thanks for your help,
>>>>>>>
>>>>>>> First I have to say that i'm using a Birt viewer and the Birt engine
>>>>>>> API.
>>>>>>>
>>>>>>> If i use the viewer engine and then choose to print to pdf, this
>>>>>>> works,
>>>>>>> but when i try to generate a pdf file from a rptdesign file using
>>>>>>> the
>>>>>>> engine API, the error occurs
>>>>>>>
>>>>>>>
>>>>>>> I think that I have all the required files in the right place, I
>>>>>>> followed the instructions of the following url
>>>>>>> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>>>>>>>
>>>>>>> iText.jar is placed in
>>>>>>> "plugins\org.eclipse.birt.report.engine.pdf\lib"
>>>>>>>
>>>>>>> In my application, the engine directory points to the viewer root
>>>>>>> directory. I have also tried using the 'Report Engine' directory of
>>>>>>> the
>>>>>>> runtime distribution, with similar results.
>>>>>>>
>>>>>>> In attachment I send a java file that i think that could be the
>>>>>>> problem...
>>>>>>>
>>>>>>> I'll wait for your answer..
>>>>>>> Thanks
>>>>>>>
>>>>>>> Humberto Carvalho
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Jason Weathersby wrote:
>>>>>>>> Can you upload the Stacktrace?
>>>>>>>> Also verify that you have the other required files under the proper
>>>>>>>> location, like the iText jar file.
>>>>>>>>
>>>>>>>> Jason Weathersby
>>>>>>>> BIRT PMC
>>>>>>>>
>>>>>>>>
>>>>>>>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
>>>>>>>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> i need some help.
>>>>>>>>>
>>>>>>>>> I'm trying to generate a pdf file, but the following error occurs.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> SEVERE: Report engine can not create pdf emitter.
>>>>>>>>> Report C:/Program Files/Apache/Tomcat
>>>>>>>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>>>>>>>> run failed.
>>>>>>>>> org.eclipse.birt.report.engine.api.EngineException: Report engine
>>>>>>>>> fails to
>>>>>>>>> creat
>>>>>>>>> e extension to handle this request.
>>>>>>>>>
>>>>>>>>> The software that i'm using are:
>>>>>>>>> Windows XP SP2
>>>>>>>>> Eclipse 3.1.1
>>>>>>>>> BIRT 2.0.0
>>>>>>>>> EMF 2.1.*
>>>>>>>>> GEF 3.1.1
>>>>>>>>>
>>>>>>>>> I hope that someone can help me.
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>>
>>>>>> ------------------------------------------------------------ --------------------
>>>>>>
>>>>>>
>>>>>>> package pt.almedina.reports;
>>>>>>>
>>>>>>> /*
>>>>>>> * Example command-line utility to generate BIRT reports. Shows the
>>>>>>> basics
>>>>>>> * of integrating the BIRT report engine into a simple Java
>>>>>>> application.
>>>>>>> */
>>>>>>>
>>>>>>>
>>>>>>> import java.util.Collection;
>>>>>>> import java.util.HashMap;
>>>>>>> import java.util.Iterator;
>>>>>>> import java.util.Map;
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> import org.eclipse.birt.report.engine.api.EngineConfig;
>>>>>>> import org.eclipse.birt.report.engine.api.EngineConstants;
>>>>>>> import org.eclipse.birt.report.engine.api.EngineException;
>>>>>>> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>>>>>>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>>>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
>>>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>>>>>>> import
>>>>>>> org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>>>>>>> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
>>>>>>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>>>>>>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>>>>>>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>>>>>>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>>>>>>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>>>>>>> import org.eclipse.birt.report.engine.api.ReportEngine;
>>>>>>> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>>>>>>>
>>>>>>>
>>>>>>> /**
>>>>>>> * Runs a BIRT report and writes the output to a directory.
>>>>>>> *
>>>>>>> * RunReport report-name -[h|p] [-i] param=value
>>>>>>> *
>>>>>>> * -h HTML (default)
>>>>>>> * -p PDF
>>>>>>> * -i Display report info.
>>>>>>> * param=value Set parameter "param" to the value "value".
>>>>>>> */
>>>>>>>
>>>>>>> public class Conversor
>>>>>>> {
>>>>>>>
>>>>>>> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
>>>>>>> 5.5/webapps/Viewer";//c:/reportengine";
>>>>>>> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
>>>>>>> 5.5/webapps/BI/Documentos";
>>>>>>>
>>>>>>> // Command-line main to parse arguments described above.
>>>>>>>
>>>>>>> public static void main(String[] args) throws EngineException
>>>>>>> {
>>>>>>>
>>>>>>> int i = 0;
>>>>>>> if ( i >= args.length )
>>>>>>> {
>>>>>>> System.out.println( "Nao foi especificado qualquer relatorio" );
>>>>>>> return;
>>>>>>> }
>>>>>>> String reportName = args[i++];
>>>>>>> String format = null;
>>>>>>> boolean showInfo = false;
>>>>>>>
>>>>>>> // Stoare parameter values into a hash map to later pass to the
>>>>>>> // BIRT report engine.
>>>>>>>
>>>>>>> HashMap params = new HashMap( );
>>>>>>> for ( ; i < args.length; i++ )
>>>>>>> {
>>>>>>> if ( args[i].charAt(0) == '-' )
>>>>>>> {
>>>>>>> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
>>>>>>> if ( flag == 'p' )
>>>>>>> {
>>>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>>>>>>> }
>>>>>>> else if ( flag == 'h' )
>>>>>>> {
>>>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>>>>>>> }
>>>>>>> else if ( flag == 'i' )
>>>>>>> {
>>>>>>> showInfo = true;
>>>>>>> }
>>>>>>> else
>>>>>>> {
>>>>>>> usage( );
>>>>>>> return;
>>>>>>> }
>>>>>>> }
>>>>>>> else
>>>>>>> {
>>>>>>>
>>>>>>> // Get a parameter value. Note, this example code only works
>>>>>>> // for string parameters. If you have date or number parameters,
>>>>>>> // your application should parse them, then put the corresponding
>>>>>>> // objects into the hash map.
>>>>>>>
>>>>>>> String arg = args[i];
>>>>>>> int posn = arg.indexOf( '=' );
>>>>>>> if ( posn == -1 )
>>>>>>> {
>>>>>>> usage( );
>>>>>>> return;
>>>>>>> }
>>>>>>> String param = arg.substring( 0, posn );
>>>>>>> String value = arg.substring( posn + 1 );
>>>>>>> Object put = params.put( param, value );
>>>>>>>
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> run( reportName, params, format, showInfo );
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> public static void usage( )
>>>>>>> {
>>>>>>> System.out.println( "Sintaxe:\n java RunReport rptName
>>>>>>> [-h|p]\n
>>>>>>> param=value ..." );
>>>>>>> }
>>>>>>>
>>>>>>> // Example function to run a report given the report name,
>>>>>>> parameters
>>>>>>> and
>>>>>>> // output type. The output is put into a file in the same directory
>>>>>>> as
>>>>>>> the
>>>>>>> // report itself.
>>>>>>>
>>>>>>> public static void run( String name, HashMap params,
>>>>>>> String format, boolean showInfo ) throws EngineException
>>>>>>> {
>>>>>>> // The EngineConfig is used to set up engine-wide configuration
>>>>>>> // information.
>>>>>>>
>>>>>>> EngineConfig config = new EngineConfig( );
>>>>>>>
>>>>>>> // The Engine home is the location of the BIRT engine runtime.
>>>>>>> // M3 Note: Use the report engine installed as part of the BIRT web
>>>>>>> app
>>>>>>> // used to preview reports. Alter this path to the location of your
>>>>>>> // Eclipse installation.
>>>>>>>
>>>>>>> config.setEngineHome(REPORTENGINE_URL);
>>>>>>>
>>>>>>> // HTML reports can have embedded images or charts. Set up the
>>>>>>> configuration
>>>>>>> // required to write these into a directory in the output directory.
>>>>>>> // The HTMLCompleteImageHandler is one provided by BIRT for this
>>>>>>> purpose.
>>>>>>> // Your application can create a customized version to provide
>>>>>>> alternative
>>>>>>> // ways to handle images.
>>>>>>>
>>>>>>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>>>>>>>
>>>>>>>
>>>>>>> HTMLCompleteImageHandler imageHandler = new
>>>>>>> HTMLCompleteImageHandler( );
>>>>>>> hc.setImageHandler( imageHandler );
>>>>>>> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML,
>>>>>>> hc );
>>>>>>>
>>>>>>> // Create the report engine itself. This engine can be used
>>>>>>> to
>>>>>>> run
>>>>>>> // multiple reports.
>>>>>>>
>>>>>>> ReportEngine engine = new ReportEngine( config );
>>>>>>>
>>>>>>> // Open the report design.
>>>>>>>
>>>>>>> IReportRunnable report = null;
>>>>>>>
>>>>>>>
>>>>>>> try {
>>>>>>> report = engine.openReportDesign( name );
>>>>>>> } catch ( EngineException e) {
>>>>>>>
>>>>>>> System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
>>>>>>> EXCEPTION: "+e);
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> if ( showInfo )
>>>>>>> {
>>>>>>> showReportInfo( engine, report );
>>>>>>> }
>>>>>>>
>>>>>>> // Create a task to run the report and convert the output to HTML
>>>>>>> // or PDF.
>>>>>>>
>>>>>>> if ( format != null )
>>>>>>> {
>>>>>>>
>>>>>>> parseParams( engine, report, params );
>>>>>>>
>>>>>>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>>>>>>> /*
>>>>>>> //HTMLRenderContext renderContext = new HTMLRenderContext();
>>>>>>> //renderContext.setImageDirectory(IMAGE_URL);
>>>>>>>
>>>>>>> HTMLRenderContext renderContext = new HTMLRenderContext( );
>>>>>>> renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
>>>>>>> HashMap appContext = new HashMap( );
>>>>>>> appContext.put("PDF_RENDER_CONTEXT",
>>>>>>> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
>>>>>>> task.setAppContext( appContext );
>>>>>>>
>>>>>>> //task.setContext((Map) renderContext);
>>>>>>> */
>>>>>>> HTMLRenderOption options = new HTMLRenderOption( );
>>>>>>> options.setOutputFormat( format );
>>>>>>> String output = name.replaceFirst( ".rptdesign", "." + format );
>>>>>>> options.setOutputFileName( output );
>>>>>>> task.setRenderOption( options );
>>>>>>> String str = params.toString();
>>>>>>>
>>>>>>>
>>>>>>> //task.setParameterValues( params );
>>>>>>>
>>>>>>> // Run the report.
>>>>>>>
>>>>>>> try
>>>>>>> {
>>>>>>> task.run( );
>>>>>>> }
>>>>>>> catch (EngineException e)
>>>>>>> {
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> engine.destroy( );
>>>>>>> }
>>>>>>>
>>>>>>> // Display properties of the report and the list of report
>>>>>>> parameters.
>>>>>>>
>>>>>>> static void showReportInfo( ReportEngine engine, IReportRunnable
>>>>>>> report )
>>>>>>> {
>>>>>>> // Display some of the general report properties.
>>>>>>> // See the ROM Design specification for a list of properties.
>>>>>>>
>>>>>>> System.out.print( "Report Name: " + report.getReportName() +
>>>>>>> "\nTitle: " + report.getProperty( "title" ) +
>>>>>>> "\nComments: " + report.getProperty( "comments" ) +
>>>>>>> "\nDescription: " + report.getProperty( "description" ) +
>>>>>>> "\nAuthor: " + report.getProperty( "author" ) +
>>>>>>> "\nCreated By: " + report.getProperty( "createdBy" ) +
>>>>>>> "\n" );
>>>>>>>
>>>>>>> // Display the list of report parameters with their groups.
>>>>>>> // Parameters defined outside a group appear inside a default,
>>>>>>> unnamed
>>>>>>> // group.
>>>>>>>
>>>>>>> IGetParameterDefinitionTask task =
>>>>>>> engine.createGetParameterDefinitionTask( report );
>>>>>>> Collection params = task.getParameterDefns( true );
>>>>>>> if ( params.isEmpty() )
>>>>>>> {
>>>>>>> System.out.print( "This report has no parameters.\n" );
>>>>>>> return;
>>>>>>> }
>>>>>>>
>>>>>>> Iterator iter = params.iterator( );
>>>>>>> while ( iter.hasNext( ) )
>>>>>>> {
>>>>>>> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
>>>>>>> if ( param instanceof IParameterGroupDefn )
>>>>>>> {
>>>>>>> IParameterGroupDefn group = (IParameterGroupDefn) param;
>>>>>>> System.out.println( "Parameter Group: " + group.getDisplayName( ) );
>>>>>>> Iterator i2 = group.getContents( ).iterator( );
>>>>>>> while ( iter.hasNext( ) )
>>>>>>> {
>>>>>>> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
>>>>>>> showParam( task, member, " " );
>>>>>>> }
>>>>>>> }
>>>>>>> else
>>>>>>> showParam( task, param, "" );
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> // Show information for one parameter.
>>>>>>> // Release 1 supports only scalar (single-value) parameters.
>>>>>>>
>>>>>>> static void showParam( IGetParameterDefinitionTask task,
>>>>>>> IParameterDefnBase defn,
>>>>>>> String prefix )
>>>>>>> {
>>>>>>> IScalarParameterDefn param = (IScalarParameterDefn) defn;
>>>>>>> System.out.println( prefix + "Parameter: " + param.getName( ) );
>>>>>>> System.out.println( prefix + " Display Name: " +
>>>>>>> param.getDisplayName( ) );
>>>>>>> System.out.println( prefix + " Type: " + param.getDataType( ) );
>>>>>>> System.out.print( prefix + " Default Value: " );
>>>>>>>
>>>>>>> // The default value is an expression. Evaluate it.
>>>>>>>
>>>>>>> Object value = task.getDefaultValue( param );
>>>>>>> System.out.println( value == null ? "none" : value.toString( ) );
>>>>>>> }
>>>>>>>
>>>>>>> static void parseParams( ReportEngine engine, IReportRunnable
>>>>>>> report,
>>>>>>> HashMap values )
>>>>>>> {
>>>>>>>
>>>>>>> System.out.println("ENTREI!!! VALORES: "+values);
>>>>>>> if ( values.isEmpty( ) )
>>>>>>> return;
>>>>>>>
>>>>>>> IGetParameterDefinitionTask task =
>>>>>>> engine.createGetParameterDefinitionTask( report );
>>>>>>> Collection params = task.getParameterDefns( false );
>>>>>>> Iterator iter = values.keySet( ).iterator( );
>>>>>>> System.out.println("VOU ENTRAR NO WHILE!!!");
>>>>>>> int xxx = 1;
>>>>>>> while ( iter.hasNext( ) )
>>>>>>> {
>>>>>>> System.out.println("WHILE: "+xxx);
>>>>>>> String name = (String) iter.next( );
>>>>>>>
>>>>>>> IScalarParameterDefn found = null;
>>>>>>> Iterator i2 = params.iterator( );
>>>>>>> while ( i2.hasNext( ) )
>>>>>>> {
>>>>>>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>>>>>>> if ( param instanceof IParameterGroupDefn )
>>>>>>> continue;
>>>>>>> if ( param.getName( ).equals( name ) )
>>>>>>> {
>>>>>>> found = (IScalarParameterDefn) param;
>>>>>>> break;
>>>>>>> }
>>>>>>> }
>>>>>>> if ( found == null )
>>>>>>> {
>>>>>>> System.err.println( "Parameter " + name + " not found in the
>>>>>>> report." );
>>>>>>> continue;
>>>>>>> }
>>>>>>> String value = (String) values.get( name );
>>>>>>> // ReportParameterConverter cfgConverter = new
>>>>>>> ReportParameterConverter( "", Locale.getDefault( ) );
>>>>>>> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
>>>>>>> // values.put( name, obj );
>>>>>>> values.put( name, value );
>>>>>>> }
>>>>>>> }
>>>>>>> }
>>>
>>
>>
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #112093 is a reply to message #111806] |
Fri, 20 January 2006 11:16 |
Eclipse User |
|
|
|
Originally posted by: carvalho.humberto.almedina.net
Jason,
I followed the readme and your example runs fine.
When I tried the example in my project, the error appears again.
I then verified the libs in the WEB-INF directory of my application and
found out that I had some jars left from other version of the report
engine. I removed them and everything works.
I get the EXTENSION_POINT_NOT_FOUND error (which I believe is a known
bug) but the report runs and creates the files.
I want to thank all the patience and the help you gave me.
Thanks
Humberto Carvalho
Jason Weathersby wrote:
> Humberto,
>
> Attached is an ant project with the code you sent me slightly modified.
> Look at the readme and let me know if it runs the runreport.rptdesign.
>
> Thanks
>
> Jason
>
> "HC" <carvalho.humberto@almedina.net> wrote in message
> news:dqoksg$k74$1@utils.eclipse.org...
>> Jason,
>>
>> I have all the files exactly as you said in your last e-mail and even so
>> this don't work.
>>
>> Thanks
>>
>> Humberto Carvalho
>>
>>
>> Jason Weathersby wrote:
>>> Humberto,
>>>
>>> When I ran the file you sent me I ran it from Eclipse using the JDT.
>>> I copied itext to the Report Engine Directory
>>> I added the jars from the Report Engine Directory to my build path.
>>> Everything worked fine.
>>>
>>> If the issue is in tomcat using the Web Viewer, I did the following to
>>> get
>>> BIRT to work.
>>> copied the Web Viewer Example directory to Webapps under tomcat.
>>> Renamed it Birt-viewer.
>>> Copied prototype.js to birt-viewer/ajax/lib
>>> Copied itext-1.3.jar to
>>> birt-viewer/plugins/org.eclipse.birt.report.engine.pdf/lib
>>> Copied
>>> axis.jar
>>> axis-ant.jar
>>> commons-discovery-0.2.jar
>>> jaxrpc.jar
>>> saaj.jar
>>> wsdl4j-1.5.1.jar
>>> to birt-viewer/WEB-INF/lib
>>>
>>> Jason
>>>
>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>> news:dqnsv4$p59$1@utils.eclipse.org...
>>>> Jason,
>>>>
>>>> I'm using:
>>>> Windows XP SP2
>>>> Tomcat 5.5.12
>>>> Eclipse 3.1.1
>>>> BIRT 2.0.0
>>>> EMF 2.1.*
>>>> GEF 3.1.1
>>>>
>>>> The Report Engine and the Viewer that I use came in the
>>>> birt-runtime-2.0RC1.zip from BIRT download page.
>>>>
>>>> In attachment I send you a zip file with 2 files that I think you asked
>>>> for.
>>>>
>>>> Thanks for your help
>>>>
>>>> Humberto
>>>>
>>>>
>>>> Jason Weathersby wrote:
>>>>> Humberto,
>>>>>
>>>>> What version of BIRT are you using?
>>>>> Are you getting a stack trace?
>>>>> Also are you using Eclipse or something like Ant to build your class?
>>>>> Thanks
>>>>>
>>>>> Jason
>>>>>
>>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>>> news:43CE8A3E.60607@almedina.net...
>>>>>> Hello,
>>>>>>
>>>>>> I've tried what you said in your last e-mail, but the result was the
>>>>>> same.
>>>>>>
>>>>>> In my last e-mail I didn't told you that if I try to generate a pdf
>>>>>> file
>>>>>> or a html file in either cases the error occurs, and not only when I
>>>>>> try
>>>>>> to generate a pdf file.
>>>>>>
>>>>>> One thing that I saw comparing your list files with my Report Engine
>>>>>> files, is that model.jar in your Report Engine it's bigger than mine.
>>>>>> The
>>>>>> other files i think that are identical.
>>>>>>
>>>>>> I think that this isn't the problem, but I don't know.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Humberto Carvalho
>>>>>>
>>>>>> Jason Weathersby wrote:
>>>>>>> Humberto,
>>>>>>>
>>>>>>> I just tried your sample and it worked fine.
>>>>>>> I set my home to "c:/myruntime/report engine".
>>>>>>> Below is a directory listing of the report engine directory. Notice
>>>>>>> I
>>>>>>> added iText.
>>>>>>>
>>>>>>> 12/31/2005 11:50a 77,586 birt-oda.jar
>>>>>>> 12/31/2005 11:50a 956,273 chart-engine.jar
>>>>>>> 12/31/2005 11:50a 30,117 commons-cli-1.0.jar
>>>>>>> 12/31/2005 11:50a 37,754 commons-codec-1.3.jar
>>>>>>> 12/31/2005 11:50a 132,596 core.jar
>>>>>>> 12/31/2005 11:50a 569,702 dte.jar
>>>>>>> 12/31/2005 11:50a 870,507 engine.jar
>>>>>>> 12/31/2005 11:50a 71,513 flute.jar
>>>>>>> 11/29/2005 05:41p 1,145,105 itext-1.3.jar
>>>>>>> 12/31/2005 11:50a 699,081 js.jar
>>>>>>> 01/15/2006 11:33p 1,552 libs.txt
>>>>>>> 12/31/2005 11:50a 3,316,129 model.jar
>>>>>>> 12/31/2005 11:50a 80,541 oda.jar
>>>>>>> 12/31/2005 11:50a 69,367 odaconsumer-helper.jar
>>>>>>> 12/31/2005 11:50a 137,063
>>>>>>> org.eclipse.emf.common_2.1.0.jar
>>>>>>> 12/31/2005 11:50a 144,460
>>>>>>> org.eclipse.emf.ecore.xmi_2.1.0.jar
>>>>>>> 12/31/2005 11:50a 639,778
>>>>>>> org.eclipse.emf.ecore_2.1.0.jar
>>>>>>> 01/04/2006 04:48p <DIR> plugins
>>>>>>> 12/31/2005 11:50a 14,526 sac.jar
>>>>>>> 01/04/2006 04:48p <DIR> samples
>>>>>>> 12/31/2005 11:50a 43,275 scriptapi.jar
>>>>>>> 01/18/2006 11:00a 0 test.txt
>>>>>>> 12/31/2005 11:50a 161,563 Tidy.jar
>>>>>>>
>>>>>>> Jason
>>>>>>>
>>>>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>>>>> news:43CE2F39.9030104@almedina.net...
>>>>>>>> Thanks for your help,
>>>>>>>>
>>>>>>>> First I have to say that i'm using a Birt viewer and the Birt engine
>>>>>>>> API.
>>>>>>>>
>>>>>>>> If i use the viewer engine and then choose to print to pdf, this
>>>>>>>> works,
>>>>>>>> but when i try to generate a pdf file from a rptdesign file using
>>>>>>>> the
>>>>>>>> engine API, the error occurs
>>>>>>>>
>>>>>>>>
>>>>>>>> I think that I have all the required files in the right place, I
>>>>>>>> followed the instructions of the following url
>>>>>>>> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>>>>>>>>
>>>>>>>> iText.jar is placed in
>>>>>>>> "plugins\org.eclipse.birt.report.engine.pdf\lib"
>>>>>>>>
>>>>>>>> In my application, the engine directory points to the viewer root
>>>>>>>> directory. I have also tried using the 'Report Engine' directory of
>>>>>>>> the
>>>>>>>> runtime distribution, with similar results.
>>>>>>>>
>>>>>>>> In attachment I send a java file that i think that could be the
>>>>>>>> problem...
>>>>>>>>
>>>>>>>> I'll wait for your answer..
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> Humberto Carvalho
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Jason Weathersby wrote:
>>>>>>>>> Can you upload the Stacktrace?
>>>>>>>>> Also verify that you have the other required files under the proper
>>>>>>>>> location, like the iText jar file.
>>>>>>>>>
>>>>>>>>> Jason Weathersby
>>>>>>>>> BIRT PMC
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in message
>>>>>>>>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>>>>>>>>> Hello,
>>>>>>>>>>
>>>>>>>>>> i need some help.
>>>>>>>>>>
>>>>>>>>>> I'm trying to generate a pdf file, but the following error occurs.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> SEVERE: Report engine can not create pdf emitter.
>>>>>>>>>> Report C:/Program Files/Apache/Tomcat
>>>>>>>>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>>>>>>>>> run failed.
>>>>>>>>>> org.eclipse.birt.report.engine.api.EngineException: Report engine
>>>>>>>>>> fails to
>>>>>>>>>> creat
>>>>>>>>>> e extension to handle this request.
>>>>>>>>>>
>>>>>>>>>> The software that i'm using are:
>>>>>>>>>> Windows XP SP2
>>>>>>>>>> Eclipse 3.1.1
>>>>>>>>>> BIRT 2.0.0
>>>>>>>>>> EMF 2.1.*
>>>>>>>>>> GEF 3.1.1
>>>>>>>>>>
>>>>>>>>>> I hope that someone can help me.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>> ------------------------------------------------------------ --------------------
>>>>>>>
>>>>>>>
>>>>>>>> package pt.almedina.reports;
>>>>>>>>
>>>>>>>> /*
>>>>>>>> * Example command-line utility to generate BIRT reports. Shows the
>>>>>>>> basics
>>>>>>>> * of integrating the BIRT report engine into a simple Java
>>>>>>>> application.
>>>>>>>> */
>>>>>>>>
>>>>>>>>
>>>>>>>> import java.util.Collection;
>>>>>>>> import java.util.HashMap;
>>>>>>>> import java.util.Iterator;
>>>>>>>> import java.util.Map;
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> import org.eclipse.birt.report.engine.api.EngineConfig;
>>>>>>>> import org.eclipse.birt.report.engine.api.EngineConstants;
>>>>>>>> import org.eclipse.birt.report.engine.api.EngineException;
>>>>>>>> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>>>>>>>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>>>>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
>>>>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>>>>>>>> import
>>>>>>>> org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>>>>>>>> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
>>>>>>>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>>>>>>>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>>>>>>>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>>>>>>>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>>>>>>>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>>>>>>>> import org.eclipse.birt.report.engine.api.ReportEngine;
>>>>>>>> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>>>>>>>>
>>>>>>>>
>>>>>>>> /**
>>>>>>>> * Runs a BIRT report and writes the output to a directory.
>>>>>>>> *
>>>>>>>> * RunReport report-name -[h|p] [-i] param=value
>>>>>>>> *
>>>>>>>> * -h HTML (default)
>>>>>>>> * -p PDF
>>>>>>>> * -i Display report info.
>>>>>>>> * param=value Set parameter "param" to the value "value".
>>>>>>>> */
>>>>>>>>
>>>>>>>> public class Conversor
>>>>>>>> {
>>>>>>>>
>>>>>>>> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
>>>>>>>> 5.5/webapps/Viewer";//c:/reportengine";
>>>>>>>> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
>>>>>>>> 5.5/webapps/BI/Documentos";
>>>>>>>>
>>>>>>>> // Command-line main to parse arguments described above.
>>>>>>>>
>>>>>>>> public static void main(String[] args) throws EngineException
>>>>>>>> {
>>>>>>>>
>>>>>>>> int i = 0;
>>>>>>>> if ( i >= args.length )
>>>>>>>> {
>>>>>>>> System.out.println( "Nao foi especificado qualquer relatorio" );
>>>>>>>> return;
>>>>>>>> }
>>>>>>>> String reportName = args[i++];
>>>>>>>> String format = null;
>>>>>>>> boolean showInfo = false;
>>>>>>>>
>>>>>>>> // Stoare parameter values into a hash map to later pass to the
>>>>>>>> // BIRT report engine.
>>>>>>>>
>>>>>>>> HashMap params = new HashMap( );
>>>>>>>> for ( ; i < args.length; i++ )
>>>>>>>> {
>>>>>>>> if ( args[i].charAt(0) == '-' )
>>>>>>>> {
>>>>>>>> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
>>>>>>>> if ( flag == 'p' )
>>>>>>>> {
>>>>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>>>>>>>> }
>>>>>>>> else if ( flag == 'h' )
>>>>>>>> {
>>>>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>>>>>>>> }
>>>>>>>> else if ( flag == 'i' )
>>>>>>>> {
>>>>>>>> showInfo = true;
>>>>>>>> }
>>>>>>>> else
>>>>>>>> {
>>>>>>>> usage( );
>>>>>>>> return;
>>>>>>>> }
>>>>>>>> }
>>>>>>>> else
>>>>>>>> {
>>>>>>>>
>>>>>>>> // Get a parameter value. Note, this example code only works
>>>>>>>> // for string parameters. If you have date or number parameters,
>>>>>>>> // your application should parse them, then put the corresponding
>>>>>>>> // objects into the hash map.
>>>>>>>>
>>>>>>>> String arg = args[i];
>>>>>>>> int posn = arg.indexOf( '=' );
>>>>>>>> if ( posn == -1 )
>>>>>>>> {
>>>>>>>> usage( );
>>>>>>>> return;
>>>>>>>> }
>>>>>>>> String param = arg.substring( 0, posn );
>>>>>>>> String value = arg.substring( posn + 1 );
>>>>>>>> Object put = params.put( param, value );
>>>>>>>>
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> run( reportName, params, format, showInfo );
>>>>>>>>
>>>>>>>> }
>>>>>>>>
>>>>>>>> public static void usage( )
>>>>>>>> {
>>>>>>>> System.out.println( "Sintaxe:\n java RunReport rptName
>>>>>>>> [-h|p]\n
>>>>>>>> param=value ..." );
>>>>>>>> }
>>>>>>>>
>>>>>>>> // Example function to run a report given the report name,
>>>>>>>> parameters
>>>>>>>> and
>>>>>>>> // output type. The output is put into a file in the same directory
>>>>>>>> as
>>>>>>>> the
>>>>>>>> // report itself.
>>>>>>>>
>>>>>>>> public static void run( String name, HashMap params,
>>>>>>>> String format, boolean showInfo ) throws EngineException
>>>>>>>> {
>>>>>>>> // The EngineConfig is used to set up engine-wide configuration
>>>>>>>> // information.
>>>>>>>>
>>>>>>>> EngineConfig config = new EngineConfig( );
>>>>>>>>
>>>>>>>> // The Engine home is the location of the BIRT engine runtime.
>>>>>>>> // M3 Note: Use the report engine installed as part of the BIRT web
>>>>>>>> app
>>>>>>>> // used to preview reports. Alter this path to the location of your
>>>>>>>> // Eclipse installation.
>>>>>>>>
>>>>>>>> config.setEngineHome(REPORTENGINE_URL);
>>>>>>>>
>>>>>>>> // HTML reports can have embedded images or charts. Set up the
>>>>>>>> configuration
>>>>>>>> // required to write these into a directory in the output directory.
>>>>>>>> // The HTMLCompleteImageHandler is one provided by BIRT for this
>>>>>>>> purpose.
>>>>>>>> // Your application can create a customized version to provide
>>>>>>>> alternative
>>>>>>>> // ways to handle images.
>>>>>>>>
>>>>>>>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>>>>>>>>
>>>>>>>>
>>>>>>>> HTMLCompleteImageHandler imageHandler = new
>>>>>>>> HTMLCompleteImageHandler( );
>>>>>>>> hc.setImageHandler( imageHandler );
>>>>>>>> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML,
>>>>>>>> hc );
>>>>>>>>
>>>>>>>> // Create the report engine itself. This engine can be used
>>>>>>>> to
>>>>>>>> run
>>>>>>>> // multiple reports.
>>>>>>>>
>>>>>>>> ReportEngine engine = new ReportEngine( config );
>>>>>>>>
>>>>>>>> // Open the report design.
>>>>>>>>
>>>>>>>> IReportRunnable report = null;
>>>>>>>>
>>>>>>>>
>>>>>>>> try {
>>>>>>>> report = engine.openReportDesign( name );
>>>>>>>> } catch ( EngineException e) {
>>>>>>>>
>>>>>>>> System.out.println("ERRO: PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
>>>>>>>> EXCEPTION: "+e);
>>>>>>>>
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> if ( showInfo )
>>>>>>>> {
>>>>>>>> showReportInfo( engine, report );
>>>>>>>> }
>>>>>>>>
>>>>>>>> // Create a task to run the report and convert the output to HTML
>>>>>>>> // or PDF.
>>>>>>>>
>>>>>>>> if ( format != null )
>>>>>>>> {
>>>>>>>>
>>>>>>>> parseParams( engine, report, params );
>>>>>>>>
>>>>>>>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>>>>>>>> /*
>>>>>>>> //HTMLRenderContext renderContext = new HTMLRenderContext();
>>>>>>>> //renderContext.setImageDirectory(IMAGE_URL);
>>>>>>>>
>>>>>>>> HTMLRenderContext renderContext = new HTMLRenderContext( );
>>>>>>>> renderContext.setImageDirectory( IMAGE_URL ); //"image"//$NON-NLS-1$
>>>>>>>> HashMap appContext = new HashMap( );
>>>>>>>> appContext.put("PDF_RENDER_CONTEXT",
>>>>>>>> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
>>>>>>>> task.setAppContext( appContext );
>>>>>>>>
>>>>>>>> //task.setContext((Map) renderContext);
>>>>>>>> */
>>>>>>>> HTMLRenderOption options = new HTMLRenderOption( );
>>>>>>>> options.setOutputFormat( format );
>>>>>>>> String output = name.replaceFirst( ".rptdesign", "." + format );
>>>>>>>> options.setOutputFileName( output );
>>>>>>>> task.setRenderOption( options );
>>>>>>>> String str = params.toString();
>>>>>>>>
>>>>>>>>
>>>>>>>> //task.setParameterValues( params );
>>>>>>>>
>>>>>>>> // Run the report.
>>>>>>>>
>>>>>>>> try
>>>>>>>> {
>>>>>>>> task.run( );
>>>>>>>> }
>>>>>>>> catch (EngineException e)
>>>>>>>> {
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>> engine.destroy( );
>>>>>>>> }
>>>>>>>>
>>>>>>>> // Display properties of the report and the list of report
>>>>>>>> parameters.
>>>>>>>>
>>>>>>>> static void showReportInfo( ReportEngine engine, IReportRunnable
>>>>>>>> report )
>>>>>>>> {
>>>>>>>> // Display some of the general report properties.
>>>>>>>> // See the ROM Design specification for a list of properties.
>>>>>>>>
>>>>>>>> System.out.print( "Report Name: " + report.getReportName() +
>>>>>>>> "\nTitle: " + report.getProperty( "title" ) +
>>>>>>>> "\nComments: " + report.getProperty( "comments" ) +
>>>>>>>> "\nDescription: " + report.getProperty( "description" ) +
>>>>>>>> "\nAuthor: " + report.getProperty( "author" ) +
>>>>>>>> "\nCreated By: " + report.getProperty( "createdBy" ) +
>>>>>>>> "\n" );
>>>>>>>>
>>>>>>>> // Display the list of report parameters with their groups.
>>>>>>>> // Parameters defined outside a group appear inside a default,
>>>>>>>> unnamed
>>>>>>>> // group.
>>>>>>>>
>>>>>>>> IGetParameterDefinitionTask task =
>>>>>>>> engine.createGetParameterDefinitionTask( report );
>>>>>>>> Collection params = task.getParameterDefns( true );
>>>>>>>> if ( params.isEmpty() )
>>>>>>>> {
>>>>>>>> System.out.print( "This report has no parameters.\n" );
>>>>>>>> return;
>>>>>>>> }
>>>>>>>>
>>>>>>>> Iterator iter = params.iterator( );
>>>>>>>> while ( iter.hasNext( ) )
>>>>>>>> {
>>>>>>>> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
>>>>>>>> if ( param instanceof IParameterGroupDefn )
>>>>>>>> {
>>>>>>>> IParameterGroupDefn group = (IParameterGroupDefn) param;
>>>>>>>> System.out.println( "Parameter Group: " + group.getDisplayName( ) );
>>>>>>>> Iterator i2 = group.getContents( ).iterator( );
>>>>>>>> while ( iter.hasNext( ) )
>>>>>>>> {
>>>>>>>> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
>>>>>>>> showParam( task, member, " " );
>>>>>>>> }
>>>>>>>> }
>>>>>>>> else
>>>>>>>> showParam( task, param, "" );
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>> // Show information for one parameter.
>>>>>>>> // Release 1 supports only scalar (single-value) parameters.
>>>>>>>>
>>>>>>>> static void showParam( IGetParameterDefinitionTask task,
>>>>>>>> IParameterDefnBase defn,
>>>>>>>> String prefix )
>>>>>>>> {
>>>>>>>> IScalarParameterDefn param = (IScalarParameterDefn) defn;
>>>>>>>> System.out.println( prefix + "Parameter: " + param.getName( ) );
>>>>>>>> System.out.println( prefix + " Display Name: " +
>>>>>>>> param.getDisplayName( ) );
>>>>>>>> System.out.println( prefix + " Type: " + param.getDataType( ) );
>>>>>>>> System.out.print( prefix + " Default Value: " );
>>>>>>>>
>>>>>>>> // The default value is an expression. Evaluate it.
>>>>>>>>
>>>>>>>> Object value = task.getDefaultValue( param );
>>>>>>>> System.out.println( value == null ? "none" : value.toString( ) );
>>>>>>>> }
>>>>>>>>
>>>>>>>> static void parseParams( ReportEngine engine, IReportRunnable
>>>>>>>> report,
>>>>>>>> HashMap values )
>>>>>>>> {
>>>>>>>>
>>>>>>>> System.out.println("ENTREI!!! VALORES: "+values);
>>>>>>>> if ( values.isEmpty( ) )
>>>>>>>> return;
>>>>>>>>
>>>>>>>> IGetParameterDefinitionTask task =
>>>>>>>> engine.createGetParameterDefinitionTask( report );
>>>>>>>> Collection params = task.getParameterDefns( false );
>>>>>>>> Iterator iter = values.keySet( ).iterator( );
>>>>>>>> System.out.println("VOU ENTRAR NO WHILE!!!");
>>>>>>>> int xxx = 1;
>>>>>>>> while ( iter.hasNext( ) )
>>>>>>>> {
>>>>>>>> System.out.println("WHILE: "+xxx);
>>>>>>>> String name = (String) iter.next( );
>>>>>>>>
>>>>>>>> IScalarParameterDefn found = null;
>>>>>>>> Iterator i2 = params.iterator( );
>>>>>>>> while ( i2.hasNext( ) )
>>>>>>>> {
>>>>>>>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>>>>>>>> if ( param instanceof IParameterGroupDefn )
>>>>>>>> continue;
>>>>>>>> if ( param.getName( ).equals( name ) )
>>>>>>>> {
>>>>>>>> found = (IScalarParameterDefn) param;
>>>>>>>> break;
>>>>>>>> }
>>>>>>>> }
>>>>>>>> if ( found == null )
>>>>>>>> {
>>>>>>>> System.err.println( "Parameter " + name + " not found in the
>>>>>>>> report." );
>>>>>>>> continue;
>>>>>>>> }
>>>>>>>> String value = (String) values.get( name );
>>>>>>>> // ReportParameterConverter cfgConverter = new
>>>>>>>> ReportParameterConverter( "", Locale.getDefault( ) );
>>>>>>>> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
>>>>>>>> // values.put( name, obj );
>>>>>>>> values.put( name, value );
>>>>>>>> }
>>>>>>>> }
>>>>>>>> }
>>>
>
>
|
|
|
Re: SEVERE: Report engine can not create pdf emitter [message #112272 is a reply to message #112093] |
Fri, 20 January 2006 14:47 |
|
Glad to hear it is working!
Jason
"HC" <carvalho.humberto@almedina.net> wrote in message
news:dqqgpk$5tj$1@utils.eclipse.org...
> Jason,
>
> I followed the readme and your example runs fine.
> When I tried the example in my project, the error appears again.
>
> I then verified the libs in the WEB-INF directory of my application and
> found out that I had some jars left from other version of the report
> engine. I removed them and everything works.
> I get the EXTENSION_POINT_NOT_FOUND error (which I believe is a known bug)
> but the report runs and creates the files.
>
> I want to thank all the patience and the help you gave me.
>
> Thanks
>
> Humberto Carvalho
>
> Jason Weathersby wrote:
>> Humberto,
>>
>> Attached is an ant project with the code you sent me slightly modified.
>> Look at the readme and let me know if it runs the runreport.rptdesign.
>>
>> Thanks
>>
>> Jason
>>
>> "HC" <carvalho.humberto@almedina.net> wrote in message
>> news:dqoksg$k74$1@utils.eclipse.org...
>>> Jason,
>>>
>>> I have all the files exactly as you said in your last e-mail and even so
>>> this don't work.
>>>
>>> Thanks
>>>
>>> Humberto Carvalho
>>>
>>>
>>> Jason Weathersby wrote:
>>>> Humberto,
>>>>
>>>> When I ran the file you sent me I ran it from Eclipse using the JDT.
>>>> I copied itext to the Report Engine Directory
>>>> I added the jars from the Report Engine Directory to my build path.
>>>> Everything worked fine.
>>>>
>>>> If the issue is in tomcat using the Web Viewer, I did the following to
>>>> get
>>>> BIRT to work.
>>>> copied the Web Viewer Example directory to Webapps under tomcat.
>>>> Renamed it Birt-viewer.
>>>> Copied prototype.js to birt-viewer/ajax/lib
>>>> Copied itext-1.3.jar to
>>>> birt-viewer/plugins/org.eclipse.birt.report.engine.pdf/lib
>>>> Copied
>>>> axis.jar
>>>> axis-ant.jar
>>>> commons-discovery-0.2.jar
>>>> jaxrpc.jar
>>>> saaj.jar
>>>> wsdl4j-1.5.1.jar
>>>> to birt-viewer/WEB-INF/lib
>>>>
>>>> Jason
>>>>
>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>> news:dqnsv4$p59$1@utils.eclipse.org...
>>>>> Jason,
>>>>>
>>>>> I'm using:
>>>>> Windows XP SP2
>>>>> Tomcat 5.5.12
>>>>> Eclipse 3.1.1
>>>>> BIRT 2.0.0
>>>>> EMF 2.1.*
>>>>> GEF 3.1.1
>>>>>
>>>>> The Report Engine and the Viewer that I use came in the
>>>>> birt-runtime-2.0RC1.zip from BIRT download page.
>>>>>
>>>>> In attachment I send you a zip file with 2 files that I think you
>>>>> asked
>>>>> for.
>>>>>
>>>>> Thanks for your help
>>>>>
>>>>> Humberto
>>>>>
>>>>>
>>>>> Jason Weathersby wrote:
>>>>>> Humberto,
>>>>>>
>>>>>> What version of BIRT are you using?
>>>>>> Are you getting a stack trace?
>>>>>> Also are you using Eclipse or something like Ant to build your class?
>>>>>> Thanks
>>>>>>
>>>>>> Jason
>>>>>>
>>>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>>>> news:43CE8A3E.60607@almedina.net...
>>>>>>> Hello,
>>>>>>>
>>>>>>> I've tried what you said in your last e-mail, but the result was the
>>>>>>> same.
>>>>>>>
>>>>>>> In my last e-mail I didn't told you that if I try to generate a pdf
>>>>>>> file
>>>>>>> or a html file in either cases the error occurs, and not only when I
>>>>>>> try
>>>>>>> to generate a pdf file.
>>>>>>>
>>>>>>> One thing that I saw comparing your list files with my Report Engine
>>>>>>> files, is that model.jar in your Report Engine it's bigger than
>>>>>>> mine.
>>>>>>> The
>>>>>>> other files i think that are identical.
>>>>>>>
>>>>>>> I think that this isn't the problem, but I don't know.
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Humberto Carvalho
>>>>>>>
>>>>>>> Jason Weathersby wrote:
>>>>>>>> Humberto,
>>>>>>>>
>>>>>>>> I just tried your sample and it worked fine.
>>>>>>>> I set my home to "c:/myruntime/report engine".
>>>>>>>> Below is a directory listing of the report engine directory.
>>>>>>>> Notice I
>>>>>>>> added iText.
>>>>>>>>
>>>>>>>> 12/31/2005 11:50a 77,586 birt-oda.jar
>>>>>>>> 12/31/2005 11:50a 956,273 chart-engine.jar
>>>>>>>> 12/31/2005 11:50a 30,117 commons-cli-1.0.jar
>>>>>>>> 12/31/2005 11:50a 37,754 commons-codec-1.3.jar
>>>>>>>> 12/31/2005 11:50a 132,596 core.jar
>>>>>>>> 12/31/2005 11:50a 569,702 dte.jar
>>>>>>>> 12/31/2005 11:50a 870,507 engine.jar
>>>>>>>> 12/31/2005 11:50a 71,513 flute.jar
>>>>>>>> 11/29/2005 05:41p 1,145,105 itext-1.3.jar
>>>>>>>> 12/31/2005 11:50a 699,081 js.jar
>>>>>>>> 01/15/2006 11:33p 1,552 libs.txt
>>>>>>>> 12/31/2005 11:50a 3,316,129 model.jar
>>>>>>>> 12/31/2005 11:50a 80,541 oda.jar
>>>>>>>> 12/31/2005 11:50a 69,367 odaconsumer-helper.jar
>>>>>>>> 12/31/2005 11:50a 137,063
>>>>>>>> org.eclipse.emf.common_2.1.0.jar
>>>>>>>> 12/31/2005 11:50a 144,460
>>>>>>>> org.eclipse.emf.ecore.xmi_2.1.0.jar
>>>>>>>> 12/31/2005 11:50a 639,778
>>>>>>>> org.eclipse.emf.ecore_2.1.0.jar
>>>>>>>> 01/04/2006 04:48p <DIR> plugins
>>>>>>>> 12/31/2005 11:50a 14,526 sac.jar
>>>>>>>> 01/04/2006 04:48p <DIR> samples
>>>>>>>> 12/31/2005 11:50a 43,275 scriptapi.jar
>>>>>>>> 01/18/2006 11:00a 0 test.txt
>>>>>>>> 12/31/2005 11:50a 161,563 Tidy.jar
>>>>>>>>
>>>>>>>> Jason
>>>>>>>>
>>>>>>>> "HC" <carvalho.humberto@almedina.net> wrote in message
>>>>>>>> news:43CE2F39.9030104@almedina.net...
>>>>>>>>> Thanks for your help,
>>>>>>>>>
>>>>>>>>> First I have to say that i'm using a Birt viewer and the Birt
>>>>>>>>> engine
>>>>>>>>> API.
>>>>>>>>>
>>>>>>>>> If i use the viewer engine and then choose to print to pdf, this
>>>>>>>>> works,
>>>>>>>>> but when i try to generate a pdf file from a rptdesign file using
>>>>>>>>> the
>>>>>>>>> engine API, the error occurs
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I think that I have all the required files in the right place, I
>>>>>>>>> followed the instructions of the following url
>>>>>>>>> " http://www.eclipse.org/birt/index.php?page=build/install.htm l"
>>>>>>>>>
>>>>>>>>> iText.jar is placed in
>>>>>>>>> "plugins\org.eclipse.birt.report.engine.pdf\lib"
>>>>>>>>>
>>>>>>>>> In my application, the engine directory points to the viewer root
>>>>>>>>> directory. I have also tried using the 'Report Engine' directory
>>>>>>>>> of
>>>>>>>>> the
>>>>>>>>> runtime distribution, with similar results.
>>>>>>>>>
>>>>>>>>> In attachment I send a java file that i think that could be the
>>>>>>>>> problem...
>>>>>>>>>
>>>>>>>>> I'll wait for your answer..
>>>>>>>>> Thanks
>>>>>>>>>
>>>>>>>>> Humberto Carvalho
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Jason Weathersby wrote:
>>>>>>>>>> Can you upload the Stacktrace?
>>>>>>>>>> Also verify that you have the other required files under the
>>>>>>>>>> proper
>>>>>>>>>> location, like the iText jar file.
>>>>>>>>>>
>>>>>>>>>> Jason Weathersby
>>>>>>>>>> BIRT PMC
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> "Humberto Carvalho" <carvalho.humberto@gmail.com> wrote in
>>>>>>>>>> message
>>>>>>>>>> news:51ff09d618a253c7540a8c0018bd62e5$1@www.eclipse.org...
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> i need some help.
>>>>>>>>>>>
>>>>>>>>>>> I'm trying to generate a pdf file, but the following error
>>>>>>>>>>> occurs.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> SEVERE: Report engine can not create pdf emitter.
>>>>>>>>>>> Report C:/Program Files/Apache/Tomcat
>>>>>>>>>>> 5.5/webapps/BI/Documentos/estat.rptdesign
>>>>>>>>>>> run failed.
>>>>>>>>>>> org.eclipse.birt.report.engine.api.EngineException: Report
>>>>>>>>>>> engine
>>>>>>>>>>> fails to
>>>>>>>>>>> creat
>>>>>>>>>>> e extension to handle this request.
>>>>>>>>>>>
>>>>>>>>>>> The software that i'm using are:
>>>>>>>>>>> Windows XP SP2
>>>>>>>>>>> Eclipse 3.1.1
>>>>>>>>>>> BIRT 2.0.0
>>>>>>>>>>> EMF 2.1.*
>>>>>>>>>>> GEF 3.1.1
>>>>>>>>>>>
>>>>>>>>>>> I hope that someone can help me.
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>> ------------------------------------------------------------ --------------------
>>>>>>>>
>>>>>>>>
>>>>>>>>> package pt.almedina.reports;
>>>>>>>>>
>>>>>>>>> /*
>>>>>>>>> * Example command-line utility to generate BIRT reports. Shows the
>>>>>>>>> basics
>>>>>>>>> * of integrating the BIRT report engine into a simple Java
>>>>>>>>> application.
>>>>>>>>> */
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> import java.util.Collection;
>>>>>>>>> import java.util.HashMap;
>>>>>>>>> import java.util.Iterator;
>>>>>>>>> import java.util.Map;
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> import org.eclipse.birt.report.engine.api.EngineConfig;
>>>>>>>>> import org.eclipse.birt.report.engine.api.EngineConstants;
>>>>>>>>> import org.eclipse.birt.report.engine.api.EngineException;
>>>>>>>>> import
>>>>>>>>> org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>>>>>>>>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>>>>>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderContext;
>>>>>>>>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>>>>>>>>> import
>>>>>>>>> org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>>>>>>>>> import org.eclipse.birt.report.engine.api.IHTMLActionHandler;
>>>>>>>>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>>>>>>>>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>>>>>>>>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>>>>>>>>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>>>>>>>>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>>>>>>>>> import org.eclipse.birt.report.engine.api.ReportEngine;
>>>>>>>>> import
>>>>>>>>> org.eclipse.birt.report.engine.api.ReportParameterConverter;
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> /**
>>>>>>>>> * Runs a BIRT report and writes the output to a directory.
>>>>>>>>> *
>>>>>>>>> * RunReport report-name -[h|p] [-i] param=value
>>>>>>>>> *
>>>>>>>>> * -h HTML (default)
>>>>>>>>> * -p PDF
>>>>>>>>> * -i Display report info.
>>>>>>>>> * param=value Set parameter "param" to the value "value".
>>>>>>>>> */
>>>>>>>>>
>>>>>>>>> public class Conversor
>>>>>>>>> {
>>>>>>>>>
>>>>>>>>> static String REPORTENGINE_URL = "C:/Program Files/Apache/Tomcat
>>>>>>>>> 5.5/webapps/Viewer";//c:/reportengine";
>>>>>>>>> static String IMAGE_URL = "C:/Program Files/Apache/Tomcat
>>>>>>>>> 5.5/webapps/BI/Documentos";
>>>>>>>>>
>>>>>>>>> // Command-line main to parse arguments described above.
>>>>>>>>>
>>>>>>>>> public static void main(String[] args) throws EngineException
>>>>>>>>> {
>>>>>>>>>
>>>>>>>>> int i = 0;
>>>>>>>>> if ( i >= args.length )
>>>>>>>>> {
>>>>>>>>> System.out.println( "Nao foi especificado qualquer relatorio" );
>>>>>>>>> return;
>>>>>>>>> }
>>>>>>>>> String reportName = args[i++];
>>>>>>>>> String format = null;
>>>>>>>>> boolean showInfo = false;
>>>>>>>>>
>>>>>>>>> // Stoare parameter values into a hash map to later pass to the
>>>>>>>>> // BIRT report engine.
>>>>>>>>>
>>>>>>>>> HashMap params = new HashMap( );
>>>>>>>>> for ( ; i < args.length; i++ )
>>>>>>>>> {
>>>>>>>>> if ( args[i].charAt(0) == '-' )
>>>>>>>>> {
>>>>>>>>> char flag = Character.toLowerCase( args[i].charAt( 1 ) );
>>>>>>>>> if ( flag == 'p' )
>>>>>>>>> {
>>>>>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>>>>>>>>> }
>>>>>>>>> else if ( flag == 'h' )
>>>>>>>>> {
>>>>>>>>> format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>>>>>>>>> }
>>>>>>>>> else if ( flag == 'i' )
>>>>>>>>> {
>>>>>>>>> showInfo = true;
>>>>>>>>> }
>>>>>>>>> else
>>>>>>>>> {
>>>>>>>>> usage( );
>>>>>>>>> return;
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> else
>>>>>>>>> {
>>>>>>>>>
>>>>>>>>> // Get a parameter value. Note, this example code only works
>>>>>>>>> // for string parameters. If you have date or number parameters,
>>>>>>>>> // your application should parse them, then put the corresponding
>>>>>>>>> // objects into the hash map.
>>>>>>>>>
>>>>>>>>> String arg = args[i];
>>>>>>>>> int posn = arg.indexOf( '=' );
>>>>>>>>> if ( posn == -1 )
>>>>>>>>> {
>>>>>>>>> usage( );
>>>>>>>>> return;
>>>>>>>>> }
>>>>>>>>> String param = arg.substring( 0, posn );
>>>>>>>>> String value = arg.substring( posn + 1 );
>>>>>>>>> Object put = params.put( param, value );
>>>>>>>>>
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> run( reportName, params, format, showInfo );
>>>>>>>>>
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> public static void usage( )
>>>>>>>>> {
>>>>>>>>> System.out.println( "Sintaxe:\n java RunReport rptName
>>>>>>>>> [-h|p]\n
>>>>>>>>> param=value ..." );
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> // Example function to run a report given the report name,
>>>>>>>>> parameters
>>>>>>>>> and
>>>>>>>>> // output type. The output is put into a file in the same
>>>>>>>>> directory as
>>>>>>>>> the
>>>>>>>>> // report itself.
>>>>>>>>>
>>>>>>>>> public static void run( String name, HashMap params,
>>>>>>>>> String format, boolean showInfo ) throws EngineException
>>>>>>>>> {
>>>>>>>>> // The EngineConfig is used to set up engine-wide configuration
>>>>>>>>> // information.
>>>>>>>>>
>>>>>>>>> EngineConfig config = new EngineConfig( );
>>>>>>>>>
>>>>>>>>> // The Engine home is the location of the BIRT engine runtime.
>>>>>>>>> // M3 Note: Use the report engine installed as part of the BIRT
>>>>>>>>> web
>>>>>>>>> app
>>>>>>>>> // used to preview reports. Alter this path to the location of
>>>>>>>>> your
>>>>>>>>> // Eclipse installation.
>>>>>>>>>
>>>>>>>>> config.setEngineHome(REPORTENGINE_URL);
>>>>>>>>>
>>>>>>>>> // HTML reports can have embedded images or charts. Set up the
>>>>>>>>> configuration
>>>>>>>>> // required to write these into a directory in the output
>>>>>>>>> directory.
>>>>>>>>> // The HTMLCompleteImageHandler is one provided by BIRT for this
>>>>>>>>> purpose.
>>>>>>>>> // Your application can create a customized version to provide
>>>>>>>>> alternative
>>>>>>>>> // ways to handle images.
>>>>>>>>>
>>>>>>>>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> HTMLCompleteImageHandler imageHandler = new
>>>>>>>>> HTMLCompleteImageHandler( );
>>>>>>>>> hc.setImageHandler( imageHandler );
>>>>>>>>> config.setEmitterConfiguration(
>>>>>>>>> HTMLRenderOption.OUTPUT_FORMAT_HTML,
>>>>>>>>> hc );
>>>>>>>>>
>>>>>>>>> // Create the report engine itself. This engine can be used
>>>>>>>>> to
>>>>>>>>> run
>>>>>>>>> // multiple reports.
>>>>>>>>>
>>>>>>>>> ReportEngine engine = new ReportEngine( config );
>>>>>>>>>
>>>>>>>>> // Open the report design.
>>>>>>>>>
>>>>>>>>> IReportRunnable report = null;
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> try {
>>>>>>>>> report = engine.openReportDesign( name );
>>>>>>>>> } catch ( EngineException e) {
>>>>>>>>>
>>>>>>>>> System.out.println("ERRO:
>>>>>>>>> PT.ALMEDINA.REPORTS.CONVERSOR.RUN\n
>>>>>>>>> EXCEPTION: "+e);
>>>>>>>>>
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> if ( showInfo )
>>>>>>>>> {
>>>>>>>>> showReportInfo( engine, report );
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> // Create a task to run the report and convert the output to HTML
>>>>>>>>> // or PDF.
>>>>>>>>>
>>>>>>>>> if ( format != null )
>>>>>>>>> {
>>>>>>>>>
>>>>>>>>> parseParams( engine, report, params );
>>>>>>>>>
>>>>>>>>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>>>>>>>>> /*
>>>>>>>>> //HTMLRenderContext renderContext = new HTMLRenderContext();
>>>>>>>>> //renderContext.setImageDirectory(IMAGE_URL);
>>>>>>>>>
>>>>>>>>> HTMLRenderContext renderContext = new HTMLRenderContext( );
>>>>>>>>> renderContext.setImageDirectory( IMAGE_URL );
>>>>>>>>> //"image"//$NON-NLS-1$
>>>>>>>>> HashMap appContext = new HashMap( );
>>>>>>>>> appContext.put("PDF_RENDER_CONTEXT",
>>>>>>>>> renderContext );//EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT
>>>>>>>>> task.setAppContext( appContext );
>>>>>>>>>
>>>>>>>>> //task.setContext((Map) renderContext);
>>>>>>>>> */
>>>>>>>>> HTMLRenderOption options = new HTMLRenderOption( );
>>>>>>>>> options.setOutputFormat( format );
>>>>>>>>> String output = name.replaceFirst( ".rptdesign", "." + format );
>>>>>>>>> options.setOutputFileName( output );
>>>>>>>>> task.setRenderOption( options );
>>>>>>>>> String str = params.toString();
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> //task.setParameterValues( params );
>>>>>>>>>
>>>>>>>>> // Run the report.
>>>>>>>>>
>>>>>>>>> try
>>>>>>>>> {
>>>>>>>>> task.run( );
>>>>>>>>> }
>>>>>>>>> catch (EngineException e)
>>>>>>>>> {
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> engine.destroy( );
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> // Display properties of the report and the list of report
>>>>>>>>> parameters.
>>>>>>>>>
>>>>>>>>> static void showReportInfo( ReportEngine engine, IReportRunnable
>>>>>>>>> report )
>>>>>>>>> {
>>>>>>>>> // Display some of the general report properties.
>>>>>>>>> // See the ROM Design specification for a list of properties.
>>>>>>>>>
>>>>>>>>> System.out.print( "Report Name: " + report.getReportName() +
>>>>>>>>> "\nTitle: " + report.getProperty( "title" ) +
>>>>>>>>> "\nComments: " + report.getProperty( "comments" ) +
>>>>>>>>> "\nDescription: " + report.getProperty( "description" ) +
>>>>>>>>> "\nAuthor: " + report.getProperty( "author" ) +
>>>>>>>>> "\nCreated By: " + report.getProperty( "createdBy" ) +
>>>>>>>>> "\n" );
>>>>>>>>>
>>>>>>>>> // Display the list of report parameters with their groups.
>>>>>>>>> // Parameters defined outside a group appear inside a default,
>>>>>>>>> unnamed
>>>>>>>>> // group.
>>>>>>>>>
>>>>>>>>> IGetParameterDefinitionTask task =
>>>>>>>>> engine.createGetParameterDefinitionTask( report );
>>>>>>>>> Collection params = task.getParameterDefns( true );
>>>>>>>>> if ( params.isEmpty() )
>>>>>>>>> {
>>>>>>>>> System.out.print( "This report has no parameters.\n" );
>>>>>>>>> return;
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> Iterator iter = params.iterator( );
>>>>>>>>> while ( iter.hasNext( ) )
>>>>>>>>> {
>>>>>>>>> IParameterDefnBase param = (IParameterDefnBase) iter.next( );
>>>>>>>>> if ( param instanceof IParameterGroupDefn )
>>>>>>>>> {
>>>>>>>>> IParameterGroupDefn group = (IParameterGroupDefn) param;
>>>>>>>>> System.out.println( "Parameter Group: " +
>>>>>>>>> group.getDisplayName( ) );
>>>>>>>>> Iterator i2 = group.getContents( ).iterator( );
>>>>>>>>> while ( iter.hasNext( ) )
>>>>>>>>> {
>>>>>>>>> IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );
>>>>>>>>> showParam( task, member, " " );
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> else
>>>>>>>>> showParam( task, param, "" );
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> // Show information for one parameter.
>>>>>>>>> // Release 1 supports only scalar (single-value) parameters.
>>>>>>>>>
>>>>>>>>> static void showParam( IGetParameterDefinitionTask task,
>>>>>>>>> IParameterDefnBase defn,
>>>>>>>>> String prefix )
>>>>>>>>> {
>>>>>>>>> IScalarParameterDefn param = (IScalarParameterDefn) defn;
>>>>>>>>> System.out.println( prefix + "Parameter: " + param.getName( ) );
>>>>>>>>> System.out.println( prefix + " Display Name: " +
>>>>>>>>> param.getDisplayName( ) );
>>>>>>>>> System.out.println( prefix + " Type: " + param.getDataType( ) );
>>>>>>>>> System.out.print( prefix + " Default Value: " );
>>>>>>>>>
>>>>>>>>> // The default value is an expression. Evaluate it.
>>>>>>>>>
>>>>>>>>> Object value = task.getDefaultValue( param );
>>>>>>>>> System.out.println( value == null ? "none" : value.toString( ) );
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> static void parseParams( ReportEngine engine, IReportRunnable
>>>>>>>>> report,
>>>>>>>>> HashMap values )
>>>>>>>>> {
>>>>>>>>>
>>>>>>>>> System.out.println("ENTREI!!! VALORES: "+values);
>>>>>>>>> if ( values.isEmpty( ) )
>>>>>>>>> return;
>>>>>>>>>
>>>>>>>>> IGetParameterDefinitionTask task =
>>>>>>>>> engine.createGetParameterDefinitionTask( report );
>>>>>>>>> Collection params = task.getParameterDefns( false );
>>>>>>>>> Iterator iter = values.keySet( ).iterator( );
>>>>>>>>> System.out.println("VOU ENTRAR NO WHILE!!!");
>>>>>>>>> int xxx = 1;
>>>>>>>>> while ( iter.hasNext( ) )
>>>>>>>>> {
>>>>>>>>> System.out.println("WHILE: "+xxx);
>>>>>>>>> String name = (String) iter.next( );
>>>>>>>>>
>>>>>>>>> IScalarParameterDefn found = null;
>>>>>>>>> Iterator i2 = params.iterator( );
>>>>>>>>> while ( i2.hasNext( ) )
>>>>>>>>> {
>>>>>>>>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>>>>>>>>> if ( param instanceof IParameterGroupDefn )
>>>>>>>>> continue;
>>>>>>>>> if ( param.getName( ).equals( name ) )
>>>>>>>>> {
>>>>>>>>> found = (IScalarParameterDefn) param;
>>>>>>>>> break;
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> if ( found == null )
>>>>>>>>> {
>>>>>>>>> System.err.println( "Parameter " + name + " not found in the
>>>>>>>>> report." );
>>>>>>>>> continue;
>>>>>>>>> }
>>>>>>>>> String value = (String) values.get( name );
>>>>>>>>> // ReportParameterConverter cfgConverter = new
>>>>>>>>> ReportParameterConverter( "", Locale.getDefault( ) );
>>>>>>>>> // Object obj = cfgConverter.parse( value, found.getDataType( ) );
>>>>>>>>> // values.put( name, obj );
>>>>>>>>> values.put( name, value );
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> }
>>>>
>>
|
|
|
Goto Forum:
Current Time: Sat Dec 21 14:50:13 GMT 2024
Powered by FUDForum. Page generated in 0.07239 seconds
|