http://mp.weixin.qq.com/s?__biz=MzIxMDA0OTcxNA==&mid=2654254929&idx=1&sn=8715d008d19af70a4f3c8b3c652437d5&chksm=8caa988cbbdd119a7051a74be0a7e45224ba77433051a7a73beac7564e8c0db68955f8973206&mpshare=1&scene=23&srcid=0110mxSASSX2YOONxHnojDmm#rd

实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进,增强了实用功能。


特性

TCPDF具有以下特性:

1、支持页面页脚;

2、支持HTML标签代码;

3、支持jpg/png/gif/svg图形图像;

4、支持表格;

5、支持中文字符;(有些PDF类不支持中文或者处理中文相当麻烦)

6、自动分页,自动页码,等等。


如何使用

您可以从TCPDF官网获取最新版本:http://www.tcpdf.org。官网提供了几十个示例以及说明文档,下载解压后一定要注意文件路径,如何使用TCPDF,可以从以下5个步骤完成:

1、require_once导入tcpdf.php文件及相关配置信息;

2、实例化TCPDF;

3、设置PDF文档的格式,包括文档信息、页眉、页尾、字体、外间距、图片边框、分页等;

4、导入PDF文档的内容,可以是单行或多行简单字符串,也可以HTML格式的字符串等;

5、输出PDF文档。


代码示例:




require_once('tcpdf.php'); 

//实例化 

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); 

 

// 设置文档信息 

$pdf->SetCreator('Helloweba'); 

$pdf->SetAuthor('yueguangguang'); 

$pdf->SetTitle('Welcome to helloweba.com!'); 

$pdf->SetSubject('TCPDF Tutorial'); 

$pdf->SetKeywords('TCPDF, PDF, PHP'); 

 

// 设置页眉和页脚信息 

$pdf->SetHeaderData('logo.png', 30, 'Helloweba.com', '致力于WEB前端技术在中国的应用',  

      array(0,64,255), array(0,64,128)); 

$pdf->setFooterData(array(0,64,0), array(0,64,128)); 

 

// 设置页眉和页脚字体 

$pdf->setHeaderFont(Array('stsongstdlight', '', '10')); 

$pdf->setFooterFont(Array('helvetica', '', '8')); 

 

// 设置默认等宽字体 

$pdf->SetDefaultMonospacedFont('courier'); 

 

// 设置间距 

$pdf->SetMargins(15, 27, 15); 

$pdf->SetHeaderMargin(5); 

$pdf->SetFooterMargin(10); 

 

// 设置分页 

$pdf->SetAutoPageBreak(TRUE, 25); 

 

// set image scale factor 

$pdf->setImageScale(1.25); 

 

// set default font subsetting mode 

$pdf->setFontSubsetting(true); 

 

//设置字体 

$pdf->SetFont('stsongstdlight', '', 14); 

 

$pdf->AddPage(); 

 

$str1 = '欢迎来到Helloweba.com'; 

 

$pdf->Write(0,$str1,'', 0, 'L', true, 0, false, false, 0); 

 

//输出PDF 

$pdf->Output('t.pdf', 'I'); 

保存后用浏览器打开,如果您的系统安装了PDF阅读器或者使用google
chrome直接在浏览器中打开,否则会提示下载生成的PDF。

其他php生成PDF的常用类


FPDF


HTML2PDF

HTML2PDF能够把一个HTML文本转换成一个打印机友好的PDF文件。这个PHP脚本构建在FPDF PHP脚本之上。


TCPDF

TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8,Unicode,HTML和XHTML。


html2ps

html2ps 能够把带有图片,复杂表格(包含rowspan/colspan)
,layer/div和css样式的HTML转换成Postscript与PDF。
html2ps对CSS2.1支持非常好,并且很好地兼容不正确的HMTL。它甚至能够转换几乎是采用CSS设计的网站如msn.com。


HTML_ToPDF

HTML_ToPDF能够把任何HTML文档转换成在任何平台和打印机下界面格式都一样的PDF文档。它包括支持图片转换,使用样式表来定制PDF文件和错误处理。


cPdfWriter

cPdfWriter是一个能够输出PDF文档的PHP5
class。基于TCPDF,FPDF和其它相关脚本。


dompdf

dompdf是一个HTML到PDF的转换工具。它的核心是一个遵循大部份CSS2.1样式的Rendering引擎。dompdf采用样式驱动,
它能够下载并读取外部样式,整个样式标签和单个HTML元素的样式属性。它同样支持目当大部份HTML属性。

