使用TCPDF首先从TCPDF官网获取最新版本:http://www.tcpdf.org。官网提供了几十个示例以及说明文档
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//长宽为1100*1600px
$pdf = new TCPDF('P', 'pt', [1100,1600], true, 'UTF-8', false,false);
属性 |
说明 |
默认值 |
$orientation |
设置pdf页面的方向(P/Portrait纵向,L/Landscape) |
Portrait |
$unit |
设置pdf单元的测量单位(pt: point,mm: millimeter,cm: centimeter,in: inch) |
mm |
$format |
页面的版式(A4)或数组 [$width,$height] |
A4 |
$unicode |
是否使用unicode(一般都是unicode,默认为true就行。) |
true |
$encoding |
字符编码(字符编码,默认是utf-8 。) |
utf-8 |
$diskcache |
该功能被废弃,(通过使用文件系统的临时缓存数据减少RAM的内存使用。 ) |
false |
$pdfa |
启用/关闭pdf/a(ISO 标准,为长期保存文件而设计,屏蔽了编辑功能,$pdfa = true即生成的pdf不能够编辑) |
true |
文档的信息设置
包括 :
SetCreator(文档创建者名称),
SetAuthor(设置作者),
SetTitle(设置文档标题),
SetKeywords(文档关键词)。
页眉页脚设置
包括
SetHeaderData,
setHeaderFont,
setFooterFont,
setFooterData,
//另外,如果不希望使用页眉页脚,可以使用setPrintHeader和setPrintFooter方法关闭页眉页脚,只要传递参数false即可。
setPrintHeader(false);
setPrintFooter(false);
// 设置页眉和页脚字体
//$pdf->setHeaderFont(Array('stsongstdlight', '', '12'));
array(family, style, size)
//设置页眉信息 参数分别是LOGO地址,LOGO大小,两行标题,标题颜色,分割线颜色。。颜色是RGB
//$pdf->SetHeaderData('/root/5.png', 30, 'PHP生成PDF', 'PHP如何生成PDF文件', array(0,0,0), array(0,0,0));
属性 |
说明 |
默认值 |
$ln |
logo文件路径 |
” |
$lw |
logo宽度 |
0 |
$ht |
页眉标题 |
” |
$hs |
页眉的说明文字 |
” |
$tc |
文本的rgb颜色 |
array(0,0,0) (黑色) |
$lc |
页眉下划线的颜色 |
array(0,0,0) (黑色) |
文本间距设置
间距包含正文间距和页眉页脚的间距,有三个方法
SetMargins, 正文
SetHeaderMargin,页眉
SetFooterMargin。页脚
//设置间距 ,左侧、上侧、右侧的间距
$pdf->SetMargins(15, 27, 15);
分页
SetAutoPageBreak 自动分页
//该方法传递两个参数,参数1启动或禁用自动分页,而参数2只有参数1等于true时才起作用,它定义了页面距底部的距离。
$pdf->SetAutoPageBreak(TRUE, 15);
AddPage()方法新添分页。同时,该方法如果前面已有页面,该方法会在将页脚添加到页面中 并自动添加下一页,否则直接添加新一页。
Fonts设置字体 SetFont()
SetFont(string family[,string style[,string size]])
//SetFont就是用来设置正文字体,参数传递和setHeaderFont类似
family : 字体属性 它可以是字体名称或标准系列之一(不区分大小写):
style : 字体样式。 可能的值是(不区分大小写):
empty string: regular //空字符串默认 标准
B: bold
I: italic
U: underline
size:字体大小分。 默认值为当前大小。 如果文档开头没有指定大小,则取值为12。
subset :如果true只嵌入字体的一个子集(仅存储与所使用字符相关的信息); 如果假嵌入完整字体; 如果'default'使用setFontSubsetting()设置的默认值。
//如果是生成中文pdf需要注意,设置字体为stsongstdlight,否则会出现乱码。
//设置字体
$pdf->SetFont(‘times’, ‘BI’, 20, “, ‘false’);
$pdf->SetFont('stsongstdlight', '', 15);
$pdf->SetFont('stsongstdlight', 'B', 28);
$pdf->SetFont('times', '', 15);
PDF Core(标准)字体是:
courier : Courier
courierB : Courier Bold
courierBI : Courier Bold Italic
courierI : Courier Italic
helvetica : Helvetica
helveticaB : Helvetica Bold
helveticaBI : Helvetica Bold Italic
helveticaI : Helvetica Italic
symbol : Symbol
times : Times New Roman
timesB : Times New Roman Bold
timesBI : Times New Roman Bold Italic
timesI : Times New Roman Italic
zapfdingbats : Zapf Dingbats
添加字体 AddFont()
//您可以直接从TrueType,OpenType或Type1字体创建一个TCPDF字体。
方法1:
php /usr/share/nginx/html/77book.cn/mix.77book.cn/app/Tools/TCPDF/tools/tcpdf_addfont.php -b -t TrueTypeUnicode -f 97 -i /root/simhei.ttf
方法2:
$pdf->addTTFfont(‘/path-to-font/DejaVuSans.ttf’, ‘TrueTypeUnicode’, “, 32);
正文写入
$pdf->Write(20, 'PHP如何动态生成PDF', '', 0, 'C', true, 0, false, false, 0);
//$h表示行高,$txt表示要打印的内容。其他可以默认。
单元格
//设置一个单元格,可以按比例缩放单元格大小
Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M')
$pdf->Cell(0, 0, 'TEST CELL STRETCH: no stretch', 1, 1, 'C', 0, '', 0);
文本块
//设置一个text文本块
$pdf->MultiCell(55, 5, '[LEFT] '.$txt, 1, 'L', 1, 0, '', '', true);
MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0)
MultiCell(宽, 高, 内容, 边框,文字对齐, 文字底色, 是否换行, x坐标, y坐标, 变高, 变宽, 是否支持html, 自动填充, 最大高度)
背景填充
// 设置背景填充色
$pdf->SetFillColor(220, 255, 220);
图片
Image($file, $x='', $y='', $w=0, $h=0, $type='', $link='', $align='', $resize=false, $dpi=300, $palign='', $ismask=false, $imgmask=false, $border=0, $fitbox=false, $hidden=false, $fitonpage=false)
$pdf->Image('images/image_demo.jpg', 15, 140, 75, 113, 'JPG', 'http://www.tcpdf.org', '', true, 150, '', false, false, 1, false, false, false);
$fitonpage 是否自适应 (全屏大小)
输出
# 输出 I输出到浏览器 F输出到指定路径
$this->pdf->Output($info['path'] , 'F');
//输出PDF。第二个参数 ,默认是I,是浏览器预览。D是下载,F是生成文件
$pdf->Output('/root/PHP_TO_PDF.pdf', 'F');