thinkphp整合系列之tcpdf类生成pdf文件

php生成pdf文件的需求是不怎么常见的;当然也是有的;

既然已经整合使用了;那就写篇博客来讲解下吧;

示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin

一:引入tcpdf

/ThinkPHP/Library/Vendor/Tcpdf

把tcpdf整个目录拷到自己的项目中;

二:函数

/Application/Common/Common/function.php

/** * 生成pdf * @param  string $html      需要生成的内容 */function pdf($html=‘<h1 style="color:red">hello word</h1>‘){    vendor(‘Tcpdf.tcpdf‘);    $pdf = new \Tcpdf(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, ‘UTF-8‘, false);    // 设置打印模式    $pdf->SetCreator(PDF_CREATOR);    $pdf->SetAuthor(‘Nicola Asuni‘);    $pdf->SetTitle(‘TCPDF Example 001‘);    $pdf->SetSubject(‘TCPDF Tutorial‘);    $pdf->SetKeywords(‘TCPDF, PDF, example, test, guide‘);    // 是否显示页眉    $pdf->setPrintHeader(false);    // 设置页眉显示的内容    $pdf->SetHeaderData(‘logo.png‘, 60, ‘baijunyao.com‘, ‘白俊遥博客‘, array(0,64,255), array(0,64,128));    // 设置页眉字体    $pdf->setHeaderFont(Array(‘dejavusans‘, ‘‘, ‘12‘));    // 页眉距离顶部的距离    $pdf->SetHeaderMargin(‘5‘);    // 是否显示页脚    $pdf->setPrintFooter(true);    // 设置页脚显示的内容    $pdf->setFooterData(array(0,64,0), array(0,64,128));    // 设置页脚的字体    $pdf->setFooterFont(Array(‘dejavusans‘, ‘‘, ‘10‘));    // 设置页脚距离底部的距离    $pdf->SetFooterMargin(‘10‘);    // 设置默认等宽字体    $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);    // 设置行高    $pdf->setCellHeightRatio(1);    // 设置左、上、右的间距    $pdf->SetMargins(‘10‘, ‘10‘, ‘10‘);    // 设置是否自动分页  距离底部多少距离时分页    $pdf->SetAutoPageBreak(TRUE, ‘15‘);    // 设置图像比例因子    $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);    if (@file_exists(dirname(__FILE__).‘/lang/eng.php‘)) {        require_once(dirname(__FILE__).‘/lang/eng.php‘);        $pdf->setLanguageArray($l);    }    $pdf->setFontSubsetting(true);    $pdf->AddPage();    // 设置字体    $pdf->SetFont(‘stsongstdlight‘, ‘‘, 14, ‘‘, true);    $pdf->writeHTMLCell(0, 0, ‘‘, ‘‘, $html, 0, 1, 0, true, ‘‘, true);    $pdf->Output(‘example_001.pdf‘, ‘I‘);}

三:使用方法

好吧;这个没什么好说的了;全写注释里面了;

更多栗子:/ThinkPHP/Library/Vendor/Tcpdf/examples

需要注明的就是:

  1. 可以写html标签的;比如说是识别h标签的字体加粗加大效果的;
  2. 可以写style样式;但是并不能完全支持;
  3. tcpdf的官网需要自带梯子:http://www.tcpdf.org

本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com

时间: 2024-12-26 11:41:02

thinkphp整合系列之tcpdf类生成pdf文件的相关文章

thinkphp整合系列之phpexcel生成生成excel文件

在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲解thinkphp整合phpexcel的过程: 示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin 一:导入phpexcel /ThinkPHP/Library/Vendor/PHPExcel 二:生成excel的函数 /** * 数组

使用TCPDF插件生成pdf以及pdf的中文处理

目录(?)[+] 多种多样的pdf开发库 WKHTMLTOPDF 2FPDF 3TCPDF 中文问题 做了这么多年项目,以前只是在别人的项目中了解过PHP生成pdf文件,知道并不难,但是涉及到了pdf开发库,首先介绍pdf库. 多种多样的pdf开发库 1.WKHTMLTOPDF wkhtmltopdf是一个很好的解决方案,基本上可以原样输出html页面中的内容,包括:图片/代码高亮部分css/页头/页尾等.有php和命令行方式,大概思路如下: 1) 先获取所有的远程html,然后生成wkhtml

thinkphp整合系列之微信公众号支付

thinkphp整合系列之微信公众号支付 白俊遥 2016-07-17 11:26:52 PHP thinkphp 公众号支付是指在微信app中访问的页面通过js直接调起微信支付:因此页面必须是在微信中打开的:示例项目:https://github.com/baijunyao/thinkphp-bjyadmin一:设置域名登录微信公众平台:微信支付中设置支付授权目录:把域名改为自己的:注意最后是有一个斜线的 / 设置授权域名:二:导入sdk/ThinkPHP/Library/Vendor/Wei

怎么用PHP在HTML中生成PDF文件

原文:Generate PDF from html using PHP 译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PHP并借助FPDF来生成PDF文件.但是如今,已经有很多函数库可以使用了,并且能够从你提供的HTML文件生成PDF文档.这让原先耗时的工作变得非常简单了. FPDF是很早就被使用的,其特点如下: FPDF FPDF是一个允许使用纯PHP生成PDF文档的PHP类,换句话说,没有使用PDFlib 函数库.

.NET生成PDF文件

C#未借助第三方组件,自己封装通用类,生成PDF文件. 调用方式: //路径 string path = @"C:\yuannwu22.pdf"; //内容 string strContent = "ddd3232342434d"; new PDFGenerator.PDFGenerator(path, strContent).Create(); 下载地址: http://pan.baidu.com/s/1kTIchev?

史上最强php生成pdf文件,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF 这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文 件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半

[轉載]史上最强php生成pdf文件,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF 这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文 件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半

Freemarker+IText生成pdf文件

最近项目中遇到要用html生成pdf文件的需求,一开始研究了下前端插件jspdf,使用h5 canvas绘图生成图片,再把图片生成pdf文件,遇到了各种各样的问题,生成的pdf文件达到20多M,height超过5000浏览器就崩溃,有兴趣的童鞋可以尝试一下,该方案LZ最终放弃了. 接着开始尝试服务端生成,使用freemaker模板生成静态html文件,通过iext生成pdf,网上很多关于renderer.setDocument(dom,null)的用法,LZ尝试后发现效率奇低,最后放弃了,直接使

页面生成PDF文件。。。。

终于找到一个能完美生成pdf文件的包了,TCPDF.  官网:www.tecnick.com 真的是找了好久. 我的百度网盘里有这个,http://pan.baidu.com/s/1nvC8ail 先前不知道怎么下载,在这里也记下: header("Content-type:text/html;charset=utf-8"); $file_name = $_REQUEST['file']; //用以解决中文不能显示出来的问题 $file_name=iconv("utf-8&q