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

今天使用的类叫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的。
代码及类文件下载:点击下载

(0)

相关推荐

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

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

  • 手把手教你使用Java实现在线生成pdf文档

    目录 一.介绍 二.案例实现 2.1添加iText依赖包 2.2简单实现 2.3复杂实现 2.4变量替换方式 三.总结 一.介绍 在实际的业务开发的时候,研发人员往往会碰到很多这样的一些场景,需要提供相关的电子凭证信息给用户,例如网银/支付宝/微信购物支付的电子发票.订单的库存打印单.各种电子签署合同等等,以方便用户查看.打印或者下载. 例如下图的电子发票! 熟悉这块业务的童鞋,一定特别清楚,目前最常用的解决方案是:把相关的数据信息,通过一些技术手段生成对应的 PDF 文件,然后返回给用户,以便

  • 手把手教你实现 Promise的使用方法

    前言 很多 JavaScript 的初学者都曾感受过被回调地狱支配的恐惧,直至掌握了 Promise 语法才算解脱.虽然很多语言都早已内置了 Promise ,但是 JavaScript 中真正将其发扬光大的还是 jQuery 1.5 对 $.ajax 的重构,支持了 Promise,而且用法也和 jQuery 推崇的链式调用不谋而合.后来 ES6 出世,大家才开始进入全民 Promise 的时代,再后来 ES8 又引入了 async 语法,让 JavaScript 的异步写法更加优雅. 今天我

  • 手把手教你用Hexo+Github搭建属于自己的博客(详细图文)

    在大三的时候,一直就想搭建属于自己的一个博客,但由于各种原因,最终都不了了之,恰好最近比较有空,于是就自己参照网上的教程,搭建了属于自己的博客. 至于为什么要搭建自己的博客了? 哈哈,大概是为了装逼吧,同时自己搭建博客的话,样式的选择也比较自由,可以自己选择,不需要受限于各大平台. 转载请注明原博客地址:手把手教你用Hexo+Github 搭建属于自己的博客 大概可以分为以下几个步骤 搭建环境准备(包括node.js和git环境,gitHub账户的配置) 安装Hexo 配置Hexo 怎样将Hex

  • 手把手教你使用 virtualBox 让虚拟机连接网络的教程

    1 设置 virtualBox 打开设置->网络 采用桥接模式连接网络,并选择对应的物理网卡. 2 设置虚拟机(centos7) 1.使用 nmcli 命令,查看当前虚拟机的所有网络基本信息: nmcli connection show 具体参数说明如下: 参数名称 说明 NAME 连网代号,通常与 DEVICE 一样 UUID 识别码 TYPE 网卡的类型:802-3-ethernet 就是以太网 DEVICE 网卡名称 * 这里的 enp0s3 是 centos7 自动生成的带随机数的网卡名

  • Android消息推送:手把手教你集成小米推送(附demo)

    前言 在Android开发中,消息推送功能的使用非常常见. 为了降低开发成本,使用第三方推送是现今较为流行的解决方案. 今天,我将手把手教大家如何在你的应用里集成小米推送 目录 1. 官方Demo解析 首先,我们先对小米官方的推送Demo进行解析. 请先到官网下载官方Demo和SDK说明文档 1.1 Demo概况 目录说明: DemoApplication类 继承自Application类,其作用主要是:设置App的ID & Key.注册推送服务 DemoMessageReceiver类 继承自

  • 比较详细的手把手教你写批处理(willsort题注版)第1/5页

    另,建议Climbing兄取文不用拘泥于国内,此类技术文章,内外水平相差极大:与其修正国内只言片语,不如翻译国外优秀著述. -------------------------------------------------------- 标题:手把手教你写批处理-批处理的介绍 作者:佚名 编者:Climbing 题注:willsort 日期:2004-09-21 -------------------------------------------------------- 批处理的介绍 扩展名

  • 手把手教你配置一台Linux虚拟机

    手把手教你配置一台Linux虚拟机 前言: Linux distribution 越来越多,也越来越成熟,所以安装起来也是比较简单,但是要理解安装的每一个步骤还是需要对Linux的基础知识有一定的了解,不过不用很深入,如果很深入我也不会.这里我选择的安装方式都是最简单的,在磁盘分区最重要的步骤也是以最简单的方式分区. 本次Linux配置的目的不是作为商业用途,而是在于新手熟悉Linux的操作系统,使新手能自己在本地配置Linux系统. 选择distrubution版本,因为我们是把Linux作为

  • 手把手教你用python抢票回家过年(代码简单)

    首先看看如何快速查看剩余火车票? 当你想查询一下火车票信息的时候,你还在上12306官网吗?或是打开你手机里的APP?下面让我们来用Python写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你想要的火车票信息!如果你刚掌握了Python基础,这将是个不错的小练习. 接口设计 一个应用写出来最终是要给人使用的,哪怕只是给你自己使用.所以,首先应该想想你希望怎么使用它?让我们先给这个小应用起个名字吧,既然及查询票务信息,那就叫它tickets好了.我们希望用户只要输入出发站,到达站以

  • C语言手把手教你实现贪吃蛇AI(下)

    本文实例为大家分享了C语言实现贪吃蛇AI的具体代码,供大家参考,具体内容如下 1. 目标 这一部分的目标是把之前写的贪吃蛇加入AI功能,即自动的去寻找食物并吃掉. 2. 控制策略 为了保证蛇不会走入"死地",所以蛇每前进一步都需要检查,移动到新的位置后,能否找到走到蛇尾的路径,如果可以,才可以走到新的位置:否则在当前的位置寻找走到蛇尾的路径,并按照路径向前走一步,开始循环之前的操作,如下图所示.这个策略可以工作,但是并不高效,也可以尝试其他的控制策略,比如易水寒的贪吃蛇AI 运行效果如

随机推荐