如何在Codeigniter中将mySQL数据导出为PDF?

时间:2016-10-22 09:57:26

标签: php mysql codeigniter

我是Codeigniter的新手,我需要将mySQL数据导出为PDF文件。

我该怎么做?

1 个答案:

答案 0 :(得分:4)

here

下载库

图书馆 explanation

下载提取文件夹后你会找到两个文件,即class.ezpdf.php / cezpdf.php和class.pdf.php。现在将这两个.php文件放在应用程序/库中。要在CI中使这些工作,您将需要在cezpdf.php / class.ezpdf.php中进行修改。修改将在include语句中完成:

include_once(APPPATH . 'libraries/class.pdf.php');

现在转到你的控制器文件夹,然后创建一个新的文件名generate.php和pdf_helper.php。

pdf_helper.php:

<?php

function prep_pdf($orientation = 'portrait')
{
    $CI = & get_instance();

    $CI->cezpdf->selectFont(base_url() . '/fonts');    

    $all = $CI->cezpdf->openObject();
    $CI->cezpdf->saveState();
    $CI->cezpdf->setStrokeColor(0,0,0,1);
    if($orientation == 'portrait') {
        $CI->cezpdf->ezSetMargins(50,70,50,50);
        $CI->cezpdf->ezStartPageNumbers(500,28,8,'','{PAGENUM}',1);
        $CI->cezpdf->line(20,40,578,40);
        $CI->cezpdf->addText(50,32,8,'Printed on ' . date('m/d/Y h:i:s a'));
        $CI->cezpdf->addText(50,22,8,'PDF Tutorial');
    }
    else {
        $CI->cezpdf->ezStartPageNumbers(750,28,8,'','{PAGENUM}',1);
        $CI->cezpdf->line(20,40,800,40);
        $CI->cezpdf->addText(50,32,8,'Printed on ' . date('m/d/Y h:i:s a'));
        $CI->cezpdf->addText(50,22,8,'PDF Tutorial');
    }
    $CI->cezpdf->restoreState();
    $CI->cezpdf->closeObject();
    $CI->cezpdf->addObject($all,'all');
}

?>

generate.php:

<?php

class Generate extends CI_Controller
{

    function Generate()
    {
        parent::__construct();
        $this->load->database();
        $this->load->helper('url');
    }


    function create()
    {

                $this->load->library('cezpdf');

        $this->cezpdf->ezText('PDF REPORT OF LOGIN TABLE', 12, array('justification' => 'center'));
        $this->cezpdf->ezSetDy(-10);
                $i=1;
                $content="";

                $fname="";
                $query = $this->db->query('SELECT * FROM table_name');
                $num = $query->num_fields();
                $farr=array();

                while($i <= $num){
                    $test = $i;
                    $value = $this->input->post($test);

                    if($value != ''){
                            $fname= $fname." ".$value;
                            array_push($farr, $value);

                        }
                     $i++;
                }

                $fname = trim($fname);

                $fname=str_replace(' ', ',', $fname);
                $this->db->select($fname);
                $query = $this->db->get('table_name');
                $result = $query->result();

                foreach ($farr as $j)
                {

                    $content= strtoupper($j)."\n\n";
                    foreach($result as $res){
                       $content = $content.$res->$j."\n";
                    }

                      $this->cezpdf->ezText($content, 10);

                       $this->cezpdf->ezStream();
                 }

    }

在上面,我们要做的第一件事是加载R&amp; OS库以供使用。接下来,我们使用ezText()函数为文档创建标题。此函数将显示它将显示为第一个参数的文本,该文本的大小以及可选的其他配置选项数组。

在白人节奏之后,我们将文档的其余内容放在一个名为$ content的变量中,并再次使用ezText()函数将其添加到我们的文档中。最后,我们使用ezStream()函数创建我们的文档,该函数实际创建文档并将其发送给用户,提示他们查看/下载生成的PDF文档。