(实用篇)使用PHP生成PDF文档的更多相关文章

  1. 如何从Windows Phone 生成PDF文档

    我需要从我的Windows Phone应用程序生成PDF. 遗憾的是没有标准的免费的PDF生成库在Windows Phone上运行. 我不得不自己生成PDF,通过直接写入到文件格式. 这竟然是真的很容 ...

  2. 手把手教你使用 Java 在线生成 pdf 文档

    一.介绍 在实际的业务开发的时候,研发人员往往会碰到很多这样的一些场景,需要提供相关的电子凭证信息给用户,例如网银/支付宝/微信购物支付的电子发票.订单的库存打印单.各种电子签署合同等等,以方便用户查 ...

  3. 利用Java动态生成 PDF 文档

    利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...

  4. Aspose.Words操作word生成PDF文档

    Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...

  5. 使用PHP生成PDF文档

    原文:使用PHP生成PDF文档 实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快 ...

  6. DocFX生成PDF文档

    使用DocFX生成PDF文档,将在线文档转换为PDF离线文档. 关于DocFX的简单介绍使用DocFX生成文档 使用docfx 命令 1.下载 https://github.com/dotnet/do ...

  7. qt 利用 HTML 生成PDF文档,不能显示jpg图片

    利用 QPrinter 和html 生成 pdf文档 其中用html语句有显示图片的语句 但只能显示png格式的图片,不能显示jpg格式图片. 经过排查:语法,文件路径等都正确,最终在stack ov ...

  8. ireport图形化界面生成pdf文档

    一.ireport软件安装 1.下载软件的官网 https://community.jaspersoft.com/project/ireport-designer/releases 2.安装软件   ...

  9. 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器

    置顶2017年11月06日 14:41:04 阅读数:2311 这几天,任务中有一个难点是把一个打印页面自动给生成PDF文档,并且上传至服务器,然而公司框架只有手动上传文档,打印时可以保存为PDF在本 ...

随机推荐

  1. JavaScript实现ZLOGO: 用语法树实现多层循环

    原址: https://zhuanlan.zhihu.com/p/32571516 照例先上演示弱效果图. 演示地址照旧: 代码如下: 开始 循环4次 循环4次 前进50 左转90度 到此为止 右转9 ...

  2. docker for windows & dotnet core app

    Step 1: 安装docker for windows Step 2: 从github 上 clone 源代码:https://github.com/dotnet/dotnet-docker-sam ...

  3. C#设计模式之二十三解释器模式(Interpreter Pattern)【行为型】

    一.引言   今天我们开始讲"行为型"设计模式的第十一个模式,也是面向对象设计模式的最后一个模式,先要说明一下,其实这个模式不是最后一个模式(按Gof的排序来讲),为什么把它放在最 ...

  4. MAC上安装mysql及workbench

    下载mysql for mac    https://dev.mysql.com/downloads/installer/ 官网下载很慢---百度云:链接: https://pan.baidu.com ...

  5. Java学习笔记16(面向对象九:补充内容)

    总是看到四种权限,这里做一个介绍: 最大权限是public,后面依次是protected,default,private private修饰的只在本类可以使用 public是最大权限,可以跨包使用,不 ...

  6. 使用fruitstrap实现命令行将IPA包安装到iOS设备上

    Requirements Mac OS X. Tested on Snow Leopard only. You need to have a valid iPhone development cert ...

  7. SQL Server-聚焦sp_executesql执行动态SQL查询性能真的比exec好?

    前言 之前我们已经讨论过动态SQL查询呢?这里为何再来探讨一番呢?因为其中还是存在一定问题,如标题所言,很多面试题也好或者有些博客也好都在说在执行动态SQL查询时sp_executesql的性能比ex ...

  8. swiper插件的简单使用,实现图片轮播

    移动端和p c端经常会遇到写轮播图的情况,这里只是简单的说一下swiper插件的简单用法(移动端为例). <!DOCTYPE html> <html lang="en&qu ...

  9. MongoDB批量导入及简单的性能优化

    今天简单分享一下MongoDB使用过程中的一些性能优化,其实并不只适用MongoDB,其他数据库多少也可适用. 首先先随机导入一千万条数据.这里我分段导入的,因为mongo的BsonDocument一 ...

  10. 将控制台信息显示在前台页面的js插件

    在拿出插件之前,先回顾一下apply()的用法,这里和call()做比较. JavaScript中的每一个Function对象都有一个apply()方法和一个call()方法,它们的语法分别为: /* ...