dompdf Вопрос настройки - PullRequest
0 голосов
/ 17 июня 2011

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

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

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

Спасибо !!

1 Ответ

1 голос
/ 20 июня 2011

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 для пакетной обработки файлов процессов на форуме и .

.
...