怎么用PHP在HTML中生成PDF文件

html-css015

怎么用PHP在HTML中生成PDF文件,第1张

FPDF是一个允许使用纯PHP生成PDF文档的PHP类,换句话说,没有使用PDFlib 函数库。FPDF中的F代表免费和自由:你可以在任何情况下使用,并且支持自定义,来满足你特定的需求,特点:

1、可以选择单元、页面格式和边距

2、可以管理页眉和页脚

3、自动分页

4、自动换行和文本对齐

5、支持图片(JPEG,PNG,gif)

6、色彩丰富,支持链接

顺便也介绍一些可以直接从HTML生成PDF的函数库。

DomPDF

domPDF将HTML转换为PDF。DomPDF遵循CSS2.1的HTML布局,它是用PHP编写的渲染引擎。DomPDF以样式为主导:它会下载并读取外链样式表,内联样式和HTML元素的style属性值。并且还支持大部分的HTML可见属性。

特点:

1、处理大部分CSS2.1和少许CSS3属性,包括@import, @media &@page 规则

2、支持大部分HTML 4.1的可见属性

3、支持外部样式表,包括本地或者http/ftp链接的(通过fopen-wrappers)

4、支持复杂的表结构,包括行和列的span,separate &collapsed border models和独立的cell样式

5、支持图片(gif, png, bmp &jpeg)

6、不依赖于其他的PDF函数库

TCPDF

TCPDF也可以用于生成PDF文档,并且它是一个开源的PHP类库。

TCPDF项目开始于2002年,现在已经被成千上万的人自由使用。TCPDF is a Free Libre Open Source Software (FLOSS).

特点:

1、基本功能不依赖于其他PDF函数库

2、标准页面格式、支持页面格式自定义、边距自定义和单元计量

3、支持UTF-8编码和文字方向从右到左的语言。

4、支持TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0等字体

5、支持字体子集,并提供方法发布一些XHTML + CSS code, Javascript and Forms

6、支持图片和图形的转换

7、支持页面压缩(需要php-zlib扩展)

8、自动管理页眉和页脚

首先需要安装wkhtmltopdf这个软件 需要执行shell_exec函数的php文件和安装的wkhtmltopdf.exe可执行文件在同一目录下,不然php找不到这个执行文件

shell_exec("wkhtmltopdf.exe --page-size A4 --outline 网页地址pdf文件名")

--page-size 以A4纸的尺寸显示pdf内容

--outline 显示目录(网页中h1,h2来定)

网页地址 需要转成pdf的网页地址

pdf文件名 生成pdf的文件名,可以使用绝对路径

1.FPDF: PDF生成器

FPDF是一个纯粹的通过PHP类来生成PDF文档的方法,需要生成的内容直接在PHP代码中来指定,生成文字,图片,线条等等,都有自己的方法。下面介绍一个用FPDF来生成”Hello World”的PDF文档:

1.<?php

2.require(‘fpdf.php’)

3.

4.$pdf=new FPDF()

5.$pdf->AddPage()

6.$pdf->SetFont(‘Arial’,'B’,16)

7.$pdf->Cell(40,10,’Hello World!’)

8.$pdf->Output()

9.?>

要生成PDF文档,首先我们需要包括库文件fpdf.php。

然后,我们需要建立一个FPDF对象使用默认构造FPDF(),这种构造可以通过三个值即页面方向(纵向或横向),计量单位,和页面大小( A4,A5……),默认情况下,页面大小为A4,计量单位是毫米。

它也可以被明确地指明:

1.$pdf=new FPDF(‘P’,'mm’,'A4′)

然后用AddPage()函数来增加一个页面,左上角和页面的内容在默认情况下边距为1厘米,当然我们可以使用SetMargins()来改变。要生成一段文本,首先我们要使用SetFont()来选择一种字体和字号。

1.$pdf->SetFont(‘Arial’,'B’,16)

我们使用Cell()函数来输出一个文本。一个Cell()是一个载有文字的矩形区域。

最后,我们要关闭这个文件并且把它输出,这就是用到了$pdf->Output(),我们还可以在这里指定我们想要使用的文件名,如$pdf->Output(’sample.pdf’)