创建包含动态内容的页面的pdf文件

时间:2017-05-18 15:09:55

标签: php pdf mpdf

我需要创建一个包含php变量和js生成内容的php页面的PDF文件。

我尝试使用mPDF和以下脚本实现此目的:

require_once "libraries/mpdf/mpdf.php";

ob_start();  // start output buffering
include 'appartamento.php';
$content = ob_get_clean(); // get content of the buffer and clean the buffer
$mpdf = new mPDF(); 
$mpdf->SetDisplayMode('fullpage');
$mpdf->WriteHTML($content);
$mpdf->Output(); // output as inline content

但是,生成的pdf只包含很少的php页面内容,我不知道在pdf文件中显示整个内容需要做些什么。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

要生成动态内容,请将$content = $content . "Your additional Content"; 变量视为任何PHP变量并最初设置它。

之后,在循环中填充内容的地方,请确保使用以下逻辑。

$mpdf->WriteHTML($content);

$mpdf->Output();

exit;

通过这种方式,您将附加到您的变量。

最后,使用以下代码生成PDF。

$content

您可以轻松使用$mpdf=new mPDF('win-1252','A4','','',20,15,55,25,10,10); //This is where you set page size and margins. Feel free to use as is. $mpdf->useOnlyCoreFonts = true; // false is default. $mpdf->SetProtection(array('print')); //You can find out about these details in mPDF guidelines. $mpdf->AliasNbPages(['PAGETOTAL']); // PAGETOTAL gives you the value of Total Pages of your generated PDF. $mpdf->SetTitle($your_title); //You can even set the PDF Title based on your Data. $mpdf->SetAuthor($author_name); //You can set Author's Name as well $mpdf->SetWatermarkText($watermark_text); //You can even set Watermark Text $mpdf->showWatermarkText = false; //True if you want to show watermark $mpdf->watermark_font = 'DejaVuSansCondensed'; //Can even change Watermark Font $mpdf->watermarkTextAlpha = 0.05; //Opacity of Watermark Text $mpdf->SetDisplayMode('fullpage'); //Obvious as mentioned $content = $content . 'Your ' . $content . ' can be added this way.'; //This can be any HTML. $mpdf->WriteHTML($content); //You can now compile your content and show in PDF. $mpdf->Output(); //finally output it. 中的几乎所有HTML标记。只有一些标签不受支持。

就是这样!

我已添加了逐步过程,以确保您使用动态数据成功生成PDF。

<body>

除此之外,请注意以下内容。

mPDF分为三个主要部分。这些内容位于HTML的<htmlpageheader name="myheader">

  1. </htmlpageheader> - 在每个页面上重复此操作作为标题。可以是页面模板中的徽标。将关闭<htmlpagefooter name="myfooter">
    1. </htmlpagefooter> - 这与标题类似但位于底部。将关闭<body>
    2. 这是<htmlpageheader name="myheader">
    3. 中的全部内容
  2. 要显示<htmlpagefooter name="myfooter"><sethtmlpageheader name="myheader" value="on" show-this-page="1" /> <sethtmlpagefooter name="myfooter" value="on" /> ,请使用以下代码行。

    @Override
    public void configure(final WebSecurity web) throws Exception
    {
        web.ignoring().antMatchers("oauth/**");
    }
    

    遵循这个逻辑,然后尝试。

答案 1 :(得分:-1)

您可以使用fpdf库。它允许您从PHP编写pdf。

答案 2 :(得分:-1)

你一定要看看这个。顺便说一下,这是一篇非常有用的帖子:https://github.com/dompdf/dompdf

如果您对此不熟悉,您可能希望了解最终如何呈现某些示例:https://dompdf.net/examples.php