Преобразование HTML в PDF в PHP? - PullRequest
6 голосов
/ 28 декабря 2010

Я знаю, что есть много сообщений об этой проблеме. Но может кто-нибудь помочь мне настроить этот скрипт http://www.rustyparts.com/pdf.php для работы на моем локальном хосте. Я только что потратил всю неделю на эту проблему. У меня есть загрузка imagemagic , ghostscript, activeperl, ..., все, но все еще не может сделать простой пример для работы.

Ответы [ 4 ]

10 голосов
/ 28 декабря 2010

Используйте wkhtmltopdf через системный вызов. См. Как установить wkhtmltopdf на веб-сервере на основе Linux (виртуальный хостинг) для получения справки по установке.

wkhtmltopdf - программа командной строки который позволяет создать PDF из URL, локальный HTML-файл или стандартный ввод. Это производит PDF как сто с Движок WebKit.

Смотрите образец с этой страницы здесь .

php-код, протестированный в Ubuntu (вам нужно изменить /tmp/ на временный каталог в Windows):

$url = 'http://www.google.com';
$pdffile = tempnam('/tmp/', 'wkhtmltopdf_');
$handle = popen("wkhtmltopdf $url $pdffile 2>&1", "r");
while (!feof($handle)) 
  fread($handle, 4096);
pclose($handle);
header('Content-type: application/pdf');
$file = fopen($pdffile, "r");
while(!feof($file))
  print fread($file, 4096);
unlink($pdffile);

Существует также php-привязок , которая устраняет необходимость использовать системный вызов самостоятельно, что является более простым (и более безопасным!) Вариантом.

try {
    $wkhtmltopdf = new Core_Wkhtmltopdf(array('path' => APPLICATION_PATH . '/../public/uploads/'));
    $wkhtmltopdf->setTitle("Title");
    $wkhtmltopdf->setHtml("Content");
    $wkhtmltopdf->output(Wkhtmltopdf::MODE_DOWNLOAD, "file.pdf");
} catch (Exception $e) {
    echo $e->getMessage();
}
3 голосов
/ 28 декабря 2010

Простой, но мощный: http://html2pdf.fr/en/default

$html = file_get_contents("valid.html");
require_once("html2pdf.class.php");
$html2pdf = new HTML2PDF("P", "A4", "en", array(10, 10, 10, 10));
$html2pdf->setEncoding("ISO-8859-1");
$html2pdf->WriteHTML($html);
$html2pdf->Output("pdf/PDF.pdf", "F"); //output to file
$html2pdf->Output(); //output to browser
1 голос
/ 19 января 2011

DocRaptor.com - хороший вариант - он использует Prince XML, поэтому его качество лучше, чем у других инструментов, и это веб-приложение, поэтому скачивать нечего.Это также работает на любом языке.

0 голосов
/ 28 декабря 2010

Также есть еще одна библиотека, которая генерирует PDF-файлы: TCPDF . Красиво и довольно просто. Вы можете найти много примеров вокруг.

...