<?php header("Content-type: application/pdf"); header("Content-Disposition: attachment; filename=downloaded.pdf"); define("JAVA_HOSTS", "127.0.0.1:8080"); define("JAVA_SERVLET", "/JavaBridge/JavaBridge.phpjavabridge"); 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 { $report = $birtReportEngine->openReportDesign("{$here}/TopNPercent.rptdesign"); $task = $birtReportEngine->createRunAndRenderTask($report); $taskOptions = new java("org.eclipse.birt.report.engine.api.PDFRenderOption"); $outputStream = new java("java.io.ByteArrayOutputStream"); $taskOptions->setOutputStream($outputStream); $taskOptions->setOption("pdfRenderOption.pageOverflow", "pdfRenderOption.fitToPage"); $taskOptions->setOutputFormat("pdf"); $task->setRenderOption($taskOptions); $task->run(); $task->close(); } catch (JavaException $e) { echo $e; //"Error Calling BIRT"; } //echo $outputStream; echo java_values($outputStream->toByteArray());
* 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(); $task->close(); // Return the generated output to the client echo java_values($out);