Skocz do zawartości
miglanc

Generowanie pdfa - błąd

Polecane posty

Witam,

Wszystko działało i nagle przestało. Ktoś wie jak to naprawić?

Kod pliku:

<?php
/*
Template Name: Wniosek 1 PDF
*/
ob_start();

$wnioski_name = $_POST['wnioski_name'];
$wnioski_nazwisko = $_POST['wnioski_nazwisko'];
$wnioski_data = $_POST['wnioski_data'];

$wnioski_dokument = $_POST['wnioski_dokument'];
$wnioski_seria = $_POST['wnioski_seria'];
$wnioski_pesel = $_POST['wnioski_pesel'];
$wnioski_nip = $_POST['wnioski_nip'];

$wnioski_kraj = $_POST['wnioski_kraj'];
$wnioski_kod = $_POST['wnioski_kod'];
$wnioski_miejscowosc = $_POST['wnioski_miejscowosc'];
$wnioski_ulica = $_POST['wnioski_ulica'];

$kraj_kor = $_POST['kraj_kor'];
$kod_kor = $_POST['kod_kor'];
$miejscowosc_kor = $_POST['miejscowosc_kor'];
$ulica_kor = $_POST['ulica_kor'];

$wnioski_email = $_POST['wnioski_email'];
$wnioski_phone = $_POST['wnioski_phone'];

//echo $wnioski_kraj;

// Extend the TCPDF class to create custom Header and Footer
class MYPDF extends TCPDF {
	
    public function Header() {
        // Logo
        $image_file = K_PATH_IMAGES.'bik_logo.gif';
        $this->Image($image_file, 160, 10, 30, '', 'gif', '', 'T', false, 300, '', false, false, 0, false, false, false);
        // Set font
       // $this->SetFont('helvetica', 'N', 12);
        // Title
       // $this->Cell(0, 15, 'WNIOSEK O UDOSTĘPNIENIE INFORMACJI USTAWOWEJ', 0, false, 'C', 0, '', 0, false, 'M', 'M');
	   // header string
		$this->SetFont('FreeSans', 'B', 12);
		$this->SetY(28);	
		$this->SetX(45);
		
		$this->MultiCell(200, 60, 'WNIOSEK O UDOSTĘPNIENIE INFORMACJI USTAWOWEJ', 0, '', 0, 1, '', '', true, 0, false, true, 0, 'T', false);
    }
}


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

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Czyszczenie BIK');
$pdf->SetTitle('Wniosek do BIK');
$pdf->SetSubject('Wniosek o udostępnienie informacji ustawowej');
$pdf->SetKeywords('TCPDF, PDF, example, BIK, guide');

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

$pdf->Header->original_rMargin = 30;

// 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);

// remove footer
$pdf->setPrintFooter(false);
// ---------------------------------------------------------


// set font
$pdf->SetFont('FreeSans', 'B', 20);

// add a page
$pdf->AddPage();

$pdf->Write(0, '', '', 0, 'L', true, 0, false, false, 0);

$pdf->SetFont('FreeSans', '', 9);

// -----------------------------------------------------------------------------
$obraz = '<img src="/images/checkbox-off.png" alt="obraz" width="20" height="20" />';

$path = get_bloginfo('template_directory').'/wnioski/library/tcpdf/examples';

