Generowanie plików PDF za pomocą TCPDF

Odpowiedz Nowy wątek
2011-07-19 09:43
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.

Pozostało 580 znaków

2011-08-04 23:57
enum
0

wstaw na początku skryptu
<?php
ob_start();

i ma działać, pozdro

Pozostało 580 znaków

2013-11-14 17:49
0

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

?

Pozostało 580 znaków

2013-11-14 19:14
0

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


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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