ugrás a tartalomhoz

php --> pdf

figyuri · 2009. Ápr. 8. (Sze), 14.49
Sziasztok, - php -ből generálom a pdf dokumentumot, s időnként nem jelenik meg, az Acrobat Reader azt írja ki, hogy a fájl sérült, s nem sikerült megjavítani. De van amikor tökéletesen müködik...
Mintha többször fordult volna elő ha sok oldalt akarok megjeleníteni. Nem találom az okot ezért gondoltam hátha a php -nek is köze lehet, hátha valaki az alábbi részletben felfedez valamit ami előídézheti :


while ($myrow = mysql_fetch_array($result))
{
...

class PDF extends FPDF
{
//Page header
function Header()
{
//Logo
$this->SetY(15);
$this->Image('../images/ovt_sablon.jpg',0,0,0);
$this->SetFont('Arial','B',16);
$this->Cell(260,5,'HATÁROZAT',0,0,'C');
$this->Ln(1);
$this->SetFont('Arial','B',14);
$this->Cell(260,15,'ORVOS VEZETŐI TESTÜLET ELNÖK',0,0,'C');
$this->Ln(5);
}

//Page footer
function Footer()
{
global $aktualis_ev;
global $ovte_elso;
global $ovte_utolso;
//Position at 1.5 cm from bottom
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',6);
//Page number
// $this->Cell(30,5,'Fájlnév : OVTE_'.$aktualis_ev.'_'.$ovte_elso.$ovte_utolso,0,0,'L');
$this->Cell(0,5,'Oldal 1/1',0,0,'C');
$this->Cell(0,5,'Rekord sz.: HC-F-54-010/Rev01',0,0,'R');
}
}
$pdf=new PDF();
$pdf->SetDisplayMode(fullpage,two);

for ($x=0; $x < $m; $x++)
{
$pdf->AddPage();
//Instanciation of inherited class
//$pdf->SetFont('Times','',12);
$pdf->SetFont('Arial','',8);
$pdf->Cell(130);
$pdf->Cell(0,43,'Sorszám '.$aktualis_ev.'/'.$ovte_kezd2[$x].'.',0,'C');
$pdf->Ln(25);
$pdf->SetFont('Arial','B',14);
//$pdf->Cell(40);
$pdf->Cell(0,53,'Engedélyező határozat',0,0,'C');
$pdf->Ln(40);
$pdf->SetFont('Arial','',11);
//$pdf->Cell(10,10,'',1,0,'L');
$pdf->SetMargins(14,0,14);
$pdf->Write(5,' Orvos Vezetői Testület elnökeként engedélyezem, hogy '.$orvos_latogato_neve[$x].', a(z) '
.$orvos_latogato_cege[$x].' képviselője '.$orvos_latogato_datum[$x].' -n '.$orvos_latogato_tol[$x].':00 és '.$orvos_latogato_ig[$x].':00 h között '
.$orvos_latogato_ovte_szoveg[$x].' az alábbi orvosokat felkeresse:');
$pdf->Ln(10);
$pdf->SetFont('Arial','B',11);
$count_orvosok = count($orvos_latogato_nev[$x]);
for ($y=0; $y < $count_orvosok; $y++)
{
$pdf->Write(5,'Dr. '.$orvos_latogato_nev[$x][$y].'');
$pdf->Ln();
//print "<br>";
}
$pdf->Ln(10);
$pdf->SetFont('Arial','',11);
$pdf->Write(5,' Kérem, hogy a képviselő a kórházba érkezéskor az orvos igazgatói titkárságon szíveskedjen átvenni a jelenléti ívet, és a látogatás végén kitöltve ugyanott leadni.
Amennyiben a látogatás során írásos szakmai anyag, tájékoztató kerül az orvosnak átadásra, kérjük, hogy a képviselő juttasson el 1 példányt az orvos igazgatói titkárságra.
Kérem a látogatás során a 11/2007. (III.6.) EüM. rendelet, valamint a HC-U-74-003. sz. utasítás intézkedéseinek betartását.');
$pdf->Ln(10);
$pdf->Write(5,' További információ a kórház orvos igazgatói titkárságán kérhető.');
$pdf->Ln(10);
$pdf->Write(5,' Budapest, '.$mai_nap.'.');
$pdf->Ln(15);
$pdf->Write(5,' ..................');
$pdf->Ln();
$pdf->Write(5,' Orvos Vezetői Testület elnöke');
$pdf->Ln();
$pdf->SetFont('Arial','U',11);
$pdf->Write(5,'Kapják :');
$pdf->Ln();
$pdf->SetFont('Arial','',11);
$pdf->Write(5,' '.$orvos_latogato_neve[$x].', '.$orvos_latogato_cege[$x].' ');
$pdf->Ln();
$pdf->Write(5,' '.$orvos_latogato_korhaz_neve[$x].' orvos igazgatói titkársága');
//$pdf->SetY(-25);
// $pdf->SetFont('Arial','I',6);
// $pdf->Write(5,' Fájlnév : OVTE_'.$aktualis_ev.'_'.$ovte_kezd2[0].'_'.$ovte_kezd2[$m]);
}

// $pdf->Output("/tmp/ovt.pdf","F");
$pdf->Output();
}
?>



Köszönettel : -gyuri-
 
1

user profile quota

bonga · 2009. Ápr. 8. (Sze), 15.20
Egészen véletlenül nem lehet az, hogy a gépen, amelyre a pdf fájl letöltődik korlátozva van a felhasználói terület mérete? Én ütköztem hasonlóba, hogy céges környezetben központi user profile tárolásra 30M méretkorlátot tettek, és a sok pdf fájl letöltéstől tele lett a Temp mappa, így a böngésző a következő pdf fájlt már nem tudta lementeni a megnyitáshoz és ekkor dobott hasonló hibaüzenetet. Egy C:\Documents and Settings\user\Local Settings\Temp mappa ürítés megoldotta a problémát.
2

generál

janoszen · 2009. Ápr. 8. (Sze), 21.49
Még annyit tennék hozzá, hogy generáld ki, nézd meg, úgy jó-e és utána próbáld meg beágyazottként megnyitni. Egyébként ha a PDF file-t inkább letöltésre akarod kiszolgálni, akkor a Content-Disposition header van segítségedre.
3

szerepel a Content-Disposition header

figyuri · 2009. Ápr. 8. (Sze), 23.55
Köszi, - sajnos kipróbáltam, lementeni sikerül is, de akkor sem tudja megnyitni az Acrobat Reader, pedig semmit sem változtattam, kb. 1/2 éve, s még a múlt héten is megjelent.

- az Output fv. így néz ki a fpdf.php file -ba (szerepel a Content-Disposition header ):
function Output($name='',$dest='')
{
//Output PDF to some destination
//Finish document if necessary
if($this->state<3)
$this->Close();
//Normalize parameters
if(is_bool($dest))
$dest=$dest ? 'D' : 'F';
$dest=strtoupper($dest);
if($dest=='')
{
if($name=='')
{
$name='doc.pdf';
$dest='I';
}
else
$dest='F';
}
switch($dest)
{
case 'I':
//Send to standard output
if(ob_get_contents())
$this->Error('Some data has already been output, can\'t send PDF file');
if(php_sapi_name()!='cli')
{
//We send to a browser
header('Accept-Ranges: bytes');
header('Content-Type: application/pdf');
if(headers_sent())
$this->Error('Some data has already been output to browser, can\'t send PDF file');
header('Content-Length: '.strlen($this->buffer));
header('Content-disposition: inline; filename="'.$name.'"');



Köszi : -gyuri-