$tbl = '<table cellspacing="0" cellpadding="5" style="border-left:1px solid #000;border-right:1px solid #000">
   
	<tr style="background-color:#00549B; color:#ffffff">
   		<td width="673" align="center" border="1">Przedmiot zamówienia</td>
	</tr>
	<tr>
		<td width="673" height="30">Zamówioną Informację Ustawową: (zaznaczyć wybrane pole <img src="'.$path.'/images/checkbox-on.png" alt="obraz" width="10" height="10" />)</td>
	</tr>
	<tr>
		<td width="250" style="border-bottom:1px solid #000"><img src="'.$path.'/images/checkbox-off.png" alt="obraz" width="10" height="10" /> Odbiorę osobiście w BOK</td>
		<td width="423" style="border-bottom:1px solid #000"><img src="'.$path.'/images/checkbox-on.png" alt="obraz" width="10" height="10" /> Proszę przesłać na adres korespondencyjny</td>
	</tr>
  
  	<tr style="background-color:#00549B; color:#ffffff">
   		<td width="673" align="center" border="1">Dane identyfikacyjne osoby fizycznej (wszystkie pola obligatoryjne)</td>
	</tr>   
   	<tr>
   		<td width="180" style="border-bottom:1px solid #000">Imiona</td>
		<td width="493" style="border-bottom:1px solid #000;font-weight:bold">'.$wnioski_name.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">Nazwisko</td>
		<td width="493" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_nazwisko.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">Data urodzenia</td>
		<td width="493" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_data.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">Rodzaj dokumentu tożsamości</td>
		<td width="140" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_dokument.'</td>
		<td width="120" style="border-top:1px solid #000;border-bottom:1px solid #000">Seria i numer</td>
		<td width="233" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_seria.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">PESEL</td>
		<td width="140" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_pesel.'</td>	
	
   		<td width="120" style="border-top:1px solid #000;border-bottom:1px solid #000"></td>
		<td width="233" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold"></td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr style="background-color:#00549B; color:#ffffff">
   		<td width="673" align="center" border="1">Adres zameldowania (wszystkie pola wymagane)</td>
	</tr>
	<tr>
   		<td width="180" style="border-bottom:1px solid #000">Kraj</td>
		<td width="493" style="border-bottom:1px solid #000;font-weight:bold">'.$wnioski_kraj.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">Kod pocztowy</td>
		<td width="140" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_kod.'</td>
		<td width="120" style="border-top:1px solid #000;border-bottom:1px solid #000">Miejscowość</td>
		<td width="233" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_miejscowosc.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">Ulica, nr domu, lokalu</td>
		<td width="493" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_ulica.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr style="background-color:#00549B; color:#ffffff">
   		<td width="673" align="center" border="1">Adres do korespondencji</td>
	</tr>
	<tr>
   		<td width="180" style="border-bottom:1px solid #000">Kraj</td>
		<td width="493" style="border-bottom:1px solid #000;font-weight:bold">'.$kraj_kor.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">Kod pocztowy</td>
		<td width="140" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$kod_kor.'</td>
		<td width="120" style="border-top:1px solid #000;border-bottom:1px solid #000">Miejscowość</td>
		<td width="233" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$miejscowosc_kor.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">Ulica, nr domu, lokalu</td>
		<td width="493" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$ulica_kor.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr style="background-color:#00549B; color:#ffffff">
   		<td width="673" align="center" border="1">Adres e-mail i telefon</td>
	</tr>
	<tr>
   		<td width="180" style="border-top:1px solid #000;border-bottom:1px solid #000">E-mail</td>
		<td width="140" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_email.'</td>
		<td width="120" style="border-top:1px solid #000;border-bottom:1px solid #000">Telefon</td>
		<td width="233" style="border-top:1px solid #000;border-bottom:1px solid #000;font-weight:bold">'.$wnioski_phone.'</td>
	</tr>
	<tr><td style="line-height:0px"></td></tr>
	<tr style="background-color:#00549B; color:#ffffff">
   		<td width="673" align="center" border="1">Zgody (* - zgoda wymagana)</td>
	</tr>
	<tr>
   		<td width="25" style="border-top:1px solid #000;border-bottom:1px solid #000"><img src="'.$path.'/images/checkbox-on.png" alt="obraz" width="10" height="10" />*</td>
		<td width="500" style="border-top:1px solid #000;border-bottom:1px solid #000;text-align:justify;font-size:10px">
			<b>Wyrażam zgodę na na przetwarzanie moich danych osobowych</b> zawartych w formularzu rejestracyjnym oraz dołączonych do niego dokumentach poprzez Biuro Informacji Kredytowej dla potrzeb niezbędnych do rejestracji i korzystania z funkcji Portalu, zgodnie z ustawą z dnia 29 sierpnia 1978 roku o ochronie danych osobowych (dz. U. z 2002 r. Nr 101, poz. 926 ze zm.). Jednocześnie oświadczam, iż przyjmuję do wiadomości, że (a) administratorem tak zebranych danych osobowych jest Biuro Informacji Kredytowej, (b) moje dane osobowe będą przetwarzane w celu udzielenia wsparcia i obsługi Portalu oraz korzystania z funkcji Portalu, (c) podanie danych osobowych jest dobrowolne, jednak odmowa ich podania jest równoznaczna z brakiem możliwości Rejestracji na Portalu, (d) mam prawo do treści swoich danych i ich poprawienia.		
		</td>
		<td width="148" style="border-top:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #000;font-size:9px">Czytelny podpis:</td>
	</tr>
	<tr>
   		<td width="25" style="border-top:1px solid #000;border-bottom:1px solid #000"><img src="'.$path.'/images/checkbox-on.png" alt="obraz" width="10" height="10" />*</td>
		<td width="500" style="border-top:1px solid #000;border-bottom:1px solid #000;text-align:justify;font-size:10px">
			Oświadczam, że zapoznałem się z Regulaminem Informacji Ustawowej i akceptuję jego postanowienia.		
		</td>
		<td width="148" style="border-top:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #000;font-size:9px">Czytelny podpis:</td>
	</tr>
	<tr>
   		<td width="220" style="border-top:1px solid #000;border-bottom:1px solid #000;font-size:14px;text-align:right"><b>Data i czytelny podpis:</b></td>
		<td width="453" style="border-top:1px solid #000;border-bottom:1px solid #000"></td>
	</tr>
