使用TCPDF生成多个pdf并保存在zip中会输出损坏的zip文件

时间:2017-07-20 18:40:36

标签: php pdf tcpdf

我使用TCPDF生成带循环的PDF,PDF创建完美,没有错误。我正在使用wamp服务器,因此文件存储在C:\ wamp64 \ tmp中,现在我正在尝试以zip形式添加生成的文件。

这是我的代码。我忽略了pdf的内容以节省空间,因为我提到PDF创建工作正常。

<?php
//$tmp is the path of temp folder C:\wamp64\tmp
$tmp = ini_get('upload_tmp_dir');

//The number of files that will be created
$num_contactos = sizeof($contactos);

$file = $tmp.'/my-pdf.zip';
$zip = new ZipArchive();
$zip->open($file, ZipArchive::OVERWRITE);

for ($i = 0; $i < $num_contactos; $i++) {

    // create new PDF document
    $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

    // add a page
    $pdf->AddPage();

    $html = 'PAGE CONTENT';

    // set core font
    $pdf->SetFont('helvetica', '', 10);

    // output the HTML content
    $pdf->writeHTML($html, true, 0, true, true);

    // reset pointer to the last page
    $pdf->lastPage();

    //PDF file is created in temp folder. This works fine.
    $pdf->Output($tmp.'/POG - '.$i.'.pdf', 'F');

    // ADD PDF FILE TO ZIP
    $zip->addFile($tmp.'/POG - '.$i.'.pdf', 'POG - '.$i.'.pdf');
}
//After I loop ends, I close the zip file and force download
$zip->close();
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="my-pdf.zip"');
readfile('my-pdf.zip');
?>

zip文件已下载但我无法打开它,因为它已损坏。可能导致这个问题的原因是什么?

0 个答案:

没有答案