我是Codeigniter的新手,我需要将mySQL数据导出为PDF文件。
我该怎么做?
答案 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文档。