ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
| 实例化TCPDF | | --- | --- | | $pdf=new \TCPDF("L","mm",[100,100],TRUE,"UTF-8",FALSE); | *参数 * [new \TCPDF(Orientation, Unit, Format, Unicode, Encoding, Diskcache)] * @param [Orientation] [设置文档打印格式是“Portrait”还是“Landscape”。 Landscape为横式打印,Portrait为纵向打印,可取首字母] * @param [Unit] [设置页面的单位。pt:点为单位,mm:毫米为单位,cm:厘米为单位,in:英尺为单位] * @param [Format] [设置打印格式,一般设置为A4] * @param [Unicode] [为true,输入的文本为Unicode字符文本] * @param [Encoding] [设置编码格式,默认为utf-8] * @param [Diskcache] [为true,通过使用文件系统的临时缓存数据减少RAM的内存使用] | 设置页面边幅 | | --- | --- | | $pdf->SetMargins(2, 2, 2); | | $pdf->SetHeaderMargin(5) | 设置头部页面边幅 | | $pdf->SetFooterMargin(10); | 设置底部页面边幅 | *参数 * [SetMargins(Left, Top, Right) [设置页面边幅]] * @param [Left] [左边幅] * @param [Top] [顶部边幅] * @param [Right] [右边幅] | 设置自动分页符,距离底部多少距离时分页 | | --- | --- | | $pdf->SetAutoPageBreak(TRUE, 1); | | 删除预定义的打印和设置页眉、页尾 | | | --- | --- | | $pdf->setPrintHeader(false); | 删除预定义的打印 | | $pdf->setPrintFooter(false); | 关闭页眉、页尾 | | $pdf->SetHeaderData('', 30, '测试', '报名表',  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->SetCreator(PDF_CREATOR); | | | $pdf->SetAuthor("jmcx"); | 作者 | | $pdf->SetTitle("pdf test"); | 标题 | | $pdf->SetSubject('TCPDF Tutorial'); | | | $pdf->SetKeywords('TCPDF, PDF, example'); | 关键词 | | 坐标设置 | | | --- | --- | | $pdf->GetX(); | 获得当前的横坐标 | | $pdf->GetY(); | 获得当前的纵坐标 | | $pdf->SetX($x, $rtloff=false); | 移动横坐标 | | $pdf->SetY($y, $resetx=true, $rtloff=false); | 移动纵坐标 | | $pdf->SetXY($x, $y, $rtloff=false) | 同事移动横、纵坐标 | | $pdf->getLastH() | 获取最后一次设置的行高 | *参数 * @param [X] [横坐标] * @param [Y] [纵坐标] * @param [Rtloff:true] [左上角会一直作为坐标轴的原点] * @param [Resetx:true] [重设横坐标] | 设置字体 | | | --- | --- | | $pdf->SetFont('', ''); | 注意:后面再次调用此方法会覆盖前面的字体 | | $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); | 设置默认等宽字体 | | $pdf->SetFontSize(5); | 设置字体大小 | * 参数 * SetFont('times', 'I', 20) * @param [times] [字体类型,如helvetica(Helvetica)黑体,times (Times-Roman)罗马字体,stsongstdlight [cid0cs]中文字体,DroidSansFallback,freesans,freeserifi,dejavusans,freeserif(เลขที่ งป)] * @param [I] [风格(B粗体,I斜体,underline下划线等)] * @param [20] [字体大小] | 设置文字的阴影 | | --- | --- | | $pdf->setTextShadow(array('enabled' => true, 'depth_w' => 0.5, 'depth_h' => 0.5, 'color' => array(255, 0, 0), 'opacity' => 0.8, 'blend_mode' => 'Normal')); | * 参数 * [$pdf->setTextShadow(array('enabled' => true, 'depth_w' => 0.5, 'depth_h' => 0.5, 'color' => array(255, 0, 0), 'opacity' => 0.8, 'blend_mode' => 'Normal')) [设置文字的阴影]] * @param [enabled] [是否开启这个配置,true开启,false关闭] * @param [depth_w] [阴影部分的宽度] * @param [depth_h] [阴影部分的高度] * @param [color] [阴影部分的颜色] * @param [opacity] [阴影部分的透明度] * @param [blend_mode] [模式类型???] | 写入文本 | | --- | --- | | $pdf->Text(5, 34, 'text'); | * 参数 * [$pdf->Text(W, H, Text) [写入文本]] * @param [W] [文本的起始横坐标] * @param [H] [文本的起始纵坐标] * @param [Text] [写入的文本文字] | 设置单行单元格 | | --- | --- | | $pdf->Cell(0, 0, $title, 0, 1, 'C'); | * 参数 * [$pdf->Cell(W, H, Text, Border, Ln, Align,Fill,Link) [设置单行单元格]] * @param [W] [ 设置单元格的宽 ] * @param [H] [ 设置单元格的单行的高] * @param [Text] [单元格文本] * @param [Border] [设置单元格的边框。0,无边框,1,一个框,L,左边框,R,右边框,B, 底边框,T,顶边框,LTRB指四个边都显示] * @param [Ln=0] [单元格后的内容插到表格右边或左边,1,单元格的下一行,2,在单元格下面] * @param [Align] [文本位置。L,左对齐,R,右对齐,C,居中,J,自动对齐] * @param [Fill] [填充。false,单元格的背景为透明,true,单元格必需被填充] * @param [Link] [设置单元格文本的链接] | 设置单元格行高 | | | --- | --- | | $pdf->setCellHeightRatio(1) | 设置单元格行高 | | 设置单元格的边距 | | --- | --- | | $pdf->setCellPaddings(0, 0, 0, 0); | *参数 * [setCellPaddings(Left, Top, Right, Bottom) [设置单元格的边距]] * @param [Left] [左边距] * @param [Top] [顶部边距] * @param [Right] [右边距] * @param [Bottom] [底部边距] | 设置一个矩形或设置一个空单元格 | | --- | --- | | $pdf->Rect(X, Y, W, H, 'D', array('all' => ['width' => 1, 'cap' => 'round', 'join' => 'round', 'dash' => '2,10', 'color' => [255, 0, 0])) | * 参数 * [$pdf->Rect(X, Y, W, H, 'D', array('all' => ['width' => 1, 'cap' => 'round', 'join' => 'round', 'dash' => '2,10', 'color' => [255, 0, 0]))] [设置一个矩形] * @param [X] [矩形的起始横坐标] * @param [Y] [矩形的起始纵坐标] * @param [W] [矩形的宽度] * @param [H] [矩形的高度] * @param ['D'] [???] * @param [array()] [设置矩形的样式???] | 画一条线 | | --- | --- | | $pdf−>Line($x1, $y1, $x2, $y2, $style=array()) | *参数 * [Line(x1, y1, x2, y2, style) [画一条线]] * @param [x1] [线条起点x坐标] * @param [y1] [线条起点y坐标] * @param [x2] [线条终点x坐标] * @param [y2] [线条终点y坐标] * @param [style] [array] [SetLineStyle的效果一样] | 设置线条的风格 | | --- | --- | | $pdf->SetLineStyle(array('width' => 0.2, 'cap' => 'butt', 'join' => 'miter', 'dash' => '0', 'color' => array(0, 0,0))); | *参数 * @param [Width] [设置线条粗细] * @param [Cap] [设置线条的两端形状] * @param [Join] [设置线条连接的形状] * @param [Dash] [设置虚线模式] * @param [Color] [设置线条颜色,一般设置为黑色,如:array(0, 0, 0)] | 设置线条的风格 | | --- | --- | | $pdf->SetLineStyle(array('width' => 1, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0))) | *参数 * [SetLineStyle(array('width' => 1, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0))) []] * @param [width] [设置线条粗细] * @param [cap] [设置线条的两端形状] * @param [join] [设置线条连接的形状] * @param [dash] [设置虚线模式] * @param [color] [array] [设置线条颜色,一般设置为黑色,如:array(0, 0, 0)] | 执行一个换行符,横坐标自动移动到左边距的距离,纵坐标换到下一行 | | --- | --- | | $pdf->Ln($h='', $cell=false) | *参数 * [Ln(H, cell) [执行一个换行符,横坐标自动移动到左边距的距离,纵坐标换到下一行]] * @param [H] [设置下行跟上一行的距离,默认的话,高度为最后一个单元格的高度] * @param [cell] [true,添加左或右或上的间距到横坐标] | 增加一个页面 | $pdf->AddPage() | | --- | --- | | $pdf->setImageScale(PDF\_IMAGE\_SCALE\_RATIO); | 设置图像比例因子 | | $pdf->setLanguageArray("xx"); | 设置一些语言相关的字符串 | | | | | PDF输出的方式 | | | --- | --- | | $showType= 'I'; | I,在浏览器中打开;D,以文件形式下载;F,保存到服务器中;S,以字符串形式输出;E:以邮件的附件输出 | | $pdf->Output("print.pdf", $showType); | 输出 | | 设置一个text文本块[单元格] | | --- | --- | | $pdf->MultiCell($w, $h, $txt, $border=0, $align='J',$fill=false, $ln=1, $x='', $y='', $reseth=true, $stretch=0,$ishtml=false, $autopadding=true, $maxh=0, $valign='T', $fitcell=false) | * 参数 * W:设置多行单元格的宽 * H:设置多行单元格的单行的高 * Text:文本 * Border:设置单元格的边框。0,无边框,1,一个框,L,左边框,R,右边框,B, 底边框,T,顶边框,LTRB指四个边都显示 * Align:文本位置;L,左对齐,R,右对齐,C,居中,J,自动对齐 * Fill:填充。false,单元格的背景为透明,true,单元格必需被填充 * Ln:0,单元格后的内容插到表格右边或左边,1,单元格的下一行,2,在单元格下面 * X:设置多行单元格的行坐标 * Y:设置多行单元格的纵坐标 * Reseth:true,重新设置最后一行的高度 * Stretch:调整文本宽度适应单元格的宽度 * Ishtml:true,可以输出html文本,有时很有用的 * Autopadding:true,自动调整文本与单元格之间的距离 * Maxh:设置单元格最大的高度 * Valign:设置文本在纵坐标中的位置,T,偏上,M,居中,B,偏下 * Fillcell:自动调整文本字体大小来适应单元格大小] * @action [SetFont] [设置字体] [$pdf->SetFont($family, $style, $size) * 参数 * family:字体属性 它可以是字体名称或标准系列之一(不区分大小写),也可以传递一个空字符串。 在这种情况下,现有的字体被保留 * style:字体样式 '': regular, B: bold, I: italic, U: underline或任何组合 * size:字体大小分。 默认值为当前大小。 如果文档开头没有指定大小,则取值为12] | 插入图片 | | --- | --- | | $pdf->Image('Public/img/zhongguoyouzhen.jpg',$imgX=5,$imgY=5,$imgW=9,$imgH=9); | *参数 * [Image(file, x, y, w, h, type, link) [插入图片]] * @param [file] [图片路径] * @param [x] [左上角或右上角的横坐标] * @param [y] [左上角或右上角的纵坐标] * @param [w] [设置图片的宽度,为空或为0,则自动计算] * @param [h] [设置图片的高度,为空或为0,则自动计算] * @param [type] [图片的格式,支持JPGE,PNG,BMP,GIF等,如果没有值,则从文件的扩展名中自动找到文件的格式] * @param [link] [图片链接] | 生成条形码 | | --- | --- | | $pdf->write1DBarcode($value['order_no'], 'C39+', $x=5, $y=29, $w='', $h=18, $size=0.4, $style, 'N'); | *参数 * [write1DBarcode(param, code, x, y, w, h, size, style, 'N') [生成条形码]] * @param [param] [生成条形码的参数] * @param [code] [条形码类型 C39,C39+,C39E,C39E+,C93,S25,S25+,I25,I25+,C128,C128A,C128B,C128C,EAN8,EAN13,UPCA,UPCE,EAN5,EAN2,MSI,MSI+,,CODABAR,CODE11,PHARMA,PHARMA2T,IMB,,POSTNET,PLANET,RMS4CC,KIX] * @param [x] [左上角或右上角的横坐标] * @param [y] [左上角或右上角的纵坐标] * @param [w] [设置条形码的宽度] * @param [h] [设置条形码的高度] * @param [size] [条形码的长度] * @param [style] [array] [条形码的样式] * @param [N] [] * 条形码样式 * $style = array( 'position' => '', 'align' => 'C', 'stretch' => false, 'fitwidth' => true, 'cellfitalign' => '', 'border' => false,//边框 'hpadding' => 'auto', 'vpadding' => 'auto', 'fgcolor' => array(0,0,0), 'bgcolor' => false, //array(255,255,255), 'text' => true,//是否显示条码下方文字 'font' => 'DroidSansFallback',//字体(helvetica) 'fontsize' => 10,//字体大小 'stretchtext' => 0 ); | 输出HTML文本 | | --- | --- | | $pdf->writeHTML(html代码); | * 参数 * writeHTML(HTML, Ln, Fill, Reseth, Cell, Align) * @param [html] [html文本] * @param [Ln:true] [在文本的下一行插入新行] * @param [Fill] [false,单元格的背景为透明,true,单元格必需被填充] * @param [Reseth:true] [重新设置最后一行的高度] * @param [Cell:true] [就调整间距为当前的间距] * @param [Align] [调整文本位置] * html写法 * $html = <<<EOD * \<style> * .h1{width:10px;} * \</style> * \<h1 class='h1'>Welcome to\</h1> * EOD; * $html = ‘\<h1 class='h1'>Welcome to\</h1>’通过字符串拼接起来 | 内容旋转 | | --- | --- | $pdf->StartTransform();//启动旋转效果 $pdf->Rotate(-30,0,60);//表示整个坐标系以原来的坐标0,60坐标(感觉又不是。。)顺时针旋转 ,在$pdf->StartTransform()与$pdf->StopTransform()之间就使用旋转后的坐标 $pdf->StopTransform();//停止旋转 | 设置一条弧形的线 | | --- | --- | | $pdf->Curve(0, 0, 60, 55, 70, 45, 20, 30, null, ['width' => '0.5' 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => array(0, 128, 0)]); | * 参数 * [$pdf->Curve(X, Y, 60, 55, 70, 45, X1, Y1, null, ['width' => Width 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => Color]); 设置一条弧形的线] * @param [X] [弧线的起点横坐标] * @param [Y] [弧线的起点纵坐标] * @param [X1] [弧线的终点横坐标] * @param [Y1] [弧线的终点纵坐标] * @param [Width] [弧线的宽度、厚度] * @param [Color] [弧线的颜色,array(0, 128, 0)] | 设置一个圆,是否带缺口 | | --- | --- | | $pdf->Circle(50, 50, 10, 0, -270, 'C', ['width' => '0.5' 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => array(0, 128, 0)]); 设置一个圆,是否带缺口 | * 参数 * [$pdf->Circle(X, Y, W, D1, D2, 'C', ['width' => Width 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => Color]); 设置一个圆,是否带缺口] * @param [X] [圆心横坐标] * @param [Y] [圆心纵坐标] * @param [W] [圆心的半径] * @param [D1] [圆弧的弧度,正值逆时针,负值逆时针,0在X轴右侧,D1-D2的弧度连成线,从D1开始到D2逆时针的画弧边] * @param [D2] [圆弧的弧度,正值逆时针,负值逆时针,0在X轴右侧] * @param [Width] [弧线的宽度] * @param [Color] [弧线的颜色,array(0, 128, 0)] | 设置一个椭圆 | | --- | --- | | $pdf->Ellipse(50, 50, 20, 10, -20, -89, 270, null, ['width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => array(0, 128, 0)]); | * 参数 * [$pdf->Ellipse(X, Y, W, R, 方向, D1, D2, 'C', ['width' => Width 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => Color]); 设置一个椭圆] * @param [X] [圆心横坐标] * @param [Y] [圆心纵坐标] * @param [W] [圆心的半径] * @param [R] [椭圆的度数,即有多扁,R=W则为圆] * @param [方向] [椭圆的方向,圆头指向的方向] * @param [D1] [圆弧的弧度,正值逆时针,负值逆时针,0在X轴右侧,D1-D2的弧度连成线,从D1开始到D2逆时针的画弧边] * @param [D2] [圆弧的弧度,正值逆时针,负值逆时针,0在X轴右侧] * @param [Width] [弧线的宽度] * @param [Color] [弧线的颜色,array(0, 128, 0)] | 设置一个三角形 | | --- | --- | | $pdf->Polygon(array(5, 20, 45, 50, 15, 100)) | * 参数 * [$pdf->Polygon(array(X, Y, X1, Y1, X2, Y2)); 设置一个三角形] * @param [X] [角1横坐标] * @param [Y] [角1纵坐标] * @param [X1] [角2横坐标] * @param [Y1] [角2纵坐标] * @param [X2] [角3横坐标] * @param [Y2] [角3纵坐标] * 不规则图形 * [$pdf->Polygon(array(5, 20, 45, 50, 15, 100, 70, 130, 50, 145), 'DF', array($style6, $style6, $style6, 0, $style6), array(220, 200, 200))] * @param [$style6] [array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => array(0, 128, 0))] * @note [这都是每一个角的坐标,然后配比每一个坐标线条的样式,组成奇怪的图形] | 设置一个不规则的曲线,由各个点连接而成 | | --- | --- | | $pdf->PolyLine(array(X, Y, X1, Y1, X2, Y2, X3, Y3, X..., Y...), 'D', array(), array()); | * 参数 * [$pdf->PolyLine(array(X, Y, X1, Y1, X2, Y2, X3, Y3, X..., Y...), 'D', array(), array()); 设置一个不规则的曲线,由各个点连接而成] * @param [X] [点1横坐标] * @param [Y] [点1纵坐标] * @param [X1] [点2横坐标] * @param [Y1] [点2纵坐标] * @param [X2] [点3横坐标] * @param [Y2] [点3纵坐标] * @param [Y2] [点3纵坐标] * @param [Y2] [点3纵坐标] * @param [array()] [线的样式,可为空,可用$pdf->SetLineStyle()设置线的样式] * @note [画不规则的曲线,可以无限个坐标点,然后连成线,样式可由$pdf->SetLineStyle()统一设置,或者一一对应] | 设置一个圆,并层级比别的高,直接覆盖 | | --- | --- | | $pdf->RegularPolygon(20, 50, 20, 200, 100, 100, 'F'); | * 参数 * [$pdf->RegularPolygon(X, Y, W, 200, 100, 100, 'F'); 设置一个圆,并层级比别的高,直接覆盖] * @param [X] [圆心横坐标] * @param [Y] [圆心纵坐标] * @param [W] [圆的半径] * 其它用法 * $pdf->RegularPolygon(55, 190, 10, 6, 45, 0, 'DF', array($style6, 0, $style7, 0, $style7, $style7)); * $pdf->RegularPolygon(90, 190, 15, 3, 0, 1, 'DF', array('all' => $style5), array(200, 220, 200), 'F', array(255, 200, 200)); * $pdf->RegularPolygon(125, 190, 15, 4, 30, 1, null, array('all' => $style5), null, null, $style6); * $pdf->RegularPolygon(160, 190, 15, 10); | 设置一个圆,并层级比别的高,直接覆盖| | --- | --- | | $pdf->StarPolygon(20, 50, 20, 200, 100, 100, 100, 'F'); | * 参数 * [$pdf->StarPolygon(X, Y, W, 200, 100, 100, 100, 'F'); 设置一个圆,并层级比别的高,直接覆盖] * @param [X] [圆心横坐标] * @param [Y] [圆心纵坐标] * @param [W] [圆的半径] * 其它用法 * $pdf->StarPolygon(55, 230, 15, 12, 5); * $pdf->StarPolygon(55, 230, 7, 12, 5, 45, 0, 'DF', array('all' => $style7), array(220, 220, 200), 'F', array(255, 200, 200)); * $pdf->StarPolygon(90, 230, 15, 20, 6, 0, 1, 'DF', array('all' => $style5), array(220, 220, 200), 'F', array(255, 200, 200)); * $pdf->StarPolygon(125, 230, 15, 5, 2, 30, 1, null, array('all' => $style5), null, null, $style6); | 设置一个不规则的四边形 | | --- | --- | | $pdf->RoundedRect(5, 100, 20, 20, 5, '1111', 'DF'); | * 参数 * [$pdf->RoundedRect(X, Y, W, H, D, S, 'F'); 设置一个不规则的四边形] * @param [X] [四边形圆心横坐标] * @param [Y] [四边形圆心纵坐标] * @param [W] [四边形的宽] * @param [H] [四边形的高] * @param [D] [四边形的角的弧度] * @param [S] [数字字符串,根据字符串调整圆角个数] * 其它用法 * $pdf->RoundedRect(50, 255, 40, 30, 6.5, '1000'); * $pdf->RoundedRect(95, 255, 40, 30, 10.0, '1111', null, $style6); * $pdf->RoundedRect(140, 255, 40, 30, 8.0, '0101', 'DF', $style6, array(200, 200, 200)); | 设置一个箭头 | | --- | --- | | $pdf->Arrow(5, 50, 90, 100, 0, 30, 30); | * 参数 * [$pdf->Arrow(X, Y, X1, Y1, type, A, B); 设置一个箭头] * @param [X] [箭头起点横坐标] * @param [Y] [箭头起点纵坐标] * @param [X1] [箭头终点横坐标] * @param [Y1] [箭头终点纵坐标] * @param [type] [线条是否插入三角形,-1插入,0插入并取消三角形底边,1不插入] * @param [A] [三角形两边的长度] * @param [B] [三角形底边的长度] | 设置颜色 | | | --- | --- | | $pdf->SetDrawColor(0, 0, 0); | 设置虚线条的颜色 | | $pdf->SetTextColor(0,0,0); | 设置文本(字体)的颜色 | | 其它操作 | | | --- | --- | | $pdf->getPageWidth() | 获取页面的高度 | | 生成二维码 | | --- | --- | | $pdf->write2DBarcode('http://www.bubujie.com', 'QRCODE,L', 20, 30, 20, 20, $style, 'N'); |