定制 guzinski/jasperphp 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

guzinski/jasperphp

Composer 安装命令:

composer require guzinski/jasperphp

包简介

Pure PHP library to read JRXML files made with 'JasperSoft Studio' and generate reports in PDF

README 文档

README

Project to generate reports created with the JasperSoft Studio application
Pure PHP library, without a java server or Jasper Server

Consider donating funds to support us Donate

Supported tags/components

TAG/component Status TAG/component Status
Basic elements
Text Field OK Static Text OK
Image OK Break OK
Rectangle OK Line OK
SubReport* OK Barcode OK
Composite elements
Page Number OK Total Pages OK
Corrent Date OK Page X of Y OK
Bands
Title OK Page Header
Detail OK Column Header OK
Column Footer OK Page Footer OK
Background OK
* Subreports are supported recursively and unlimited

Other features

  • active record

  • Generic sample

    <?php
    use JasperPHP\Report;
    use JasperPHP\Report2XLS;
    use JasperPHP\ado\TTransaction;
    use JasperPHP\ado\TLoggerHTML;
    
    //use PHPexcel as PHPexcel;
    /**
    * classe TJasper
    *
    * @author   Rogerio Muniz de Castro <rogerio@quilhasoft.net>
    * @version  2015.03.11
    * @access   restrict
    * 
    * 2015.03.11 -- create
    **/
    class TJasper
    {
        private $report;
        private $type;
    
        /**
        * method __construct()
        * 
        * @param $jrxml = a source xmlr filename
        * @param $param = a array whith params
        */
        public function __construct($jrxml,array $param)
        {
            $xmlFile=  $jrxml;
            $this->type = (array_key_exists('type',$param))?$param['type']:'pdf';
            error_reporting(0);
            switch ($this->type)
            {
                case 'pdf': 
                    $this->report =new JasperPHP\Report($xmlFile,$param);
                    JasperPHP\Pdf::prepare($this->report);
                    break;
                case 'xls':
                    JasperPHP\Excel::prepare();
                    $this->report =new JasperPHP\Report2XLS($xmlFile,$param);
                    
                    break;
            }
        }
        
        /**
        * method outpage()
        * 
        * @param $type = a type of output. ALERT: xls is experimental
        */
    
        public function outpage($type='pdf'){
            $this->report->generate();
            $this->report->out();
            switch ($this->type)
            {
                case 'pdf':
                    $pdf  = JasperPHP\Pdf::get();
                    $pdf->Output('Relatorio.pdf',"I");
                    break;
                case 'xls':
                    header('Content-Type: application/vnd.ms-excel');
                    header('Content-Disposition: attachment;filename="01simple.xls"');
                    header('Cache-Control: max-age=0');
                    // If you're serving to IE 9, then the following may be needed
                    header('Cache-Control: max-age=1');
                    // If you're serving to IE over SSL, then the following may be needed
                    header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
                    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
                    header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
                    header ('Pragma: public'); // HTTP/1.0
                    $objWriter = PHPExcel_IOFactory::createWriter($this->report->wb, 'Excel5');
                    $objWriter->save('php://output');
                break;
            }
            
        }
        /**
        * method setVariable()
         * insert variable into report after output
        * 
        * @param $name = name of variable
        * @param $value = value of variable
        */
        public function setVariable($name,$value){
            $this->report->arrayVariable[$name]['initialValue'] = $value ;
        }
    }
    require('autoloader.php') ;
    require('../../tecnickcom/tcpdf/tcpdf.php'); // point to tcpdf class previosly instaled , 
                                                // on composer instalation is not necessaty 
    
    TTransaction::open('dev');
    $jasper = new TJasper('template.jrxml',$_GET);
    $jasper->outpage();
    ?>

    Requirements

    • PHP 5.2+
    • "tecnickcom/tcpdf":"6.2.*"

    How to use this sample

    Define database conections params into file config\dev.ini
    View file src\ado\TConection.php to define database type
    Sample URL:
    http://localhost/vendor/quilhasoft/JasperPHP/TJasper.class.php?param1=foo&param2=bar
    URL params passed into URL are the params defined into xmlr file.

    Using composer

    Add "quilhasoft/jasperphp":"dev-master" into your composer config file and update/install

    Live samples

    • A basic test: Here
    • A burn test, 201 pages, hosted in a default hostgator server: Here
    • Brasilian payment method "boleto" in "carne":Here
    • Brasilian payment method "boleto" in A4 :Here
      ** Brasilian boleto project disponible in QuilhaSoft/JasperPHP-OpenBoleto.

    License

    • MIT License

    统计信息

    • 总下载量: 25
    • 月度下载量: 0
    • 日度下载量: 0
    • 收藏数: 0
    • 点击次数: 0
    • 依赖项目数: 0
    • 推荐数: 0

    GitHub 信息

    • Stars: 0
    • Watchers: 0
    • Forks: 32
    • 开发语言: PHP

    其他信息

    • 授权协议: MIT
    • 更新时间: 2019-12-19

    承接程序开发

    PHP开发

    VUE

    Vue开发

    前端开发

    小程序开发

    公众号开发

    系统定制

    数据库设计

    云部署

    网站建设

    安全加固