iReport通过电子邮件发送生成的PDF报告

时间:2016-08-29 07:48:11

标签: php laravel email jasper-reports

我正在使用jasper报告iReport 5.6.0为公司创建动态报告。 我将报告工具与我的php web应用程序集成,它正在运行。我在html模板中创建了导出选项,在 IFRAME

中创建了预览按钮

我不想将iframe放在php变量中并将其发送到电子邮件功能。我可以生成报告为可下载的pdf,xls ..文件,我可以自动发送此文件作为电子邮件的附件吗?

我正在使用laravel框架,即用于生成和导出报告的代码:

    use JasperPHP\JasperPHP;

public function xmlToPdf()
    {
        $output = public_path() . '/report/'.time().'_CancelAck';
        $output = public_path() . '/report/'.time().'_CancelAck';
        $ext = "pdf";
        $data_file = public_path() . '/report/CancelAck.xml';
        $driver = 'xml';
        $xml_xpath = '/CancelResponse/CancelResult/ID';

        \JasperPHP::process(
            public_path() . '/report/CancelAck.jrxml', 
            $output, 
            array($ext),
            array(),
            array('data_file' => $data_file, 'driver' => $driver, 'xml_xpath' =>   $xml_xpath),                   
            false,
            false
        )->execute();

        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.time().'_CancelAck.'.$ext);
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Content-Length: ' . filesize($output.'.'.$ext));
        flush();
        readfile($output.'.'.$ext);
        unlink($output.'.'.$ext);

    }

是否有任何解决方案可以将此报告导出为电子邮件附件(php)?

0 个答案:

没有答案