2011-06-16 19 views
0

Я пытаюсь оптимизировать dompdf, чтобы сделать что-то странное. Как и на моем сервере, dompdf создает файл pdf (для клиента, запрашивающего файл) из файла php/html, хранящегося где-то на сервере. Это классно, потому что он не заглушает сервер файлами PDF, но проблема заключается в том, что я хочу, чтобы кто-то мог экспортировать группу PDF-файлов и получать их в zip-файле или что-то подобное.dompdf Вопрос о настройке

Есть ли способ сделать dompdf экспортировать группу файлов PDF на основе файлов файлов php/html, в zip-файл или что-то такое, что человек, запрашивающий его, может загрузить его?

Дайте мне знать, если вам нужна дополнительная информация.

спасибо !!

+1

dompdf позволяет выводить pdf как двоичные данные. Затем вы можете добавить его в почтовый индекс и повторить это, пока не обработаете группу всех файлов. – hakre

+1

Можете ли вы экспортировать файлы на итерации, а затем просто закрепить их? –

+0

Ну, насколько мне известно, dompdf не экспортирует, он просто конвертирует файлы в PDF-файлы на месте ... и я не хочу зацикливать html-файлы. –

ответ

1

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'); 

Есть некоторые дискуссии с использованием DOMPDF для пакетной обработки файлов в forum и issue tracker.

Смежные вопросы