how to convert dynamic php file to pdf?

让人想犯罪 __ 提交于 2019-12-05 07:52:51

问题


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...


回答1:


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.




回答2:


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.




回答3:


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.




回答4:


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");
?>


来源:https://stackoverflow.com/questions/8781544/how-to-convert-dynamic-php-file-to-pdf

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!