login  Naam:   Wachtwoord: 
Registreer je!
 Forum

meerdere pagina's in een pdf-document (Opgelost)

Offline thomas___ - 29/08/2007 13:12
Avatar van thomas___PHP interesse Ik haal via een script de gewenste gegevens uit mijn database. Nu zou ik voor elke rij een nieuwe pagina willen in een pdf-document.
Ik dacht dat dit gebeurde bij PDF_begin_page() en PDF_end_page().

Mijn test-code ziet er als volgt uit:
  1. ...
  2. $resultaten = mysql_query($query);
  3. $file = pdf_new();
  4. pdf_open_file($file, 'D:\Program Files\xampp\htdocs\test.pdf');
  5.  
  6. while ($a_res = mysql_fetch_row($resultaten)) {
  7. echo $a_res[0];
  8. echo "<br>".$a_res[1]." ".$a_res[2]." ".$a_res[3];
  9. echo "<br>".$a_res[4]." ".$a_res[5]."<br><hr>";
  10.  
  11. PDF_begin_page($file, 595, 842);
  12.  
  13. $fontone = pdf_findfont($file, "Times-Roman", "host", 0);
  14. pdf_setfont($file, $fontone, 12);
  15.  
  16. # Mijn adresgegevens
  17. pdf_show_xy($file, $a_res[0],20, 690);
  18. pdf_show_xy($file, $a_res[1]." ".$a_res[2],20, 678);
  19. pdf_show_xy($file, $a_res[4]." ".$a_res[5],20, 666);
  20.  
  21. pdf_end_page($file);
  22. }
  23.  
  24. pdf_close($file);


Dit geeft dan de volgende error: Fatal error: Uncaught exception 'PDFlibException' with message 'Function must not be called in 'object' scope' in D:\Program Files\xampp\htdocs\zoek.php:86 Stack trace: #0 D:\Program Files\xampp\htdocs\zoek.php(86): pdf_begin_page() #1 {main} thrown in D:\Program Files\xampp\htdocs\zoek.php on line 86
Lijn 86 is de codelijn van PDF_begin_page()

Weet iemand hoe je dit oplost? Door ergens een page break ofzo in te voeren?

Alvast bedankt,
Thomas

4 antwoorden

Gesponsorde links
Offline Wim - 29/08/2007 13:14 (laatste wijziging 29/08/2007 13:15)
Avatar van Wim Crew algemeen welke lijn is lijn 86?

Bovendien, elke backslash escapen!
pdf_open_file($file, 'D:\Program Files\xampp\htdocs\test.pdf');
wordt dus
pdf_open_file($file, 'D:\\Program Files\\xampp\\htdocs\\test.pdf');
Offline thomas___ - 29/08/2007 13:29
Avatar van thomas___ PHP interesse
Citaat:
welke lijn is lijn 86?

Lijn 86 is de codelijn van PDF_begin_page()
Dit had ik reeds in mijn originele post geplaatst ;)

Het pdf gedeelte werkt perfect zonder while. Dus dit escapen zal volgens mij zeker de oorzaak niet zijn

Toch bedankt
Offline Flex1986 - 29/08/2007 14:01
Avatar van Flex1986 Gouden medaille

Senior Member
Onder windows zal je binnen php altijd \\ moeten gebruiken. Jouw bestand kan die nu simpel weg niet open omdat het path niet bestaat. Ook is het zo dat bij bijvoorbeeld exec() bestandspaden met een spatie tussen "" moeten staan. Misschien helpt dat bij jou ook.

  1. pdf_open_file($file, '"D:\\Program Files\\xampp\\htdocs\\test.pdf"');


Misschien dat dit gaat werken voor je.
Offline thomas___ - 29/08/2007 14:37 (laatste wijziging 29/08/2007 15:11)
Avatar van thomas___ PHP interesse
Citaat:
Onder windows zal je binnen php altijd \ moeten gebruiken. Jouw bestand kan die nu simpel weg niet open omdat het path niet bestaat. Ook is het zo dat bij bijvoorbeeld exec() bestandspaden met een spatie tussen "" moeten staan. Misschien helpt dat bij jou ook.


Mijn path staat tussen single qoute's zodat dit niet hoeft.

Ik heb het wel es veranderd, maar het hielp jammergenoeg niet...

Alvast bedankt

OPLOSSING: er mag geen tekst op het scherm getoond worden voordat de pdf gemaakt is.

Dit is de oplossing:
  1. $resultaten = mysql_query($query);
  2.  
  3. $file = pdf_new();
  4. pdf_open_file($file, 'D:\Program Files\xampp\htdocs\test.pdf');
  5.  
  6. while ($a_res = mysql_fetch_row($resultaten)) {
  7. pdf_begin_page($file, 595, 842);
  8.  
  9. $fontone = pdf_findfont($file, "Times-Roman", "host", 0);
  10. pdf_setfont($file, $fontone, 12);
  11.  
  12. # Mijn adresgegevens neerzetten
  13. pdf_show_xy($file, $a_res[0],20, 690);
  14. pdf_show_xy($file, $a_res[1]." ".$a_res[2],20, 678);
  15. pdf_show_xy($file, $a_res[4]." ".$a_res[5],20, 666);
  16.  
  17. pdf_end_page($file);
  18.  
  19. echo $a_res[0];
  20. echo "<br>".$a_res[1]." ".$a_res[2]." ".$a_res[3];
  21. echo "<br>".$a_res[4]." ".$a_res[5]."<br><hr>";
  22. }
  23.  
  24.  
  25. pdf_close($file);
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s