Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[html naar pdf]Goede ondersteuning voor html5 en css3

Pagina: 1
Acties:

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 22-11 18:34
Ik ben al een tijdje op zoek naar een goed php-script met css3 ondersteuning. Gebruik nu nl tcpdf en dit werkt voor geen meter. Ik heb valid css en valid xhtml5.

Ik heb een php-pagina die als ik deze los oproep een goede html-pagina geeft met alle css. Vervolgens include ik deze in mijn tcpdf script, maar daar wordt het grootste deel van de css eruit gegooid en wordt er dus een onzinnige pdf gegenereerd.

Iemand enig idee hoe ik deze goede html zo kan includen dat er een goede pdf van gemaakt wordt en meteen wordt weggeschreven naar mijn site? Of een alternatief die wel goed met css omgaat?

tcpdf.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$input_html = 'insert_factuur.php';
    // get the HTML
    ob_start();
include($input_html);
    $content = ob_get_clean();
    // convert in PDF
    require_once '../credentials.php';
    require_once 'tcpdf/config/lang/nld.php'; 
    require_once 'tcpdf/tcpdf.php'; 
    // get factuurnummer
    $qSelect_factuur  = mysql_query('SELECT Factuurnummer FROM inkomsten ORDER BY Factuurnummer DESC LIMIT 1');
    $row = mysql_fetch_assoc($qSelect_factuur);
    $factuurnummer = $row['Factuurnummer'];
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('Paul');
    $pdf->SetTitle("'Paul - '.$factuurnummer");
    $pdf->SetSubject("'Paul - '.$factuurnummer");
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
    $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);

//set some language-dependent strings
    $pdf->setLanguageArray($l);
    $pdf->AddPage();
    $pdf->writeHTML($content);
    $pdf->lastPage();
    $pdf->Output('uitgaande-facturen/'.$factuurnummer.'.pdf', 'FI');
?>

[ Voor 55% gewijzigd door Paultje3181 op 03-04-2013 14:42 ]


  • HuHu
  • Registratie: Maart 2005
  • Niet online
Die zijn er niet of nauwelijks. Het beste is om een aparte opmaak te maken voor PDF, waar tcpdf of fpdf of wat dan ook mee om kan gaan. Wellicht kun je zoiets proberen: http://cutycapt.sourceforge.net/

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 22-11 18:34
daar was ik ook al een beetje bang voor... cutycapt is niet dynamisch te gebruiken als ik het zo snel zie toch? Of iig niet zonder shell-access?

Ik ben aan het zoeken, maar klopt het dat cutycapt en consorten zoals phantomjs eerste op de server geïnstalleerd moeten worden? Zo goed ben ik hier niet in thuis, maar als zij op een goede manier renderen zou dit wel interessant kunnen zijn om vervolgens naar pdf te exporteren (phantomjs kan dit zelfs al)

[ Voor 51% gewijzigd door Paultje3181 op 03-04-2013 16:12 ]


  • Xpoint
  • Registratie: September 2008
  • Laatst online: 12-10 19:38
Wij gebruiken op dit moment wkhtmltopdf, maar al deze tools werken inderdaad als een soort headless browser (hetgeen wat PhantomJS ook daadwerkelijk is) op WebKit welke dan vervolgens "printen" naar de gewenste output formaat. En om dat te kunnen doen, moet het programma dus inderdaad zelfstandig kunnen draaien op de server.

Als je een pure PHP oplossing wilt gebruiken zul je het dus inderdaad met veel mindere kwaliteit moeten doen, puur omdat er (zo ver ik weet) geen volwassen HTML -> PDF tools in PHP bestaan.

  • Destralak
  • Registratie: November 2006
  • Laatst online: 21-11 13:08
Ik heb voor een klant eerder dompdf gebruikt. Werkt goed, al kwam ik in 0.5.0 een aantal rare dingetjes tegen. Wellicht dat die voor 0.6 zijn opgelost. Voor de rest goede ervaringen in rendering en stabiliteit.
dompdf zet goed HTML en CSS om naar PDF via PHP5.

https://code.google.com/p/dompdf/

[ Voor 9% gewijzigd door Destralak op 05-04-2013 10:24 ]