hboie/jasper-report-bundle

Symfony 2-5 / Symfony Flex Bundle 集成 Jaspersoft REST v2 客户端 (jaspersoft/rest-client)

安装次数: 6,154

依赖项: 0

建议者: 0

安全性: 0

星标: 5

关注者: 2

分支: 2

开放问题: 1

类型:symfony-bundle

v1.6 2021-11-08 22:15 UTC

This package is auto-updated.

Last update: 2024-09-29 04:25:43 UTC


README

JasperReportBundle 需要jaspersoft/rest-client 并在 Symfony 服务容器中提供 JasperReport-Client 服务。

使用 Symfony Flex 安装(4 / 5)
Symfony 4 / 5 中的基本用法
使用 Symfony 2 / 3 安装
Symfony 2 / 3 中的基本用法
搜索资源命令
导出资源命令
导入资源命令
在不同服务器之间复制资源
附加配置选项

使用 Symfony Flex 安装(4 / 5)

1 将捆绑包添加到 composer.json

    composer require hboie/jasper_report_bundle

2 捆绑包将被自动注册,并执行配方,在 config/packages 目录中创建配置文件 jasper-report.yaml,并在 .env 文件中创建相应的条目

3 在文件 jasper-report.yaml 中更改标准设置

    hboie_jasper_report:
        host:      'https://:8080/jasperserver'
        username:  '%env(HBOIE_JASPER_REPORT_USERNAME)%'
        password:  '%env(HBOIE_JASPER_REPORT_PASSWORD)%'
        org_id:    '%env(HBOIE_JASPER_REPORT_ORGID)%'

和在 .env 文件中

HBOIE_JASPER_REPORT_USERNAME=jasperadmin
HBOIE_JASPER_REPORT_PASSWORD=jasperadmin
HBOIE_JASPER_REPORT_ORGID=

Symfony 4 / 5 中的基本用法

捆绑包支持自动装配,因此您可以直接在控制器中访问报告服务,例如。

    use Symfony\Component\HttpFoundation\Request;
    use Hboie\JasperReportBundle\ReportService;

    public function reportAction(Request $request, ReportService $reportService)
    {
        $report = $reportService->runReport('/reports/TestReport', 'pdf');

        $response = new Response($report);
        $response->headers->set('Content-type', 'application/pdf');
        $response->headers->set('Content-Disposition', 'inline; filename=Report.pdf');
        $response->headers->set('Cache-Control', 'must-revalidate');

        return $response;
    }

使用 Symfony 2 / 3 安装

1 将捆绑包添加到 composer.json

    composer require hboie/jasper_report_bundle

2 在 app/AppKernel.php 中注册捆绑包

    $bundle = [
            ...
    new Hboie\JasperReportBundle\HboieJasperReportBundle(),
            ...
    ];

3 向 app/config/config.yml 添加参数

    hboie_jasper_report:
        host:      "%jasper_host%"
        username:  "%jasper_user%"
        password:  "%jasper_password%"
        org_id:    "%jasper_org_id%"

4 在 app/config/paramters.yml.dist 中添加一个示例配置

    jasper_host: https://:8080/jasperserver
    jasper_user: jasperadmin
    jasper_password: jasperadmin
    jasper_org_id:

5 在 app/config/paramters.yml 中添加您自己的配置

Symfony 2 / 3 中的基本用法

您现在可以通过 Symfony 服务 jasperreport.client 访问 Client 对象

    $client = $this->get('jasperreport.client');

或直接使用 Symfony 服务 jasperreport.reportservice 访问 ReportService

    $report = $this->get('jasperreport.reportservice')->runReport('/reports/TestReport', 'pdf');

因此,返回 PDF 报告的控制器看起来像

    public function reportAction(Request $request)
    {
        $report = $this->get('jasperreport.reportservice')->runReport('/reports/TestReport', 'pdf');

        $response = new Response($report);
        $response->headers->set('Content-type', 'application/pdf');
        $response->headers->set('Content-Disposition', 'inline; filename=Report.pdf');
        $response->headers->set('Cache-Control', 'must-revalidate');

        return $response;
    }

搜索资源命令

使用 jasper:repository:search 可以在 JaserReport 服务器上搜索资源

    php bin/console jasper:repository:search <Citeria> <Detail>

标准:搜索标准
详细信息:显示详细信息(可选)
如果没有提供详细值,则仅列出资源的 uri。如果提供了大于 0 的详细值,将显示完整数据。

导出资源命令

使用 jasper:export:resource 命令,可以从 JasperServer 导出指定资源并将其下载到 zip 存档文件。

    php bin/console jasper:export:resource <UriOfResource> <Filename> <SkipDependentResources>

资源 Uri:要下载的资源 uri
文件名:本地目标文件的文件名
跳过依赖资源:如果设置为 "true",则跳过依赖资源,例如报告的数据库连接。

导入资源命令

使用 jasper:import:resource 命令,可以将先前导出的资源导入到 JasperServer。

    php bin/console jasper:import:resource <Filename> <IncludebrokenDependencies>

文件名:本地导入文件的文件名
包含损坏的依赖项:如果设置为 "true",对于具有损坏的依赖项的资源(例如,带有 SkipDependentResources 选项导出),导入过程将尝试通过使用本地资源解析依赖项来导入资源。

在不同服务器之间复制资源

您可以使用导出和导入资源命令将资源从一个服务器复制到另一个服务器,例如在应用程序的不同阶段之间。在导出资源时使用SkipDependentResources选项,在第二个服务器导入资源时使用IncludebrokenDependencies选项,以避免在目标服务器上覆盖数据库连接。

请注意,两个服务器上的导出和导入密钥已调整。有关如何使用自定义密钥的更多信息,请参阅https://community.jaspersoft.com/documentation/tibco-jasperreports-server-security-guide/v7/using-custom-keys

创建密钥存储

    keytool -genseckey -keystore ./mystore -storetype jceks -storepass <storepass> -keyalg AES -keysize 128 -alias importExportEncSecret -keypass <keypass>

将存储复制到JasperServer的buildomatic目录

    cp ./mystore /opt/jasperreports-server-cp-7.8.0/buildomatic/

以root用户身份进入buildomatic目录,并将密钥导入JasperServer

    ./js-import.sh --input-key --keystore ./mystore --storepass <storepass> --keyalias importExportEncSecret --keypass <keypass>

重启JasperServer应用程序或重启服务器

附加配置选项

    hboie_jasper_report:
        host:      'https://:8080/jasperserver'
        username:  '%env(HBOIE_JASPER_REPORT_USERNAME)%'
        password:  '%env(HBOIE_JASPER_REPORT_PASSWORD)%'
        org_id:    '%env(HBOIE_JASPER_REPORT_ORGID)%'
        timeout:   50

timeout: REST请求的超时时间(以秒为单位)