TP5下利用TCPDF类把HTML页面,数据库数据转PDF格式

TP5下利用TCPDF类把HTML页面,数据库数据转PDF格式

1.composer下载TCPDF插件

https://packagist.org/packages/tecnickcom/tcpdf

2.把TCPDF类引入到 vendor目录下

3.thinkphp5下新建Application/common/common/function.php

  1. <?php
  2. /**方法一@
  3. * 生成pdf
  4. * @param string $html 需要生成的内容
  5. */
  6. function pdf($html=array(),$title="标题",$fileName=""){
  7. $fileName = time();
  8. vendor( 'tcpdf.tcpdf'); //导入TCPDF类
  9. $pdf = new \Tcpdf(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
  10. // 设置打印模式
  11. //设置文件信息,头部的信息设置
  12. $pdf->SetCreator(PDF_CREATOR);
  13. $pdf->SetAuthor( "作者");
  14. $pdf->SetTitle($title);
  15. $pdf->SetSubject( 'TCPDF Tutorial');
  16. $pdf->SetKeywords( 'TCPDF, PDF, example, test, guide'); //设置关键字
  17. // 是否显示页眉
  18. $pdf->setPrintHeader( false);
  19. // 设置页眉显示的内容
  20. $pdf->SetHeaderData( 'logo.png', 60, 'baijunyao.com', '', array( 0, 64, 255), array( 0, 64, 128));
  21. // 设置页眉字体
  22. $pdf->setHeaderFont( Array( 'deja2vusans', '', '12'));
  23. // 页眉距离顶部的距离
  24. $pdf->SetHeaderMargin( '5');
  25. // 是否显示页脚
  26. $pdf->setPrintFooter( true);
  27. // 设置页脚显示的内容
  28. $pdf->setFooterData( array( 0, 64, 0), array( 0, 64, 128));
  29. // 设置页脚的字体
  30. $pdf->setFooterFont( Array( 'dejavusans', '', '10'));
  31. // 设置页脚距离底部的距离
  32. $pdf->SetFooterMargin( '10');
  33. // 设置默认等宽字体
  34. $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
  35. // 设置行高
  36. $pdf->setCellHeightRatio( 1);
  37. // 设置左、上、右的间距
  38. $pdf->SetMargins( '10', '10', '10');
  39. // 设置是否自动分页 距离底部多少距离时分页
  40. $pdf->SetAutoPageBreak( TRUE, '15');
  41. // 设置图像比例因子
  42. $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
  43. if (@file_exists(dirname( __FILE__). '/lang/eng.php')) {
  44. require_once(dirname( __FILE__). '/lang/eng.php');
  45. $pdf->setLanguageArray($l);
  46. }
  47. $pdf->setFontSubsetting( true);
  48. $pdf->AddPage( "A4", "Landscape", true, true);
  49. // 设置字体
  50. $pdf->SetFont( 'stsongstdlight', '', 14, '', true);
  51. $pdf->writeHTML($html); //HTML生成PDF
  52. //$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
  53. $showType= 'I'; //PDF输出的方式。I,在浏览器中打开;D,以文件形式下载;F,保存到服务器中;S,以字符串形式输出;E:以邮件的附件输出。
  54. $pdf->Output( "{$fileName}.pdf", $showType);
  55. }

4.入口文件(index.php)引入function.php(例:require APP_PATH.'/common/common/function.php';)
[php]  view plain  copy
  1. <code class="language-php"></code>  

5.新建控制器Admin.php

  1. <?php
  2. namespace app\ admin\ controller;
  3. use think\ Controller;
  4. use think\ Db;
  5. class Admin extends Controller
  6. {
  7. public function list(){
  8. //如果是把数据库数据转PDF格式执行以下代码
  9. //数据格式只能是字符串
  10. // $data = Db::name('user')->select();
  11. // $html = '';
  12. // foreach($data as $k =>$v){
  13. // foreach($v as $key=>$val ){
  14. // $html .= $val;
  15. // }
  16. // }
  17. // pdf($html);die;
  18. //如果是把HTML页面转PDF格式执行以下代码
  19. $html = "http://localhost/aaa.html";
  20. $data = file_get_contents($html); //获取html页面的url
  21. pdf($data); die;
  22. }
  23. }
到这就完结啦 有没有很简单呢

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值