点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
问题:我可以使用Java独立程序(而不使用Web应用程序或服务器)将Crystal报表导出为pdf。
要求:我想使用独立的Java应用程序将Crystal报表导出为pdf文件。 我可以在桌面上使用SAP Crystal Report 2013做到这一点。 对于Java,我已经下载了crjava-runtime_12.2.220库并使用以下代码。
导入com.crystaldecisions.reports.sdk。*; 导入com.crystaldecisions.sdk.occa.report.lib。*; 导入com.crystaldecisions.sdk.occa.report.exportoptions。*; //Java导入。 导入java.io. *; 公共类JRCExportReport { 静态最终字符串REPORT_NAME =" C:/abc.rpt"; 静态最终字符串EXPORT_FILE =" C:/abc.pdf"; 公共静态void main(String [] args){ 尝试{ //打开报告。 ReportClientDocument reportClientDoc = new ReportClientDocument(); reportClientDoc.open(REPORT_NAME,ReportExportFormat._PDF); ///注意:如果需要参数或数据库登录凭据,则需要先进行设置。 //调用PrintOutputController的export()方法。 //导出报告并获取可以写入磁盘的输入流。 //有关受支持的导出格式枚举的更多信息,请参见《 Java Reporting Component开发人员指南》 //与JRC一起使用。 ByteArrayInputStream byteArrayInputStream =(ByteArrayInputStream)reportClientDoc.getPrintOutputController()。export(ReportExportFormat.PDF); //发布报告。 reportClientDoc.close(); //使用Java I/O库将导出的内容写入文件系统。 byte byteArray [] = new byte [byteArrayInputStream.available()]; //创建一个包含导出结果的新文件。 文件文件=新文件(EXPORT_FILE); FileOutputStream fileOutputStream =新的FileOutputStream(file); ByteArrayOutputStream byteArrayOutputStream =新的ByteArrayOutputStream(byteArrayInputStream.available()); int x = byteArrayInputStream.read(byteArray,0,byteArrayInputStream.available()); byteArrayOutputStream.write(byteArray,0,x); byteArrayOutputStream.writeTo(fileOutputStream); //关闭流。 byteArrayInputStream.close(); byteArrayOutputStream.close(); fileOutputStream.close(); System.out.println("已成功将报告导出到" + EXPORT_FILE); } catch(ReportSDKException ex){ ex.printStackTrace(); } catch(Exception ex){ ex.printStackTrace(); } } } 在线获取以下异常(reportClientDoc.open(REPORT_NAME,ReportExportFormat._PDF);): log4j:WARN找不到记录器的附加程序(com.crystaldecisions.reports.common.engine.config)。 log4j:WARN请正确初始化log4j系统。 com.crystaldecisions.sdk.occa.report.lib.ReportSDKException:索引:0,大小:0 ----错误代码:-2147467259错误代码名称:失败 在com.businessobjects.reports.sdk.JRCCommunicationAdapter。(源文件:285) 在com.businessobjects.sdk.erom.jrc.a。 (SourceFile:43) 在com.businessobjects.sdk.erom.jrc.ReportAgentFactory.createAgent(SourceFile:46) 在com.crystaldecisions.proxy.remoteagent.RemoteAgent $ a。 (SourceFile:703) 在com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:662) 在com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:632) 在com.crystaldecisions.sdk.occa.report.application.ClientDocument.if(SourceFile:504) 在com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(SourceFile:669) 在com.crystaldecisions.reports.sdk.ReportClientDocument.open(SourceFile:80) 在JRCExportReport.main(JRCExportReport.java:33) 引起原因:java.lang.IndexOutOfBoundsException:索引:0,大小:0 在java.util.ArrayList.rangeCheck(未知来源) 在java.util.ArrayList.get(未知来源) 在com.crystaldecisions12.reports.dataengine.h.if(SourceFile:2219) 在com.crystaldecisions12.reports.dataengine.h.i(SourceFile:255) 在com.crystaldecisions12.reports.dataengine.h.a(SourceFile:2065) 在com.crystaldecisions12.reports.dataengine.h.try(SourceFile:1878) 在com.crystaldecisions12.reports.reportdefinition.ReportDocument.a(SourceFile:2378) 在com.crystaldecisions12.reports.reportdefinition.ReportDocument.a(SourceFile:1716) 在com.crystaldecisions12.reports.common.Document.a(SourceFile:689) 在com.crystaldecisions12.reports.common.Document.do(SourceFile:651) 在com.crystaldecisions12.reports.reportdefinition.ReportDocument.a(SourceFile:2325) 在com.crystaldecisions12.reports.reportdefinition.ReportDocument.a(SourceFile:1716) 在com.crystaldecisions12.reports.common.Document.a(SourceFile:521) 在com.crystaldecisions12.reports.common.Document.loadDocument(SourceFile:437) 在com.crystaldecisions12.reports.reportdefinition.ReportDocument.loadDocument(SourceFile:1516) 在com.crystaldecisions12.reports.reportdefinition.ReportDocument.LoadDocument(SourceFile:1479) 在com.businessobjects.reports.reportconverter.v12.c.a(SourceFile:59) 在com.businessobjects.reports.reportconverter.v12.V12SaveLoader.a(SourceFile:159) 在com.businessobjects.reports.loader.ReportLoader.a(SourceFile:205) 在com.businessobjects.reports.sdk.JRCReportLoader.a(SourceFile:137) 在com.businessobjects.reports.sdk.JRCReportLoader.a(SourceFile:76) 在com.businessobjects.reports.sdk.requesthandler.ReportDocumentRequestHandler.a(SourceFile:137) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter。 (源文件:228) ...另外9个
尝试以下示例:
https://wiki.scn.sap.com/wiki/display/BOBJ/Java+%28Crystal+Reports+for+Eclipse%29+SDK
https://wiki.scn.sap.com/wiki/display/ BOBJ/Java +%28Crystal + Reports + for + Eclipse%29 + SDK
一周热门 更多>