jheferson-br / phpjasper
一个简单易实现的PHP报告生成器
4.0.6
2022-06-06 11:27 UTC
README
一个简单易实现的PHP报告生成器
关于
PHPJasper 是使用 PHP 编译和处理 JasperReports (.jrxml & .jasper 文件) 的最佳解决方案,简而言之:使用 PHP 生成报告。
安装
如果您还没有,请安装 Composer。
composer require jheferson-br/phpjasper
或者,在您的文件 'composer.json' 中添加
{ "require": { "jheferson-br/phpjasper": "^3.2.7" } }
然后只需运行
composer install
就完成了。
示例
编译
首先,我们需要将我们的 JRXML
文件编译成一个 JASPER
二进制文件。我们只需做一次。
注意 1:如果您使用的是 Jaspersoft Studio,则无需此步骤。您可以直接在程序内进行编译。
require __DIR__ . '/vendor/autoload.php'; $input = __DIR__ . '/vendor/geekcom/phpjasper/examples/hello_world.jrxml'; $jasper = new PHPJasper; $jasper->compile($input)->execute();
此命令将 hello_world.jrxml
源文件编译成 hello_world.jasper
文件。
处理
现在让我们处理之前编译的报告
require __DIR__ . '/vendor/autoload.php'; $input = __DIR__ . '/vendor/geekcom/phpjasper/examples/hello_world.jasper'; $output = __DIR__ . '/vendor/geekcom/phpjasper/examples'; $options = [ 'format' => ['pdf', 'rtf'] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
现在检查示例文件夹! :) 很棒,对吧?您现在有 2 个文件,hello_world.pdf
和 hello_world.rtf
。
在 src/JasperPHP.php
中查看 methods compile
和 process
以获取更多详细信息
列出参数
查询 Jasper 文件以检查给定 Jasper 报告文件中可用的参数
require __DIR__ . '/vendor/autoload.php'; $input = __DIR__ . '/vendor/geekcom/phpjasper/examples/hello_world_params.jrxml'; $jasper = new PHPJasper; $output = $jasper->listParameters($input)->execute(); foreach($output as $parameter_description) print $parameter_description . '<pre>';
使用数据库生成报告
我们还可以指定数据库连接的参数
require __DIR__ . '/vendor/autoload.php'; $input = '/your_input_path/your_report.jasper'; $output = '/your_output_path'; $options = [ 'format' => ['pdf'], 'locale' => 'en', 'params' => [], 'db_connection' => [ 'driver' => 'postgres', //mysql, .... 'username' => 'DB_USERNAME', 'password' => 'DB_PASSWORD', 'host' => 'DB_HOST', 'database' => 'DB_DATABASE', 'port' => '5432' ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
注意 2
有关完整地区列表,请参阅 支持的地区
使用 MSSQL 数据库
require __DIR__ . '/vendor/autoload.php'; $input = '/your_input_path/your_report.jasper or .jrxml'; $output = '/your_output_path'; $jdbc_dir = __DIR__ . '/vendor/geekcom/phpjasper/bin/jaspertarter/jdbc'; $options = [ 'format' => ['pdf'], 'locale' => 'en', 'params' => [], 'db_connection' => [ 'driver' => 'generic', 'host' => '127.0.0.1', 'port' => '1433', 'database' => 'DataBaseName', 'username' => 'UserName', 'password' => 'password', 'jdbc_driver' => 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc_url' => 'jdbc:sqlserver://127.0.0.1:1433;databaseName=Teste', 'jdbc_dir' => $jdbc_dir ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
从 XML 生成报告
require __DIR__ . '/vendor/autoload.php'; $input = '/your_input_path/your_report.jasper'; $output = '/your_output_path'; $data_file = __DIR__ . '/your_data_files_path/your_xml_file.xml'; $options = [ 'format' => ['pdf'], 'params' => [], 'locale' => 'en', 'db_connection' => [ 'driver' => 'xml', 'data_file' => $data_file, 'xml_xpath' => '/your_xml_xpath' ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
从 JSON 生成报告
require __DIR__ . '/vendor/autoload.php'; $input = '/your_input_path/your_report.jasper'; $output = '/your_output_path'; $data_file = __DIR__ . '/your_data_files_path/your_json_file.json'; $options = [ 'format' => ['pdf'], 'params' => [], 'locale' => 'en', 'db_connection' => [ 'driver' => 'json', 'data_file' => $data_file, 'json_query' => 'your_json_query' ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();