laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)

简介: laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)

本教程意在解决laravel6以上版本按照laravel-dompdf官方文档无法实现pdf导出成功的问题。

laravel转pdf,laravel实现html转pdf,laravel生成pdf

安装


使用composer进行安装

composer require barryvdh/laravel-dompdf

配置


config/app.php的providers数组中注册laravel-dompdf的服务提供者

'providers' => [
  ....
  Barryvdh\DomPDF\ServiceProvider::class,
],

config/app.php的aliases数组中注册laravel-dompdf的门面

'aliases' => [
  ....
  'PDF' => Barryvdh\DomPDF\Facade::class,
],

关键配置


这一步的配置是区别于laravel5.*的,所以在laravel6以上版本使用laravel-dompdf的要特别注意

在bootstrap/app.php中添加如下代码进行服务绑定

...
$app->singleton(\Barryvdh\DomPDF\ServiceProvider::class);
return $app;

资源发布


使用如下命令发布laravel-dompdf资源,会在config目录下产生一个配置文件如图

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"

image.png

使用


注册路由

Route::get('/test_report_download', 'TestController@reportDownload');

在相应控制器方法中实现转换下载

  • loadView方法与laravel的视图渲染方法完全一致,第一个参数为视图模板,第二个参数为传递到视图中的数据
  • 视图模板中尽量不要使用flex进行布局,否则页面效果可能会没那么好
  • 推荐使用table布局,这样下载下来的报告更加美观,样式直接使用css进行控制就好
<?php
use PDF;
class TestController{
    public function reportDownload () {
        $testReport = ["one"=>1, "two"=>2];
        $pdf = PDF::loadView("fs.test_pdf_report", ["data"=>$testReport]);
        return $pdf->download("测试报告".date("YmdHis").".pdf");
    }
}

视图模板resources/fs/test_pdf_report.blade.php

<h3>测试报告</h3>
<table>
    <tr>
        <td>{{$data['one']}}</td>
        <td>{{$data['two']}}</td>
    </tr>
</table>

中文乱码解决方案


参考


项目地址:https://github.com/barryvdh/laravel-dompdf

6.0参考地址:https://hackthestuff.com/article/laravel-6-how-to-generate-html-to-pdf-with-laravel-dompdf


目录
相关文章
|
2月前
|
数据采集 Web App开发 JavaScript
Puppeteer自动化:使用JavaScript定制PDF下载
在现代Web开发中,自动化工具如Puppeteer可显著提升效率并减少重复工作。Puppeteer是一款强大的Node.js库,能够控制无头Chrome或Chromium浏览器,适用于网页快照生成、数据抓取及自动化测试等任务。本文通过示例展示了如何使用Puppeteer自动化生成定制化的PDF文件,并介绍了如何通过配置代理IP、设置user-agent和cookie等技术增强自动化过程的灵活性与稳定性。具体步骤包括安装Puppeteer、配置代理IP、设置user-agent和cookie等,最终生成符合需求的PDF文件。此技术可应用于报表生成、发票打印等多种场景。
153 6
Puppeteer自动化:使用JavaScript定制PDF下载
|
1月前
|
前端开发 API
前端界面生成PDF并导出下载
【10月更文挑战第21天】利用合适的第三方库,你可以在前端轻松实现界面生成 PDF 并导出下载的功能,为用户提供更方便的文档分享和保存方式。你还可以根据具体的需求进一步优化和定制生成的 PDF 文件,以满足不同的业务场景要求。
|
2月前
|
Java BI API
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
这篇文章介绍了如何在Spring Boot项目中整合iTextPDF库来导出PDF文件,包括写入大文本和HTML代码,并分析了几种常用的Java PDF导出工具。
586 0
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
|
2月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
129 2
|
3月前
|
前端开发
Twaver-HTML5基础学习(37)network导出图片并下载
本文介绍了如何在Twaver-HTML5中将network导出为图片并提供下载,主要通过将network转换为canvas对象,然后转换为base64编码的图片进行展示和下载。
43 5
|
2月前
|
资源调度 前端开发 JavaScript
安利一款基于canvas/svg的富文本编辑器-支持在线导出PDF、DOCX
高性能:利用Canvas和SVG进行图形和矢量图形的渲染,提供高性能的绘图能力。 可扩展性:Canvas-Editor是一个开源项目,支持通过插件机制扩展编辑器的功能,如DOCX、PDF导出、表格分页等。 丰富的文本编辑功能:支持多种文本编辑操作,如插入表格、分页、性能优化等。
278 0
|
2月前
|
JavaScript 前端开发 容器
Vue生成PDF文件攻略:html2canvas与jspdf联手,中文乱码与自动换行难题攻克
Vue生成PDF文件攻略:html2canvas与jspdf联手,中文乱码与自动换行难题攻克
218 0
|
3月前
|
JavaScript
vue导出pdf(接口)
vue导出pdf(接口)
27 3
|
3月前
|
移动开发 前端开发 JavaScript
使用html-to-image代替html2canvas,结合jspdf实现下载pdf(下载截图下载前端dom元素)
本文介绍了在前端项目中,当使用`html2canvas`遇到问题时,如何使用`html-to-image`库作为替代方案,结合`jspdf`实现将DOM元素生成为PDF文件并提供下载。文章首先讨论了`html2canvas`可能遇到的问题,并提供了该库的使用示例代码。随后,详细介绍了`html-to-image`库的安装和使用方法,展示了如何将DOM元素转换为Canvas,再利用`jspdf`生成PDF文件。最后,文章通过示例代码说明了整个转换和下载的过程,并展示了效果截图。
163 0
|
4月前
|
JavaScript 前端开发
vue导出pdf(大数量可能有问题)
vue导出pdf(大数量可能有问题)
201 2