Export Crystal reports to PDF in java
Solution 1
I've documented my spike test for the SAP Crystal Reports for Java runtime components – Java Reporting Component (JRC) here:
http://www.javathinking.com/2011/09/using-crystal-reports-java-api-to.html
I was using Business Objects 4.0, and probably the most important thing was to get the Java library – download ‘SAP Crystal Reports for Java runtime components – Java Reporting Component (JRC)’ from:
http://www.businessobjects.com/campaigns/forms/downloads/crystal/eclipse/datasave.asp
There are a lot of samples on the web to look at – you might find something to help here: http://wiki.sdn.sap.com/wiki/display/BOBJ/Java+Reporting+Component++SDK+Samples
A good example to start with is “JRC EXPORT REPORT”: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/40d580ce-bd66-2b10-95b0-cc4d3f2dcaef
In my case I didn't need a server - I just used the JAR files, the RPT file, the database and my CRConfig.xml file:
<?xml version="1.0" encoding="utf-8"?>
<CrystalReportEngine-configuration>
<reportlocation>..</reportlocation>
<timeout>0</timeout>
<ExternalFunctionLibraryClassNames>
<classname></classname>
</ExternalFunctionLibraryClassNames>
</CrystalReportEngine-configuration>
Solution 2
This is more for an automated process.
First get the raw byte export from the crystal:
ReportClientDocument reportClientDoc = new ReportClientDocument();
reportClientDoc.open(sourceReportFile, OpenReportOptions._openAsReadOnly);
ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream) reportClientDoc.getPrintOutputController().export(ReportExportFormat.PDF);
//Release report.
reportClientDoc.close();
Then Create a new file that will contain the exported result.
File file = new File(exportedFileName);
FileOutputStream fileOutputStream = new FileOutputStream(file);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(byteArrayInputStream.available());
int x = byteArrayInputStream.read(byteArray, 0, byteArrayInputStream.available());
byteArrayOutputStream.write(byteArray, 0, x);
byteArrayOutputStream.writeTo(fileOutputStream);
//Close streams.
byteArrayInputStream.close();
byteArrayOutputStream.close();
fileOutputStream.close();
ikvenu2000
Updated on July 29, 2020Comments
-
ikvenu2000 over 3 years
Can anyone guide me on how to export crystal reports into PDF in java?
I am using Crystal Report Server XI.
Thanks in advance.