2015-04-13 3 views
1

нужно преобразовать URL в PDFсохранить HTML страницы в формате PDF в PHP

Я пытался использовать TCPDF, но я получаю ошибки, такие как: Примечание: Undefined смещение: 4 в/Opt/lampp/HTDOCS/IBI/TCPDF /tcpdf.php на линии 17218 TCPDF ОШИБКА: Некоторые данные уже выход, не может отправить PDF файл

Я думаю, что проблема заключается в том, что страница имеет HTML и JS и CSS

это код и адрес, который пытался:

// Include the main TCPDF library (search for installation path). 
require_once('tcpdf_include.php'); 

// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

// set document information 
$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetAuthor('Nicola Asuni'); 
$pdf->SetTitle('TCPDF Example 006'); 
$pdf->SetSubject('TCPDF Tutorial'); 
$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); 

// set default header data 
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING); 

// set header and footer fonts 
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); 
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); 

// set default monospaced font 
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 

// set margins 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); 
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); 

// set auto page breaks 
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); 

// set image scale factor 
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 

// set some language-dependent strings (optional) 
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { 
    require_once(dirname(__FILE__).'/lang/eng.php'); 
    $pdf->setLanguageArray($l); 
} 

// --------------------------------------------------------- 

// set font 
$pdf->SetFont('dejavusans', '', 10); 

// add a page 
$pdf->AddPage(); 
// test some inline CSS 
$html = file_get_contents("http://dvns.me/mahmoud/IBI/"); 
$pdf->writeHTML($html, true, false, true, false, ''); 

//Close and output PDF document 
$pdf->Output(time().'.pdf', 'I'); 

//============================================================+ 
// END OF FILE 
//============================================================+ 
+0

Можете ли вы проверить, отправлены ли ваши заголовки? [ссылка 'headers_sent'] (http://php.net/manual/en/function.headers-sent.php) – jmgross

+0

@huggilou Где проверить? в первом из кода или в конце? –

+0

Перед '$ pdt-> Output()' function – jmgross

ответ

0

Попробуйте вставить ob_clean() перед тем, как require()

ob_clean() 
// set document information 
$pdf->SetCreator(PDF_CREATOR); 

См reference here и related issue here.

+0

Я пробовал, но это не проблема! –

+0

Является ли ошибка брошена? Вам удалось заставить его работать сейчас? – sitilge

-1

Попытка скрыть уведомления сообщение со следующим кодом:

error_reporting(E_ERROR | E_WARNING | E_PARSE); 

Этот код должен вставить в начале сценария

+0

Я получаю это: Предупреждение: Недействительный аргумент, предоставленный foreach() в /opt/lampp/htdocs/IBI/tcpdf/tcpdf.php в строке 19515 Предупреждение: Недействительный аргумент, предоставленный foreach() в/opt/lampp/HTDOCS/IBI/TCPDF/tcpdf.php на линии 19515 Внимание: Недействительный аргумент для Еогеаспа() в /opt/lampp/htdocs/IBI/tcpdf/tcpdf.php на линии 19515 Внимание: Недействительный аргумент для Еогеаспа() в /opt/lampp/htdocs/IBI/tcpdf/tcpdf.php on line 19515 TCPDF ERROR: некоторые данные уже выведены, невозможно отправить файл PDF –

+0

Кажется, что ваш html недействителен для вывода в файл pdf. Попытайтесь заменить свой '$ html'var более простым примером, например' Привет, мир ' – jmgross

+0

' и вы пытаетесь выполнить 'error_reporting (0); 'пожалуйста? – jmgross

0

я достигшей подобную вещь, используя следующую библиотеку jsPDF

С целью определения таблицы, которую вы хотите распечатать, используя идентификатор для ex:

<table id="printTable" class='table table-striped' border="0"> 
Смежные вопросы