【问题标题】:Export Crystal reports to PDF in java在 Java 中将 Crystal 报表导出为 PDF
【发布时间】:2010-07-05 10:31:59
【问题描述】:

谁能指导我如何在java中将水晶报表导出为PDF?

我正在使用 Crystal Report Server XI。

提前致谢。

【问题讨论】:

    标签: java crystal-reports


    【解决方案1】:

    我在此处记录了我对 SAP Crystal Reports for Java 运行时组件的尖峰测试 - Java 报告组件 (JRC):

    http://www.javathinking.com/2011/09/using-crystal-reports-java-api-to.html

    我使用的是 Business Objects 4.0,可能最重要的事情是获取 Java 库 - 从以下网址下载“SAP Crystal Reports for Java 运行时组件 - Java Reporting Component (JRC)”:

    http://www.businessobjects.com/campaigns/forms/downloads/crystal/eclipse/datasave.asp

    网络上有很多示例可供查看 - 您可能会在这里找到一些帮助: http://wiki.sdn.sap.com/wiki/display/BOBJ/Java+Reporting+Component++SDK+Samples

    一个很好的例子是“JRC EXPORT REPORT”: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/40d580ce-bd66-2b10-95b0-cc4d3f2dcaef

    就我而言,我不需要服务器 - 我只使用了 JAR 文件、RPT 文件、数据库和我的 CRConfig.xml 文件:

    <?xml version="1.0" encoding="utf-8"?>
    <CrystalReportEngine-configuration>
        <reportlocation>..</reportlocation>
        <timeout>0</timeout>
        <ExternalFunctionLibraryClassNames>
            <classname></classname>
        </ExternalFunctionLibraryClassNames>
    </CrystalReportEngine-configuration>
    

    【讨论】:

    • 您的第一个链接似乎已损坏
    【解决方案2】:

    这更适用于自动化流程。

    首先从水晶中获取原始字节导出:

     ReportClientDocument reportClientDoc = new ReportClientDocument();
        reportClientDoc.open(sourceReportFile, OpenReportOptions._openAsReadOnly);
    
        ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream) reportClientDoc.getPrintOutputController().export(ReportExportFormat.PDF);
    
        //Release report.
        reportClientDoc.close();
    

    然后创建一个包含导出结果的新文件。

        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();
    

    【讨论】:

      【解决方案3】:

      您应该拥有 Java 版本的 Crystal Reports SDK。 Crystal Reports XI 官方指南一书提供了必要的详细信息。

      您可以使用 Java 中的任何一种 PDF 库来执行此操作。据我所知,有两个最受欢迎的库,如iTextApache's PDFBox

      【讨论】:

      • 我的公司仅使用 Crystal Reports XI。有没有人有示例代码 sn-ps 用于在 java 中将 Crystal 报表转换为 PDF
      • 谁能告诉我如何配置CRConfig.xml文件以在java中将水晶报告导出为PDF
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      相关资源
      最近更新 更多