tcpdf使用笔记

《tcpdf使用笔记》

使用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');
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注