手把手教你打印出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中支持多种编码的中文字符串截取函数!
Mar 20 PHP
ThinkPHP php 框架学习笔记
Oct 30 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
浅谈php serialize()与unserialize()的用法
Jun 05 PHP
帝国cms目录结构分享
Jul 06 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
php实现中文转数字
Feb 18 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
thinkPHP事务操作简单案例分析
Oct 17 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
php自动给网址加上链接的方法
2015/06/02 PHP
php上传图片类及用法示例
2016/05/11 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
基于jquery的表格排序
2010/09/11 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python 第一步 hello world
2009/09/25 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python画微信表情符的实例代码
2019/10/09 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
旅游饭店管理专业自荐书
2014/06/28 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android