* "Java.inc", if needed) to some directory, start the Java back- end * (tomcat, or any other J2EE server) and type: * * php report.php >helloBirt.html * */ // the report file to render $myReport = "test.rptdesign"; // load resources, .rpt files and images from the current working dir $here = getcwd(); $ctx = java_context()->getServletContext(); $birtReportEngine = java("org.eclipse.birt.php.birtengine.BirtEngine")->getBirtEngine($ctx); java_context()->onShutdown(java("org.eclipse.birt.php.birtengine.BirtEngine")->getShutdownHook()); // Create a HTML render context $renderContext = new java("org.eclipse.birt.report.engine.api.HTMLRenderContext"); $renderContext->setBaseImageURL("{$here}/images"); $contextMap = new java("java.util.HashMap"); $CONTEXT = java("org.eclipse.birt.report.engine.api.EngineConstants")->APPCONTEXT_HTML_RENDER_CONTEXT; $contextMap->put($CONTEXT, $renderContext); // Load the report design $design = $birtReportEngine->openReportDesign("{$here}/{$myReport}"); $task = $birtReportEngine->createRunAndRenderTask($design); $task->setAppContext($contextMap); // Add HTML render options $options = new java("org.eclipse.birt.report.engine.api.HTMLRenderOption"); $options->setOutputFormat($options->OUTPUT_FORMAT_HTML); // Create the output $out = new java("java.io.ByteArrayOutputStream"); $options->setOutputStream($out); $task->setRenderOption($options); $task->run();
require_once "java/Java.inc"; session_start(); $here = getcwd(); $ctx = java_context()->getServletContext(); $birtReportEngine = java("org.eclipse.birt.php.birtengine.BirtEngine")->getBirtEngine($ctx); java_context()->onShutdown(java("org.eclipse.birt.php.birtengine.BirtEngine")->getShutdownHook()); try { $document = $birtReportEngine->openReportDocument($here . "/reportDocuments/" . session_id() . "/mytopnreportdocument.rptdocument"); $lastPage = $document->getPageCount(); $task = $birtReportEngine->createRenderTask($document); $taskOptions = new java("org.eclipse.birt.report.engine.api.HTMLRenderOption"); $outputStream = new java("java.io.ByteArrayOutputStream"); $taskOptions->setOutputStream($outputStream); $taskOptions->setOutputFormat("html"); $ih = new java("org.eclipse.birt.report.engine.api.HTMLServerImageHandler"); $taskOptions->setImageHandler($ih); $taskOptions->setBaseImageURL($imageURLPrefix . session_id()); $taskOptions->setImageDirectory($here . "/sessionChartImages/" . session_id()); $taskOptions->setEnableAgentStyleEngine(true); $task->setRenderOption($taskOptions); //Note that top n report only has one page so this will return the same as not setting page number or range $task->setPageNumber($lastPage); //page range $task->setPageRange("1-1"); $task->render(); $task->close(); } catch (JavaException $e) { echo $e; //"Error Calling BIRT"; } echo $outputStream;