手把手教你打印出PDF(关于fpdf的简单应用)


Posted in PHP onJune 25, 2013

今天使用的类叫FPDF,FPDF这个PHP Class允许你采用纯PHP(更确切地说就是不需要使用PDFlib)来生成PDF文件。它以PHP Class展现并且加速PDF文档在编程语言中的进程。它所具有的特点包括:可选择的单元大小,页面格式和页边距;页眉和页脚管理;自动分页;自动换行与文本自动对齐等等。 同时它还支持多种图片格式,如JPEG,PNG,TrueType和Type1等等。试用一下你一定不会失望。
1、从网上下载fpdf的类,然后实用require包含进来(附件里也有)。

require('./fpdf/fpdf.php');//包含pdf文件

2、然后我们定义一个数组,数组的内容是今天的奖牌情况  
/*
     * country,国家
     * nationalFlag,国旗
     * glod,金牌数量
     * silver,银牌数量
     * copper,银牌数量
     */    
          $platle=array(
        array('country'=>'PRC','nationalFlag'=>'rpc.jpg','glod'=>27,'silver'=>13,'copper'=>15),
        array('country'=>'USA','nationalFlag'=>'usa.jpg','glod'=>25,'silver'=>16,'copper'=>4),
        array('country'=>'UK','nationalFlag'=>'uk.jpg','glod'=>14,'silver'=>7,'copper'=>8)
          );

3、既然第一步已经包含进类来了,然后咱再自己定义一个类以方便定义自己的内容
class PDF extends FPDF{
          /*
         * $count,国家
         * $nationalFlag,国旗的图片地址
         * $imageX,国旗的x坐标
         * $imageY,国旗的Y坐标
         * $goldTotal,金牌总数
         * $silverTotal,银牌总数
         * $copperTotal,铜牌总数
         */
        function createHead($country,$nationalFlag,$imageX,$imageY,$goldTotal,$silverTotal,$copperTotal){
              $this->setFont('Arial','B','24');//定义一个字体及样式
            $this->cell(40,20,$country,15);//显示各个国家的信息
            $this->image($nationalFlag,$imageX,$imageY);//国旗的位置
            $this->setX('70');//设置国旗的坐标
            $this->setTextColor(200,160,12);//设置金牌的颜色
            $this->cell(40,20,$goldTotal);//显示金牌数量
            $this->setX('100');//设置金牌数量的显示位置
            $this->setTextColor(170,162,138);//设置银牌的颜色
            $this->cell(40,20,$silverTotal);//显示银牌数量
            $this->setX('130');//设置银牌数量的显示位置
            $this->setTextColor(187,120,68);//设置铜牌的颜色
            $this->cell(40,20,$copperTotal);//显示银牌的位置
            $this->ln();//进行换行
            $this->setTextColor(0,0,0);//因为设置的颜色能在整个页面都有效,所以这里每次输入一个国家的信息就恢复初始的颜色
        }
    }

使用到的各种方法解释:
1、SetFont(string family [, string style [, float size]])
设定字符串的字型。在文字或整篇文章显示之前,该方法设置的字体在整个PDF文件中都试用。
参数1:family,设定需要的字体。
参数2:style,设定样式。(空字符串代表普通文字,U代表下划线,B代表粗体,I代表斜体)。
参数3:size,字体的大小。

2、Cell(float w [, float h [, string txt]])
显示一个储存格 (长方形范围),同时,也提供其它功能选项,包括(边框、背景颜色、字符串)。储存格左上角的位置为目前位置。
注:该方法中还有其他的参数,没有列出来。因为在该实验中没有用到。
参数1:w储存格宽度。 若为:0,这个储存格会延伸至页的右边边缘。
参数2:储存格高度。默认值为:0.
参数3:txt,要打印出来的内容。

3、Ln([float h])
完成行中断,并且换行。会使到目前的(x,y)坐标改变,横坐标(x)回到去左边边缘,并且将纵坐标(y)高度增加。
参数1:h,下一行的距离或高度。默认值为:高度相等于最后显示的高度。

4、SetTextColor(int r [, int g, int b])
定义文字使用的颜色。可以使用RGB色彩或灰阶模式来定义。这个功能可以在一页之前建立,而且那个色彩值会保留在一页到另一页。

4、类已经定义完了,最后调用一下

$pdf=new PDF();//实例化类
    $pdf->AddPage();
    $imageX=40;//设置图片的初始X值
    $imageY=15;//设置图片的初始Y值
    foreach($platle as $key=>$value){
        $pdf->createHead($value['country'],$value['nationalFlag'],$imageX,$imageY,$value['glod'],$value['silver'],$value['copper']);
          $imageY+=20;
    }
    $pdf->output();//输出PDF

注:
1、AddPage()方法是用来生成一个新的页面的。每调用一次都生成一个新的页面。
2、outPut()方法是用来输出PDF的。
代码及类文件下载:点击下载
PHP 相关文章推荐
利用 window_onload 实现select默认选择
Oct 09 PHP
Ajax PHP分页演示
Jan 02 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
使用php转义输出HTML到JavaScript
Mar 27 PHP
php实现求相对时间函数
Jun 15 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
php接口技术实例详解
Dec 07 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
php无限级评论嵌套实现代码
Apr 18 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
Jun 25 #PHP
关于Sphinx创建全文检索的索引介绍
Jun 25 #PHP
使用Sphinx对索引进行搜索
Jun 25 #PHP
深入PHP许愿墙模块功能分析
Jun 25 #PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 #PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 #PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 #PHP
You might like
信用卡效验程序
2006/10/09 PHP
php 全局变量范围分析
2009/08/07 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
header导出Excel应用示例
2014/01/24 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
基于jquery库的tab新形式使用
2012/11/16 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
python开发入门——set的使用
2020/09/03 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
利用python汇总统计多张Excel
2020/09/22 Python
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
物业管理员岗位职责范文
2013/11/25 职场文书
婚前协议书
2014/04/15 职场文书
工厂车间标语
2014/06/19 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书