html2pdf включает html со страницы
Попытка сгенерировать PDF с html2pdf. Я могу создавать PDF-файлы из разметки внутри самой функции, но я действительно хочу включить разметку из отдельного файла с помощью URL-адреса.
Код, который у меня есть, генерирует PDF, но PDF пустой, что, я полагаю, означает, что HTML не извлекается из указанного URL.
require_once('html2pdf/html2pdf.class.php');
$mlsnum = $_GET['mlsnum'];
$url = 'http://www.nexthometown.com/components/com_singleprop/views/singleprop/tmpl/scripts/oh_usda.php?mlsnum='.$mlsnum;
$html2pdf = new HTML2PDF('P', 'A4', 'en');
$html2pdf->getHtmlFromPage($url);
$html2pdf->Output($mlsnum.'.pdf','D');
Кто-нибудь знаком с html2pdf? Я просмотрел документы и примеры, но не могу найти ссылку на этот метод. Я нашел здесь определение, но оно мало что говорит.
2 ответа
http://html2pdf.fr/en/default Эта библиотека была создана для помощи в создании PDF-файлов, а не для прямого преобразования HTML-страницы. Вы не можете использовать <html>
, <head>
, <body>
теги.
Вопрос довольно старый, но именно так я решил пустую страницу из метода getHtmlFromPage. Вместо того чтобы использовать метод getHtmlFromPage, я просто использовал curl, чтобы получить страницу, которую я хочу pdf, а затем передал ее в html2pdf в виде строки вуаля!
require_once 'path_to_html2pdf/html2pdf/html2pdf.class.php';
$str_url = 'http://your_url_here.php';
$str_content = get_page($str_url); //get_page can be file_get_contents if your server allows for that function to open a url or a curl function that im posting down below
try{
$html2pdf = new HTML2PDF('P', 'A4', 'es');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($str_content );
$html2pdf->Output('your_file_name.pdf', 'D'); //The 'D' option downloads the pdf instead of just showing it on screen
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
//Here is the curl function for get_page
function get_page($str_url){
if(strpos($str_url, 'http://') === false){
return file_get_contents($str_url);
}else{
if(ini_get('allow_url_fopen')){
return file_get_contents($str_url);
}else{
$curl = curl_init();
curl_setopt ($curl, CURLOPT_REFERER, strFOARD);
curl_setopt ($curl, CURLOPT_URL, $str_url);
curl_setopt ($curl, CURLOPT_TIMEOUT, 30);
curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla/%d.0",rand(4,5)));
curl_setopt ($curl, CURLOPT_HEADER, 0);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
$html = curl_exec ($curl);
curl_close ($curl);
return $html;
}
}
}