Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php dompdf定制问题_Php_Zip_Dompdf - Fatal编程技术网

Php dompdf定制问题

Php dompdf定制问题,php,zip,dompdf,Php,Zip,Dompdf,我正试图做一些有点奇怪的事情。在我的服务器上,dompdf从存储在服务器某处的php/html文件生成一个pdf文件(用于请求该文件的客户端)。这很酷,因为它不会让服务器陷入pdf文件的泥潭,但我的问题是,我希望有人能够导出一组pdf文件,并在zip文件或类似文件中接收它们 有没有办法让dompdf根据php/html文件的文件名将一组PDF文件导出到zip文件或其他文件中,以便请求它的人可以下载它 如果需要更多信息,请告诉我 谢谢 DOMPDF一次只处理一个文件。但是您可以编写一个PHP脚本来

我正试图做一些有点奇怪的事情。在我的服务器上,dompdf从存储在服务器某处的php/html文件生成一个pdf文件(用于请求该文件的客户端)。这很酷,因为它不会让服务器陷入pdf文件的泥潭,但我的问题是,我希望有人能够导出一组pdf文件,并在zip文件或类似文件中接收它们

有没有办法让dompdf根据php/html文件的文件名将一组PDF文件导出到zip文件或其他文件中,以便请求它的人可以下载它

如果需要更多信息,请告诉我


谢谢

DOMPDF一次只处理一个文件。但是您可以编写一个PHP脚本来接受文件列表,然后使用DOMPDF分别解析每个文件。由于DOMPDF可以将呈现的PDF作为字符串返回,因此可以将每个文件写入临时目录,然后在完成后将结果存档。或者,如果您使用的是dompdf.php,则可以使用exec()在类似的循环中处理每个HTML文档

下面是一个简单的示例,展示了一种实现所需的方法:

$files_html = array('docs/file1.html','docs/file2.html');
foreach ($files_html as $file) {
  exec('dompdf.php ' . $file);
}
$zip = new ZipArchive();
$zip->open('docs/pdfs.zip', ZipArchive::CREATE);
$files_pdf = glob('docs/*.pdf');
foreach ($files_pdf as $file) {
  $zip->addFile($file);
}
$zip->close();
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=pdfs.zip);
header('Content-Transfer-Encoding: binary');
readfile('docs/pdfs.zip');

在和中有一些关于使用DOMPF批处理文件的讨论。

DOMPF允许将pdf作为二进制数据输出。然后,您可以将其添加到zip中,并重复此操作,直到处理完所有文件组。您可以在迭代中导出文件,然后仅对其进行压缩吗?据我所知,dompdf不进行任何导出,它只是当场将文件转换为PDF…我不想压缩html文件。