TCPDF简明教程
之前用fpdf总觉得fpdf还是不能达到我想要的效果——简单、扩展性强、重用率高,刚好同事在网上找到了tcpdf,这个工具可以算是fpdf的进化版了,最为强大的是,它可以将HTML代码输出成PDF,实在是太强大了。是家意大利的公司开发的(http://www.tcpdf.org/),免费开源,官网上可以下载这个类库,下载下来的压缩包里有很多的exsample文件,里面有生成各类PDF的教程,你只要复制一份,然后根据自己的实际需要来修改就行了。但是,国内有关tcpdf的文档资料实在少得可怜,只有零星的介绍几点有关输出繁体、简体中文的方式:exsample_038.php文件用来测试中文字体,设置字体为$pdf->SetFont('stsongstdlight', '', 20); 下面我就把自己用TCPDF制作的报表代码教程发出来。好让大家学得轻松一点。新增composer 使用tcpdfcomposer require tecnickcom/tcpdf打开压缩包里的exsample文件加中的048号文件,这个文件是专门介绍生成各种table表格的,复制一份。1.首先你要根据数据库来设计报表的样式,写好HTML代码,要考虑的因素有字段、数据类型以及最大的字符长度。比如我的数据库,我就给设计成了下面这种,TCPDF简明教程具体的代码如下:XML/HTML代码
<table border="1" cellspacing="0" cellpadding="0" width="600" style="table-layout:fixed;word-wrap:break-word;">  <tr>  <td>部门</td>  <td>EBL</td>  <td>姓名</td>  <td>damon</td>  <td>工号</td>  <td>543564</td>  <td>职位</td>  <td>程序员</td>  </tr>  <tr>  <td>入职日期</td>  <td>2013/02/22</td>  <td>申请时间</td>  <td>2013/03/09</td>  <td>性别</td>  <td>男</td>  <td>房号</td>  <td>402</td>  </tr>  <tr>  <td colspan="8">原因</td>  </tr>  <tr>  <td colspan="8">TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8,Unicode,HTML和XHTML。</td>  </tr>
</table>
<p></p>
<table border="1" cellspacing="0" cellpadding="0" width="600">  <tr>  <td colspan="5">须知</td>  </tr>  <tr>  <td colspan="5">通过逻辑地布局文本单元格,您已经用适合打印的格式重新创建了初始的网页。在无需变更网页本身或任何基础数据的情况下,TCPDF 让您将创建 PDF 的支持添加到您现存的 PHP 网页上。</td>  </tr>  <tr>  <td>组长</td>  <td>科文</td>  <td>部门主管</td>  <td>部门经理</td>  <td>人事部</td>  </tr>  <tr>  <td>damon</td>  <td>damon</td>  <td>damon</td>  <td>damon</td>  <td>damon</td>  </tr>
</table>  接下来,就把这段HTML代码复制到示例中的$tbl变量中,运行就OK了。2.将下载下来的PDF文件打开,是不是还是发现空白一片?那是因为你使用的是FoxIt Reader或者是Linux操作系统,光是设置字体也没有用。下面,我就来来介绍一下TCPDF如何设置中文字体的。a.下载中文字体包:http://pan.baidu.com/share/link?shareid=327612&uk=606208636b.解压后,将字体包中 droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z 这三个文件复制到fonts目录下。c.加入设置字体代码:$pdf->SetFont(‘droidsansfallback’, ”, 12);d.将刚才文件修改好了之后,再运行一次,“当当当”,大功告成。3.下面我再给出制作PDF中文报表的完整模板,大家只要把你想要做的表格的HTML代码复制到$tbl变量中,就能制作你想要的文件了:PHP代码
<?php
require_once('../config/lang/eng.php');
require_once('../tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 038');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 038', PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set font
//$pdf->SetFont('stsongstdlight', '', 12);
$pdf->SetFont('droidsansfallback', '', 12);
// add a page
$pdf->AddPage();
$pdf->Write(0, '报表', '', 0, 'L', true, 0, false, false, 0);
$tbl = //这里放HTML代码
$pdf->writeHTML($tbl, true, false, false, false, '');
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output('report', 'I');
?>  附录:TCPDF常用函数的使用说明:$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);页面记得也设为utf-8AddPage();新建一个pdf文档页面。Image($file, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi, $palign, $ismask, $imgmask, $border);注:把图片放语句$pdf->AddPage()之后,而这紧挨着,并且使用绝对坐标定位,即可做背景。setFont( '字体','控制显示',字号) 设置文字显示样式也可单独使用setTextcolor(int,int,int)设置文本颜色,三个参数的值必须在0~255之间setFontSize(int );设置字号setFillColor(int,int,int) 设置矩形框之类图形的填充颜色,三个参数值必须在0和255之间输入文字:单行文本Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0)Cell(宽, 高, 内容, 边框, 是否换行, 文字对齐, 文字底色,连接, 变宽)多行文本MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0)MultiCell(宽, 高, 内容, 边框,文字对齐, 文字底色, 是否换行, x坐标, y坐标, 变高, 变宽, 是否支持html, 自动填充, 最大高度)html文字setHtmlLinksStyle($color=array(0,0,255), $fontstyle='U');setHtmlLinksStyle(颜色默认蓝色, U有下划线);addHtmlLink($url, $name, $fill=0, $firstline=false, $color='', $style=-1);addHtmlLink(超链接地址, 显示文字, 是否有底色, $firstline=false, $color='', $style=-1);换行Ln($h='', $cell=false);Ln(行数, 是否cell);加密SetProtection($permissions=array(), $user_pass='', $owner_pass=null);例如:$pdf->SetProtection(array('print','modify','copy','annot-forms'), '123658');图片背景输出pdf$pdf->Output(doc.pdf', 'I');/* 默认是I:在浏览器中打开,D:下载,F:在服务器生成pdf ,S:只返回pdf的字符串

转载-TCPDF(目前没有实际操作;先存一份记录)相关推荐

  1. colab中的在Github中保存一份副本无法保存到自己github

    如果我们选择: "文件->在Github中保存一份副本" 我们会发现弹出来的是官方的一些tensorflow的一些repository,那么如何保存到自己的github re ...

  2. git只提交一张图片_Git 图形化操作之合并提交记录

    Git 图形化操作之合并提交记录 Git 图形化操作之合并提交记录 目录1.显示日志2.合并提交记录3.推送合并的提交 独立观察员 2020 年 9 月 24 日 前言:当我们使用 Git 时,有时会 ...

  3. Git 图形化操作之合并提交记录

    Git 图形化操作之合并提交记录 独立观察员 2020 年 9 月 24 日 目录 1.显示日志 2.合并提交记录 3.推送合并的提交 前言:当我们使用 Git 时,有时会遇到刚提交推送完一次修改,发 ...

  4. 中学计算机课程课时,高中信息技术教案word操作(共5份8课时

    <高中信息技术教案word操作(共5份8课时>由会员分享,可在线阅读,更多相关<高中信息技术教案word操作(共5份8课时(4页珍藏版)>请在人人文库网上搜索. 1.课 题:W ...

  5. 某宝花钱买到的英雄联盟教程,存一份拿去倒卖都是稳赚

    某宝花钱买到的教程,存一份拿去倒卖都是稳赚,免费分享给兄弟们了~ 链接: https://pan.baidu.com/s/143INccc32FEYzs2Gvu3qww 提取码: v3dc

  6. 【转载】Android数据库(SqlLite)操作和db文件查看

    原文地址:http://blog.csdn.net/catoop/article/details/7589204 操作步骤很简单,首先导入sqlLite 的DB文件(即File Explorer   ...

  7. 转载:矩阵的掩膜操作实现图像对比度调整

    矩阵的掩膜操作实现图像对比度调整 hb707934728 2017-07-04 13:54:17 1170 收藏 最后发布:2017-07-04 13:54:17首发:2017-07-04 13:54 ...

  8. 【转载】js数组的操作

    js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...

  9. 转载--数据库sql取整操作

    转自:http://blog.csdn.net/outget1/article/details/4821975 用oracle sql对数字进行操作: 取上取整.向下取整.保留N位小数.四舍五入.数字 ...

最新文章

  1. 微信小程序的wxss好难啊,记录我的搞笑界面
  2. python 三元运算符求abc_python三元运算符实现方法
  3. mybatis反射的核心类
  4. 存储世界瞬息万变 SSD掀行业浪潮
  5. .NET Oject And Json
  6. 【项目实战】基于 springboot + mybatis + mysql 的电脑商城项目(附源码)
  7. 搜狗拼音皮肤 php文件,搜狗输入法皮肤制作教程(组图版)
  8. Java前后端分离项目部署
  9. 清理MSOCache文件夹
  10. 电信 网通 铁通 DNS服务器IP地址
  11. VScode插件管理(C/C++)
  12. Error: Failed to launch the browser process!
  13. 二进制转八进制和十六进制
  14. 使用vigil 监控微服务系统包含可视化界面
  15. 计算机如何校准颜色,Win7电脑如何校准显示器|电脑显示器颜色校准
  16. R语言画相关系数矩阵图
  17. 清华操作系统笔记4——虚拟内存技术
  18. dpdk pmd驱动分析
  19. php接口链接浏览器打开很快php很慢,php不管curl还是file_get_contents请求接口都很慢,但直接在浏览器里访问就很快,这是说明情况?...
  20. k8s集群Deployment与Service+名称空间

热门文章

  1. button layui 点击事件_解决layui中的form表单与button的点击事件冲突问题
  2. Android防劫持
  3. Java与本息总额计算
  4. WinSCP集成PuTTY
  5. Jeesite框架实用 如何实现本公司内数据权限功能使用
  6. 小度机器人3D数字勋章盲盒发售!抽盲盒,赢奖金!参与合成得稀有!
  7. 为什么安装step7时要重启计算机,Step7 安装总是重启的解决办法
  8. 2018年计算机网络考研真题及解析
  9. pb打印:PB中打印预览的实现
  10. npm run dev报错:getaddrinfo ENOTFOUND localhost