Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » BIRT » SEVERE: Report engine can not create pdf emitter
SEVERE: Report engine can not create pdf emitter [message #110499] Tue, 17 January 2006 18:04 Go to next message
Humberto Carvalho is currently offline Humberto CarvalhoFriend
Messages: 1
Registered: July 2009
Junior Member
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 #110584 is a reply to message #110499] Tue, 17 January 2006 17:39 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

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 Go to previous messageGo to next message
Eclipse UserFriend
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 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

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 Go to previous messageGo to next message
Eclipse UserFriend
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 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

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 Go to previous messageGo to next message
Eclipse UserFriend
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 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

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 Go to previous messageGo to next message
Eclipse UserFriend
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 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

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 Go to previous messageGo to next message
Eclipse UserFriend
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 Go to previous message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

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 );
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> }
>>>>
>>
Previous Topic:ReportDesign scripting question
Next Topic:Parameter Input Validation
Goto Forum:
  


Current Time: Sat Dec 21 14:50:13 GMT 2024

Powered by FUDForum. Page generated in 0.07239 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top