此包已被废弃,不再维护。未建议替代包。

使用 JasperReports 在 PHP 中创建报告

安装量: 10,281

依赖关系: 1

建议者: 0

安全性: 0

星标: 11

关注者: 4

分支: 7

开放问题: 0

语言:HTML

类型:yii2-extension

v1.1.1 2018-06-26 18:40 UTC

This package is auto-updated.

Last update: 2022-02-01 12:56:26 UTC


README

Latest Stable Version Total Downloads License Build Status Scrutinizer Code Quality

使用 JasperReports 6 库通过 JasperStarter v3 命令行工具生成报告的包。

##安装

composer require chrmorandi/jasper

##简介

此包旨在成为编译和处理 JasperReports (.jrxml & .jasper 文件) 的解决方案。

###为什么?

JasperReports 是最佳的开放源代码报告解决方案。

生成 HTML + CSS 以制作 PDF。别再想了,这没有意义! :p

###我能用这个做什么?

嗯,一切。JasperReports 是报告和 BI 的强大工具。

根据他们的网站

JasperReports 库是全球最受欢迎的开放源代码报告引擎。它是完全用 Java 编写的,能够使用来自任何类型数据源的数据,并生成像素完美的文档,可以查看、打印或导出为各种文档格式,包括 HTML、PDF、Excel、OpenOffice 和 Word。

我建议使用 Jaspersoft Studio 来构建你的报告,将其连接到你的数据源(例如 MySQL),遍历结果,并将其输出为 PDF、XLS、DOC、RTF、ODF 等。

你可以用 Jaspersoft 做什么

  • 图形设计环境
  • 像素完美的报告生成
  • 输出到 PDF、HTML、CSV、XLS、TXT、RTF 等

##示例

###《Hello World》示例。

前往存储库根目录中的示例目录(vendor/chrmorandi/yii2-jasper/examples)。使用 iReport 或你喜欢的文本编辑器打开 hello_world.jrxml 文件,查看源代码。

##要求

##安装

###Java

检查你是否已经安装了 Java

$ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

如果你得到

command not found: java

然后使用以下方法安装它:(Ubuntu/Debian)

    $ sudo apt-get install default-jdk

现在再次运行 java -version 并检查输出是否正常。

###Composer

如果你没有安装 Composer,请安装它。

composer require chrmorandi/yii2-jasper

或者在你的 composer.json 文件中添加

{
    "require": {
        "chrmorandi/yii2-jasper": "*"
    }
}

然后只需运行

composer update

这样就完成了。

###将组件添加到配置中

使用数据源名称 (DSN) 格式的连接信息与数据库进行连接。请参阅 https://php.ac.cn/manual/pt_BR/pdo.construct.php

return [
    ...
    'components'          => [
        'jasper' => [
            'class' => 'chrmorandi\jasper\Jasper::className()',
            'redirect_output' => false, //optional
            'resource_directory' => false, //optional
            'locale' => 'pt_BR', //optional
            'db' => [
                'dsn' =>'psql:host=localhost;port=5432;dbname=myDatabase',
                'username' => 'username',
                'password' => 'password',
                //'jdbcDir' => './jdbc', **Defaults to ./jdbc
                //'jdbcUrl' => 'jdbc:postgresql://"+host+":"+port+"/"+dbname',
            ]
        ]
        ...
    ],
    ...
];

###使用

use chrmorandi\jasper\Jasper;

public function actionIndex()
{
    // Set alias for sample directory
    Yii::setAlias('example', '@vendor/chrmorandi/yii2-jasper/examples');

    /* @var $jasper Jasper */
    $jasper = Yii::$app->jasper;

    // Compile a JRXML to Jasper
    $jasper->compile(Yii::getAlias('@example') . '/hello_world.jrxml')->execute();

    // Process a Jasper file to PDF and RTF (you can use directly the .jrxml)
    $jasper->process(
        Yii::getAlias('@example') . '/hello_world.jasper', 
        ['php_version' => 'xxx'],
        ['pdf', 'rtf'],
        false, 
        false 
    )->execute();

    // List the parameters from a Jasper file.
    $array = $jasper->listParameters(Yii::getAlias('@example') . '/hello_world.jasper')->execute();

    // return pdf file
    Yii::$app->response->sendFile(Yii::getAlias('@example') . '/hello_world.pdf');

}

###MySQL

我们将在 /src/JasperStarter/jdbc/ 目录下提供 MySQL 连接器(版本 v5.1.39)。

### PostgreSQL

我们将在 /src/JasperStarter/jdbc/ 目录下提供 PostgreSQL(版本 v9.4-1208)。

## 性能

取决于复杂度、数据量以及机器资源。

可以在后台生成报告。

## 许可证

MIT