how to convert dynamic php file to pdf?

2019-04-02 18:52发布

I try to convert dynamic php database file to pdf. I try with DOMPDF, but I have a problem with defining the string. I'll explain:

Here is a 'hello world' script for dompdf:

require_once("dompdf_config.inc.php");
$html =
    '<html><body>'.
    '<p>Hello World!</p>'.
    '</body></html>';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("hello_world.pdf");

The thing is that instead of a simple

'<html><body>'.
'<p>Hello World!</p>'.
'</body></html>' 

I have a long php file full of functions and sql queries. because of it I have inside it many ",',; e.t.c signs. I also have a javascript dynamic chart (jqplot) in this page.

So instead of pdf file I get errors errors errors...

Does anyone has a solution for this?

I will really appreciate any answer, and will be really really thankful for a solution...

4条回答
疯言疯语
2楼-- · 2019-04-02 19:35

Try This ...

<?php
    ob_start();

    require_once("dompdf_config.inc.php");

    $file = file_get_contents('http://example.com/file.php');

    $dompdf = new DOMPDF();
    $dompdf->load_html($file);
    $dompdf->render();
    $dompdf->stream("filename.pdf");
?>
查看更多
做个烂人
3楼-- · 2019-04-02 19:36

First you'll need to generate HTML from your PHP, then pass it to DOMPDF:

<?php
    require_once("dompdf_config.inc.php");
    ob_start();
    require_once("path/to/input/file.php");
    $dompdf = new DOMPDF();
    $dompdf->load_html(ob_get_clean());
    $dompdf->render();
    $dompdf->stream("file.pdf");
?>

You can also do a regular HTTP request:

<?php
    require_once("dompdf_config.inc.php");
    $dompdf = new DOMPDF();
    $dompdf->load_html_file('http://example.com/file.php');        
    $dompdf->render();
    $dompdf->stream("file.pdf");
?>    

If you need JavaScript support, try wkhtmltopdf, it's based on Webkit and does it's work perfectly.

查看更多
姐就是有狂的资本
4楼-- · 2019-04-02 19:42

You can use ob_start and ob_get_contents to run PHP code and capture the output as a string.

For the JavaScript chart, though, you're out of luck. DOMPDF is pretty smart, but it's not that smart. You'll need to either use a non-JavaScript chart solution, do without the charts, or use a web browser to generate the PDF.

查看更多
Anthone
5楼-- · 2019-04-02 19:42

I am not sure why you need to generate HTML to build a PDF in the first place but as others have suggested, build out your PHP script and then use something like FPDF or TCPDF.

They both build PDFs just fine and can take HTML input.

查看更多
登录 后发表回答