转载-TCPDF(目前没有实际操作;先存一份记录)
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(目前没有实际操作;先存一份记录)相关推荐
- colab中的在Github中保存一份副本无法保存到自己github
如果我们选择: "文件->在Github中保存一份副本" 我们会发现弹出来的是官方的一些tensorflow的一些repository,那么如何保存到自己的github re ...
- git只提交一张图片_Git 图形化操作之合并提交记录
Git 图形化操作之合并提交记录 Git 图形化操作之合并提交记录 目录1.显示日志2.合并提交记录3.推送合并的提交 独立观察员 2020 年 9 月 24 日 前言:当我们使用 Git 时,有时会 ...
- Git 图形化操作之合并提交记录
Git 图形化操作之合并提交记录 独立观察员 2020 年 9 月 24 日 目录 1.显示日志 2.合并提交记录 3.推送合并的提交 前言:当我们使用 Git 时,有时会遇到刚提交推送完一次修改,发 ...
- 中学计算机课程课时,高中信息技术教案word操作(共5份8课时
<高中信息技术教案word操作(共5份8课时>由会员分享,可在线阅读,更多相关<高中信息技术教案word操作(共5份8课时(4页珍藏版)>请在人人文库网上搜索. 1.课 题:W ...
- 某宝花钱买到的英雄联盟教程,存一份拿去倒卖都是稳赚
某宝花钱买到的教程,存一份拿去倒卖都是稳赚,免费分享给兄弟们了~ 链接: https://pan.baidu.com/s/143INccc32FEYzs2Gvu3qww 提取码: v3dc
- 【转载】Android数据库(SqlLite)操作和db文件查看
原文地址:http://blog.csdn.net/catoop/article/details/7589204 操作步骤很简单,首先导入sqlLite 的DB文件(即File Explorer ...
- 转载:矩阵的掩膜操作实现图像对比度调整
矩阵的掩膜操作实现图像对比度调整 hb707934728 2017-07-04 13:54:17 1170 收藏 最后发布:2017-07-04 13:54:17首发:2017-07-04 13:54 ...
- 【转载】js数组的操作
js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...
- 转载--数据库sql取整操作
转自:http://blog.csdn.net/outget1/article/details/4821975 用oracle sql对数字进行操作: 取上取整.向下取整.保留N位小数.四舍五入.数字 ...
最新文章
- 微信小程序的wxss好难啊,记录我的搞笑界面
- python 三元运算符求abc_python三元运算符实现方法
- mybatis反射的核心类
- 存储世界瞬息万变 SSD掀行业浪潮
- .NET Oject And Json
- 【项目实战】基于 springboot + mybatis + mysql 的电脑商城项目(附源码)
- 搜狗拼音皮肤 php文件,搜狗输入法皮肤制作教程(组图版)
- Java前后端分离项目部署
- 清理MSOCache文件夹
- 电信 网通 铁通 DNS服务器IP地址
- VScode插件管理(C/C++)
- Error: Failed to launch the browser process!
- 二进制转八进制和十六进制
- 使用vigil 监控微服务系统包含可视化界面
- 计算机如何校准颜色,Win7电脑如何校准显示器|电脑显示器颜色校准
- R语言画相关系数矩阵图
- 清华操作系统笔记4——虚拟内存技术
- dpdk pmd驱动分析
- php接口链接浏览器打开很快php很慢,php不管curl还是file_get_contents请求接口都很慢,但直接在浏览器里访问就很快,这是说明情况?...
- k8s集群Deployment与Service+名称空间