我可以将视图传递给FPDF生成PDF吗?

时间:2018-11-23 08:39:19

标签: php pdf fpdf dompdf

以前,我在laravel应用程序中使用dompdf来生成发票。下面是dompdf的代码,只需发送视图即可生成发票。

PDF::setOptions(['dpi' => 150, 'defaultFont' => 'sans-serif']);
    // pass view file
view()->share('account_invoice',$account_invoice);
view()->share('account_invoice_item',$account_invoice_item);
$pdf = PDF::loadView('admin/invoice/InvoiceTemplate/template');

但是现在我正在使用FPDF。有像dompdf这样的东西可以通过视图生成PDF。

$pdf = new FPDF();
View::make('admin/invoice/InvoiceTemplate/template');

我知道我的代码对于FPDF是不正确的,但是我知道如何将视图传递给FPDF以生成pdf,这样我就可以原封不动地发送它。

1 个答案:

答案 0 :(得分:0)

您的目标似乎是将原始html转储到pdf并进行相应的格式化?看一下这个tutorial可能会有所帮助,但我实际上建议使用其他方法。

基本上,fpdf没有内置html编写器,据我所知至少没有。因此,我建议一个pdf编写器,它可以更好地支持您的需求。看一下Snappywkhtmltopdf。借助Snappy和wkhtmltopdf,您可以很容易地通过将html传递给它来动态生成pdf,就像您在示例中尝试的那样。

<?php

use Knp\Snappy\Pdf;

$snappy = new Pdf('/path/to/wkhtmltopdf');
$snappy->generateFromHtml(View::make('admin/invoice/InvoiceTemplate/template'), '/tmp/invoice.pdf');