PHP laravel实现导出PDF功能

吾爱主题 阅读:337 2022-11-24 12:31:00 评论:0

一、laravel-tcpdf

导出PDF文件Laravel框架为我们集成了一个插件tcpdf。

下载地址:

https://github.com/elibyy/tcpdf-laravel

然后使用composer进行安装就可以了。

具体安装过程,请查看文末补充内容

使用的时候记得use 一下 命名空间。

但是这里有一个问题,使用这个插件导出文件无法使用中文,且我还没有找到解决办法,因此,这个laravel的tcpdf插件我就没有使用。

二、tcpdf

tcpdf官方网站:

tcpdf.org/

我下载了完整版的TCPDF

下载地址:https://github.com/tecnickcom/TCPDF.git

我们将下载的包放在框架根目录下的app/Extend/tcpdf中。

调用代码:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49          require_once ( "../app/Extend/tcpdf/tcpdf.php" ); $pdf = new TCPDF();          // 设置文档信息          $pdf ->SetCreator( '懒人开发网' );          $pdf ->SetAuthor( '懒人开发网' );          $pdf ->SetTitle( 'TCPDF示例' );          $pdf ->SetSubject( 'TCPDF示例' );          $pdf ->SetKeywords( 'TCPDF, PDF, PHP' );            // 设置页眉和页脚信息          $pdf ->SetHeaderData( 'tcpdf_logo.jpg' , 30, 'LanRenKaiFA.com' , '学会偷懒,并懒出效率!' , [0, 64, 255], [0, 64, 128]);          $pdf ->setFooterData([0, 64, 0], [0, 64, 128]);            // 设置页眉和页脚字体          $pdf ->setHeaderFont([ 'stsongstdlight' , '' , '10' ]);          $pdf ->setFooterFont([ 'helvetica' , '' , '8' ]);            // 设置默认等宽字体          $pdf ->SetDefaultMonospacedFont( 'courier' );            // 设置间距          $pdf ->SetMargins(15, 15, 15); //页面间隔          $pdf ->SetHeaderMargin(5); //页眉top间隔          $pdf ->SetFooterMargin(10); //页脚bottom间隔            // 设置分页          $pdf ->SetAutoPageBreak(true, 25);            // set default font subsetting mode          $pdf ->setFontSubsetting(true);            //设置字体 stsongstdlight支持中文          $pdf ->SetFont( 'stsongstdlight' , '' , 14);            //第一页          $pdf ->AddPage();          $pdf ->writeHTML( '<div style="text-align: center"><h1>第一页内容</h1></div>' );          $pdf ->writeHTML( '<p>我是第一行内容</p>' );          $pdf ->writeHTML( '<p style="color: red">我是第二行内容</p>' );          $pdf ->writeHTML( '<p>我是第三行内容</p>' );          $pdf ->Ln(5); //换行符          $pdf ->writeHTML( '<p><a href="http://www.lanrenkaifa.com/" rel="external nofollow"  id="codetool">

三、TCPDF解决保存中文文件名的方法

这部分是百度过来的,网上挺多关于这个的文章的,内容基本一致。

1:找到output函数,注释以下代码(在7560行左右):

?
1 2 3 4 if ( $dest [0] != 'F' ) {      $name = preg_replace( '/[s]+/' , '_' , $name );      $name = preg_replace( '/[^a-zA-Z0-9_.-]/' , '' , $name ); }

2:搜索下面这行代码

?
1 header( 'Content-Disposition: attachment; filename="' . basename ( $name ). '"' );

替换成:

?
1 header( 'Content-Disposition: attachment; filename="' . $name . '"' );

以上大概就是tcpdf的基本使用。

补充

laravel5.8引入第三方类库的方法详解

有需求需要使用PHPMailer发送邮件。

那么首先需要引入PHPMailer这个第三方的类库。我是这样做的:

1:在app目录下新建Extend目录。如下图所示:

将PHPMailer放入Extend目录下。如下图所示

2:修改项目根目录下的composer.json文件

?
1 2 3 4 5 6 7 8 9 10 "autoload" : {          "psr-4" : {              "App\\" : "app/"          },          "classmap" : [              "database/seeds" ,              "database/factories" ,              "app/Extend/PHPMailer/src"          ]      },

添加你第三方类库的位置到autoload中

3:执行composer命令,在网站根目录下:

composer dump-autoload

4:调用:

(1):使用命名空间

?
1 use PHPMailer\src\PHPMailer;

(2):调用

?
1 2 //实例化PHPMailer核心类 $mail = new PHPMailer();

如果报错,就在实例化前边加一个转义符\

至此,laravel引入第三方类库成功。

到此这篇关于PHP laravel实现导出PDF功能的文章就介绍到这了,更多相关PHP laravel导出PDF内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7158241850363478030

  • Laravel
  • PDF
  • 导出
  • 延伸 · 阅读

    精彩推荐 最近更新 编辑推荐 阅读排行 热门标签 2038   2021   65279   100010   实参   形参   PHP文件   bcompiler   在线时间   存储方案   PHP技术   php安全   编程效率   Foxmail   PHPnow   apache_pn   visitFile   dede模板标签   escape   IP查询   GOOGLE地图   递归循环   颠倒   变量引用   自动获取   递归删除   加载文件   异常机制   递增运算   RuoYi   © 2019-2022 服务器之家(www.tuohang.net) 版权所有 关于我们联系我们版权申明网站地图
    可以去百度分享获取分享代码输入这里。
    声明

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    【腾讯云】云服务器产品特惠热卖中
    搜索
    标签列表
      关注我们

      了解等多精彩内容