Generowanie plików PDF za pomocą TCPDF

0

Witam korzystam z TCPDF w systemie Linux i mam dwa problemy z tym generatorem, próbuje wygenerować dane z formularza do PDF i napotkałem następujące problemy:

  1. po wywołaniu algorytmy wyświetla się następujący błąd TCPDF ERROR: Some data has already been output, can't send PDF file plik generujący PDFa jest dołączony do pliku głównego na po dodaniu danych do bazy.

  2. Podczas generowania zostaje przerwany tekst dokładnie w miejscu gdzie widnieje napis Zajecia

<?php
require_once('tcpdf/config/lang/pol.php');
require_once('tcpdf/tcpdf.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('Marek Drzycimski');
$pdf->SetTitle('System bazodanowy dla przedszkola');
$pdf->SetSubject('Umowa');
$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
$pdf->setLanguageArray($l);
 
// ---------------------------------------------------------
 
// set font
$pdf->SetFont('dejavusans', '', 10);
 
// add a page
$pdf->AddPage();
 
// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true)
 
// create some HTML content
$html = "            <b>Dane dziecka<br></b>
            <table border='100'>
<tr>
	<td>Imię</td>	<td>$imie_d</td>
</tr>
<tr>
	<td>Nazwisko</td><td>$nazwisko_d</td>
</tr>
<tr>
	<td>Pesel</td>	<td>$pesel_d</td>
</tr>
<tr>
	<td>Data urodzenia</td>	<td>$data_ur</td>
</tr>
<tr>
        <td>Zajęcia</td>    <td></td> 
</tr>
<tr>
        <td></td>   <td><Tanice</td>
</tr>
<tr>
        <td></td>   <td>Angielski</td>
</tr>
<tr>
	<td>Uwagi</td>	<td>$uwagi</td>
</tr>
</table>    
<b>Dane Rodziców</b>
<table>
<tr>
        <td>Dane Ojca</td> <td></td>
</tr>
<tr>
        <td>Imię</td> <td>$imie_o</td>
</tr>
<tr>
        <td>Nazwisko</td> <td>$nazwisko_o</td>
</tr>
<tr>
        <td>Numer Dowodu</td> <td>$nrdowodu_o</td>
</tr>
<tr>
        <td>Telefon Kontakotwy</td> <td>$tel_kon_o</td>
</tr>
<tr>
        <td>Dane Matki</td> <td></td>
</tr>
<tr>
        <td>Imię</td> <td>$imie_m</td>
</tr>
<tr>
        <td>Nazwisko</td> <td>$nazwisko_m</td>
</tr>
<tr>
        <td>Numer Dowodu</td> <td>$nrdowodu_m</td>
</tr>
<tr>
        <td>Telefon Kontakotwy</td> <td>$tel_kon_o</td>
</tr>
<tr>
        <td>Email</td> <td>$email</td>
</tr>
</table>
<b>Adres Zamieszkania</b>
<table>
<tr>
        <td>Ulica</td><td>$ulica_az</td>
</tr>
<tr>
        <td>Numer domu</td>$nr_d_az</td>
</tr>
<tr>
        <td>Numer mieszkania</td>$nr_m_az</td>
</tr>
<tr>
        <td>Kod pocztowy</td>$kod_pocztowy_az</td>
</tr>
<tr>
        <td>Miasto</td><td>$miasto_az</td>
</tr>
</table>
<b>Adres do korespondecji</b>
<table>
<tr>
        <td>Ulica</td><td>$ulica_ak</td>
</tr>
<tr>
        <td>Numer domu</td><td>$nr_d_ak</td>
</tr>
<tr>
        <td>Numer mieszkania</td>$nr_m_ak</td>
</tr>
<tr>
        <td>Kod pocztowy</td><td>$kod_pocztowy_ak</td>
</tr>
<tr>
        <td>Miasto</td><td>$miasto_ak</td>
</tr>
</table>
<b>Osoby upoważnione do odbierania dziecka:</b>
<table>
<tr>
        <td>Dane pierwszej osoby</td>
</tr>
<tr>
        <td>Nazwisko</td><td>$nazwisko_ko1</td>
</tr>
<tr>
        <td>Imię</td><td>$imie_ko1</td>
</tr>
<tr>
        <td>Nr dowodu</td><td>$nrdowodu_ko1</td>
</tr>
</table>";
 
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
// reset pointer to the last page
$pdf->lastPage();
 
// ---------------------------------------------------------
 
//Close and output PDF document
$pdf->Output('example_006.pdf', 'I');
 
//============================================================+
// END OF FILE                                                
//============================================================+
?>

Z góry dzięki za pomoc.

0

wstaw na początku skryptu

<?php ob_start(); i ma działać, pozdro
0

Siedziałem nad tym rozwiązaniem dwa dni.
Czy może mi ktoś wyjaśnić jak działa ta funkcja ob_start()

?

0

W manualu jest napisane!
I jeszcze odkopałeś temat sprzed 2 lat..

1 użytkowników online, w tym zalogowanych: 0, gości: 1