U bevindt zich hier: Forum » Tutorials » [PHP] HTML naar PDF
   Actief Topic: [PHP] HTML naar PDF

Vorige ( 1 ) Volgende

vlerknozem
Admin
avatar
# Gepost op 02-01-2010 14:45
Bewerkt door vlerknozem op 02-01-2010 14:48


Dit keer een vrij kleine tutorial. Soms kan het wel handig zijn om een html bestand dynamisch om te zetten naar PDF. Met PHP is dit mogelijk. Natuurlijk kan je zelf een hoop gaan schrijven, maar het is handiger om een kant-en-klaar script te gebruiken dat goed werkt. Ik heb verschillende geprobeerd, maar niet alle werken ze even goed. De laatste die ik heb geprobeerd is 'dompdf'. Deze heeft de mogelijkheid om een html bestand met css om te zetten tot een PDF.

Stap 1: Installeren
Download de laatste versie van dompdf: http://code.google.com/p/dompdf/
Pak de zip uit en plaats het in je werkmap. Als werkmap gebruik ik nu './test/'. De map van dompdf is dus nu './test/dompdf/'. Als voorbeeld maken we nu een bestand 'index.php' aan in je werkmap. Let op dat je moet zorgen voor de juiste rechten.

Stap 2: De php code
We maken nu in index.php de code om dompdf te gebruiken.
Plain | Plain new window | PHP code:
  1. <?php
  2. require_once("dompdf/dompdf_config.inc.php");  
  3. $dompdf = new DOMPDF();
  4. $dompdf->load_html('<html><head></head><body><b>Test</b></body></html>');
  5. $dompdf->set_paper('a4', 'portrait');
  6. $dompdf->render();
  7. $dompdf->stream("dompdf_out.pdf");
  8. exit(0);
  9. ?>


Als je nu index.php opent in je browser dan krijg je een download scherm. Download de PDF en open het. Je ziet nu een lege PDF met een vet gedrukte tekst 'test' erin.

De gebruikte functies:
set_paper: Hiermee verander je het formaat. Het eerste argument 'a4' is de papier grote. Op de site http://www.poksi.net/dompdf/www/examples.php#demo kan je zien welke formaten je kan gebruiken. Het tweede argument is of het papier staand (portrait) of liggend (landscape) moet zijn.

load_html: Deze functie spreekt voor zich. Hier plaats je de html die je wilt gebruiken.

render: Dit zorgt voor het render-proces.

stream: Deze zorgt ervoor dat de pdf gedownload kan worden.


Nu maken we even snel een verbetering., zodat je de html en php gescheiden kan houden. Verander de regel met load_html in dit:
Plain | Plain new window | PHP code:
  1. $dompdf->load_html(file_get_contents('test.html'));


Stap 3: De html code
Maak in de werkmap een bestand aan genaamd 'test.html');
Nu kan je hierin de html zetten:

Plain | Plain new window | HTML code:
  1.  
  2. /* Type some style rules here */
  3.  
  4. </head>
  5.  
  6.  
  7. <!-- Type some HTML here -->
  8.  
  9. </body>
  10. </html>


Stap 4: Volgende pagina
Een PDF wordt opgedeeld in meerdere pagina's. ALs je wilt dat de pagina op een bepaalde plek ophoudt, en dat je verder wilt naar een volgende pagina, gebruik dan de css 'page-break-before'. Bijvoorbeeld:

Plain | Plain new window | HTML code:
  1. Pagina 1
  2. <div style="page-break-before: always;"></div>
  3. Pagina 2


Tot slot
Natuurlijk kan ik niet alles hier gaan vertellen. Sowieso heb ik zelf ook nog niet alles uitgevogeld. Wel is het handig om hier even te kijken:
De FAQ: http://code.google.com/p/dompdf/wiki/FAQ
Demo en voorbeelden: http://www.poksi.net/dompdf/www/examples.php


Lees de forum regels

Vorige ( 1 ) Volgende

U moet aangemeld zijn om een reactie te kunnen plaatsen.

Indien u nog geen account heeft kunt u zich hier registreren.



© copyright 2009/2010 WebProjects 1.02 - Template van Sebastaan Franken