</table>';


$pdf->writeHTML($tbl, true, false, false, false, '');

// strona 2 - informacja
require_once('wniosek-1-i-2-str-2.php');

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

//$zalacznik = $pdf->Output('wniosek_bik-001.pdf', 'I');

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

// wysyłanie zalącznika
    $attach = $pdf->Output('wniosek_bik-001.pdf', 'E');

    $boundary = '--=NextPart_' . md5(time());
    $head1 = 'From: Czyszczenie BIK' . "\r\n";	
    $head1.= 'Reply-To: biuro@czyszczeniebik.pl' . "\r\n"; // adres do odpowiedzi	
    $head1.= 'MIME-Version: 1.0'."\r\n";
    $head1.= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . "\r\n";
    $head2 = 'Content-Type: text/plain; charset="UTF-8"' . "\r\n";
    $head2.= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n";	
	
    $to = $wnioski_email; // adres z formularza	
	
    $subject = 'Wniosek PDF ze strony Czyszczenie BIK';
    $message = 'Witamy' . "\n\n" . 'W załączniku został wysłany gotowy wniosek o UDOSTĘPNIENIE INFORMACJI USTAWOWEJ.' . "\n\n" . 'Pozdrawiamy' . "\n\n";
    $message = wordwrap($message, 70);
    $output = '--' . $boundary . "\r\n" . $head2 . $message . '--' . $boundary . "\r\n" . $attach . "\r\n" . '--' . $boundary . '--' . "\r\n";
    if (mail($to, $subject, $output, $head1)) {
        //echo "sent";
    } else {
       // echo 'not sent';
    }
	$to2 = 'biuro@czyszczeniebik.pl'; // adres biura
	if (mail($to2, $subject, $output, $head1)) {
        //echo "sent";
    } else {
       // echo 'not sent';
    }



?>
Warning: Creating default object from empty value in /porto/wniosek-1-pdf-page.php on line 65

Warning: Cannot modify header information - headers already sent by (output started at /porto/wniosek-1-pdf-page.php:65) in /porto/wnioski/library/tcpdf/tcpdf.php on line 7626
TCPDF ERROR: Some data has already been output to browser, can't send PDF file
Edytowano przez miglanc (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wygląda na to że w PHP dostajesz ostrzeżenie o tym że tworzysz obiekt z pustej wartości (warning nr 1), a wyświetlenie takiego ostrzeżenia to już wysłanie treści do wyszukiwarki.

 

A potem dostajesz kolejne ostrzeżenie i błąd że header już wysłany (przez warning 1) więc nie może wysłać PDF.

 

Propozycje:

1) Popraw w linii 65 żeby nie było ostrzeżenia

2) Wyłącz wyświetlanie warningów w przeglądarce. W wersji produkcyjnej w ogóle wyświetlanie błędów powinno być wyłączone. Włącz tylko pisanie błędów do logów.

Edytowano przez nnd_newbie (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Właśnie mam:

ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

i coś błędy nadal są widoczne.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Użyj phpinfo() zaraz po tych wpisach i i zobacz czy zadziałały.

 

Jak nie - szukaj przyczyn w konfiguracji PHP.

 

Jak ini_set zadziałały, to:

1) albo ten fragment nie jest wykonywany przy generowaniu pliku PDF (domyślam się, że masz te wpisy w jakimś pliku konfiguracyjnym)

2) po drodze coś Ci znowu włącza pisanie błędów

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wywal po prostu tę linijkę:

 

$pdf->Header->original_rMargin = 30;

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

Wywal po prostu tę linijkę:

 

$pdf->Header->original_rMargin = 30;

 

 

Hmmm wywaliłem i błąd ten sam...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×