【问题标题】:How to create a PDF using FPDF by using foreach array values PHP?如何通过使用 foreach 数组值 PHP 使用 FPDF 创建 PDF?
【发布时间】:2016-10-23 17:01:27
【问题描述】:

我是使用 FPDF 的新手。我面临一个真正的问题。我有多个数据库值,它们存储在这样的数组中。

foreach($values as $value){
$arr1[]=$value['user_name'];
$arr2[]=$value['last_name'];
} 

$value['user_name'] is database table1, $value['last_name'] is database table2

我想使用这个值创建 PDF 表。 谁能指导我如何解决这个真正的问题?

【问题讨论】:

    标签: php arrays pdf fpdf


    【解决方案1】:

    您需要即时创建表格,还是可以使用 PDF 表单并通过代码填写,完成后将其合并为静态 PDF?

    如果表单对你有用的话....

    1) 创建 PDF 表单。我用 OpenOffice 来做这件事...... 2) 获取form的FDF模板文件。在 Linux 机器上(我使用 Mint,但 Mint、Ubuntu 或 Debian 都应该这样工作)安装 pdftk 包并使用 pdftk 命令生成 FDF 模板文件

    pdftk demo3.pdf generate_fdf
    

    您应该会在生成的输出文件中看到您的表单数据字段名称。

    3) 用 PHP 填写,可能会在其上“标记”图像或其他 PDF 文件(即,制作带有“签名”的证书)并将其发送给客户端。

    <?php
    
    include('./fpdf/fpdf.php');
    
    // set up a bunch of temp file names
    $FDFfile = tempnam(sys_get_temp_dir(), gethostname());
    $tempPDF=tempnam(sys_get_temp_dir(), gethostname());
    $PDFfile=tempnam(sys_get_temp_dir(), gethostname());
    $ImageFileName=tempnam(sys_get_temp_dir(), gethostname());
    $ImagePDFfilename=tempnam(sys_get_temp_dir(), gethostname());
    
    // build our FDF data file string
    //
    // bring in top part of FDF file
    $dataFile=file_get_contents("header.fdf");
    // insert our participants name in the right spot
    $dataFile.="<< /T (part_name) /V (".$_POST['lis_person_name_full'].") >> \n";
    // finish the FDF file
    $dataFile.=file_get_contents("footer.fdf");
    
    // put the FDF data into the tempfile
    file_put_contents($FDFfile, $dataFile);
    
    // use pdftk to merge data/pdf form and then
    // flatten to prevent editing
    exec("pdftk demo3.pdf fill_form ".$FDFfile." output ".$tempPDF." flatten");
    
    // create a new PDF file wtih our image code on it
    $pdf = new FPDF();
    $pdf->AddPage();
    // put  image in bottom right corner of US letter paper
    $pdf->Image($ImageFileName, 183, 250, 25, 25, 'PNG' );
    $pdf->Output("F",$ImagePDFfilename);
    // use pdftk to "stamp" the contents of one pdf onto the other
    exec("pdftk ".$tempPDF." stamp ".$ImagePDFfilename." output ".$PDFfile);
    
    // send final pdf file to browser
    header('Content-Type: application/pdf');
    header('Content-Disposition: inline; filename=certificate.pdf' );
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($PDFfile));
    readfile($PDFfile);
    
    // get rid of temp files
    unlink($FDFfile);
    unlink($tempPDF);
    unlink($PDFfile);
    unlink($ImageFileName);
    unlink($ImagePDFfilename);
    exit;
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 2013-11-12
      • 2016-01-07
      • 2011-05-20
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      相关资源
      最近更新 更多