手把手教你打印出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 相关文章推荐
PHP DataGrid 实现代码
Aug 12 PHP
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
php中实现简单的ACL 完结篇
Sep 07 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 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
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
Python原始套接字编程实例解析
2020/01/29 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
成人继续教育实施方案
2014/03/01 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL