Autor Zpráva
mišiačik
Profil *
Zdravím, potreboval by som pomoc pri vygenerovaní PDF súboru.
Mám jednoduchý formulár. Výstupný PHP skript na základe údajov formulára načíta ďalšie údaje z MySQL a následne vygeneruje nejaký HTML obsah. Tento výstup, ktorý najprv užívateľ skontroluje, by som potreboval vytlačiť => vygenerovať PDF. Prípadne aby to bolo jednoduchšie priamo vygenerovať PDF.

Skúšal som triedy fpdf, mpdf, a i. do ktorých keď priamo vložím nejaký kus HTML kódu vygeneruje PDF v poriadku. Ale nedarí sa mi resp. neviem ako tento výstupný HTML kód zachytiť a poslať skriptu na vygenerovanie PDF..

tu je ukážka PHP skriptu na spracovanie formulára. (som v php začiatočník, triedy xpdf sa snažím použiť prvý krát, a nič čo by mi pomohlo som nenašiel)

<html>
<head>
  <meta content="text/html; charset=windows-1250" http-equiv="content-type" />
</head>

<?php

$volno=$_POST['volno'];
$meno=$_POST['meno'];
//..ďalšie premenné z formulára
$host="localhost";
//..ďalšie premenné na spojenie s MySQL
mysql_connect("$host", "$username", "$password")or die("Spojenie neúspešné");
//..atď
$sql="SELECT osobid FROM $tbl_name WHERE meno='$meno'";
$result=mysql_query($sql);
?>
<body>
<center>
<div style="width: 18cm; border-style: solid ; border-color: black; border-width: 1px">
    <div style="margin: 30px;">
		<table style="border-collapse:collapse" width="100%" border="0" align="center">
			<tr>
				<td style="padding: 15;" colspan="2" align="center"><big><b><?php echo "$volno";?></b></big>	</td>
			</tr>
			<tr>
				<td style="padding: 3; width: 10cm;" >Meno a priezvisko:   <b><?php echo "$meno";?></b></td><td>Osobné číslo: <b>
				<?php while($rows=mysql_fetch_array($result))
				{
				echo $rows['osobid'];}?></b></td>
			</tr>
			 
//  ....pokračovanie tabuľky
			 
		</table>
	</div>
</div>
<br>
</center>
</body>
</html>


Keď som v prehliadači zobrazil zdrojový kód výstupu (už čistý HTML) a tento vložil do skriptu mpdf tak PDF súbor vytvorilo OK aj s diakritikou.

<?php
include('mpdf/mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('
<html> ..skopírovaný html kód...
');
$mpdf->Output();
?>


Takže zopakujem otázku - ako zachytiť html kód generovaný php skriptom a odoslať ho na vygenerovanie triede mpdf, alebo fpdf alebo inej.

Ďakujem.
ShiraNai7
Profil
Na začátku skriptu toto:
ob_start();


a před generováním PDF toto:
$html = ob_get_contents();
ob_end_clean();


a poté..
include('mpdf/mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML($html);
$mpdf->Output();
Tori
Profil
Uložte si výstup do proměnné, místo kusů PHP uvnitř HTML to bude jen PHP:
<?php
$vystup = '<html><head> .....atd. <body>';
// tady taháte data z DB
while ($rows=mysql_fetch_array($result))  {
  $vystup .= '..nejaka data z db...';
}
$vystup .= '...konec tabulky... </html>';

include('mpdf/mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML($vystup); 
$mpdf->Output();

Ještě by byla varianta, řešit to přes funkce ob_start(), ob_get_flush().
mišiačik
Profil *
Tori:
Ďakujem; premenná to vyriešila..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0