手把手教你打印出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 smarty的预保留变量总结
Dec 04 PHP
PHP操作xml代码
Jun 17 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
Jun 19 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 PHP
php中Ctype函数用法详解
Dec 09 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 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
PHP4实际应用经验篇(6)
2006/10/09 PHP
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
JavaScript中URL编码函数代码
2011/01/11 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python内建模块struct实例详解
2018/02/02 Python
python3实现随机数
2018/06/25 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
django 取消csrf限制的实例
2020/03/13 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
python编程的核心知识点总结
2021/02/08 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
普天C++笔试题
2016/03/20 面试题
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
广告学专业自荐信范文
2014/02/24 职场文书
腾讯广告词
2014/03/19 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