以前,我在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,这样我就可以原封不动地发送它。
答案 0 :(得分:0)
您的目标似乎是将原始html转储到pdf并进行相应的格式化?看一下这个tutorial可能会有所帮助,但我实际上建议使用其他方法。
基本上,fpdf没有内置html编写器,据我所知至少没有。因此,我建议一个pdf编写器,它可以更好地支持您的需求。看一下Snappy和wkhtmltopdf。借助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');