oyswonder / html2pdf
一个简单的包,用于轻松将HTML页面生成PDF文档。此包专为Laravel设计,但您也可以在不使用Laravel的情况下使用。
1.5.0
2022-07-17 08:02 UTC
README
一个简单的包,用于把HTML页面生成为PDF文档。该程序包专门用于laravel,但您可以在不使用laravel的情况下使用。 此包是基于 nahidulhasan/laravel-pdf 上修改的。
安装
安装wkhtmltopdf
以下系统已测试
- Ubuntu 18.04.3 x64
- Windows 10 x64
wkhtmltopdf ≥ 0.12.5
官网直接下载安装包安装(推荐)
官网安装包包含qt,可以直接运行wkhtmltopdf而不需要额外安装vxfb
https://wkhtmltopdf.org/downloads.html
通过apt安装
sudo apt-get update sudo apt-get install xvfb libfontconfig wkhtmltopdf
对于Docker
RUN apt-get update && apt-get install xvfb libfontconfig wkhtmltopdf
更新Composer
composer require oyswonder/html2pdf
如果Laravel版本<5.5,请将ServiceProvider添加到config/app.php中的providers数组中
oyswonder\Html2pdf\Html2pdfServiceProvider::class,
您可以选择将facade用于较短的代码。把这个加到你的facades上
'Pdf' => oyswonder\Html2pdf\Facades\Pdf::class,
基本用法
要创建PDF,请向您的Controller中添加类似内容。
use oyswonder\Html2pdf\Facades\Pdf; $document = Pdf::generatePdf('http://bantouren.com/html/table/sample.html');
下载pdf
将PDF保存到特定文件夹中的文件中,然后下载
use oyswonder\Html2pdf\Pdf;
$obj = new Pdf();
$url = 'http://bantouren.com/html/table/sample.html';
$invoice = $obj->generatePdf($url);
define('INVOICE_DIR', public_path('uploads/invoices'));
if (!is_dir(INVOICE_DIR)) {
mkdir(INVOICE_DIR, 0755, true);
}
$outputName = str_random(10);
$pdfPath = INVOICE_DIR.'/'.$outputName.'.pdf';
File::put($pdfPath, $invoice);
$headers = [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="'.'filename.pdf'.'"',
];
return response()->download($pdfPath, 'filename.pdf', $headers);
其他用法
也可以使用以下方法
pdf::stream('http://bantouren.com/html/table/sample.html') 在浏览器中打开PDF文件
在不使用Laravel的情况下运行
您可以不在Laravel中使用此库。
例如
use oyswonder\Html2pdf\Pdf;
$obj = new Pdf();
$document = $obj->generatePdf('http://bantouren.com/html/table/sample.html');
许可证
Html2PDF for Laravel 是根据 MIT许可证 许可的。