github:https://github.com/tecnickcom/TCPDF

composer require tecnickcom/tcpdf

/*新建一个pdf文件:

Orientation:orientation属性用来设置文档打印格式是“Portrait”还是“Landscape”。 Landscape为横式打印,Portrait为纵向打印

Unit:设置页面的单位。pt:点为单位,mm:毫米为单位,cm:厘米为单位,in:英尺为单位

Format:设置打印格式,一般设置为A4

Unicode:为true,输入的文本为Unicode字符文本

Encoding:设置编码格式,默认为utf-8

Diskcache:为true,通过使用文件系统的临时缓存数据减少RAM的内存使用。 */

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,true, 'UTF-8', false);

//设置文件信息

$pdf->SetCreator(PDF_CREATOR);

$pdf->SetAuthor("jmcx");

$pdf->SetTitle("pdf test");

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

$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

//删除预定义的打印 页眉/页尾

$pdf->setPrintHeader(false);

$pdf->setPrintFooter(false);

//设置默认等宽字体

$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

/*设置页面边幅:

Left:左边幅

Top:顶部边幅

Right:右边幅

Keepmargins:为true时,覆盖默认的PDF边幅。 */

$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP,PDF_MARGIN_RIGHT);

/*设置单元格的边距:

Left:左边距

Top:顶部边距

Right:右边距

Bottom:底部边距。*/

$pdf->setCellPaddings(0, 0, 0, 0);

//GetX获得当前的横坐标,GetY获得当前的纵坐标。

//       $pdf->GetX();

//       $pdf->GetY();

/*移动坐标。SetX移动横坐标。 SetY,横坐标自动移动到左边距的距离,然后移动纵坐标。SetXY,移动横坐标跟纵坐标:

X:横坐标,可设为$pdf->GetX()+数字

Y:纵坐标,可设为$pdf->GetY()+数字

Rtloff:true,左上角会一直作为坐标轴的原点

Resetx:true,重设横坐标。 */

//       $pdf->SetX($x, $rtloff=false);

//       $pdf->SetY($y, $resetx=true, $rtloff=false);

//       $pdf->SetXY($x, $y, $rtloff=false)

/*设置线条的风格:

Width:设置线条粗细

Cap:设置线条的两端形状

Join:设置线条连接的形状

Dash:设置虚线模式

Color:设置线条颜色,一般设置为黑色,如:array(0, 0, 0)。*/

$pdf->SetLineStyle(array('width' => 0.2, 'cap' => 'butt', 'join' => 'miter', 'dash' => '0', 'color' => array(0, 0,0)));

/*画一条线:

x1:线条起点x坐标

y1:线条起点y坐标

x2:线条终点x坐标

y2:线条终点y坐标

style:SetLineStyle的效果一样

*/

//       $pdf->Line($x1, $y1, $x2, $y2, $style=array());

/*执行一个换行符,横坐标自动移动到左边距的距离,纵坐标换到下一行:

H:设置下行跟上一行的距离,默认的话,高度为最后一个单元格的高度

Cell:true,添加左或右或上的间距到横坐标。 */

//       $pdf->Ln($h='', $cell=false);

//设置自动分页符

$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//设置图像比例因子

$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//设置一些语言相关的字符串

//       $pdf->setLanguageArray("xx");

/*设置字体:

字体类型(如helvetica(Helvetica)黑体,times (Times-Roman)罗马字体)、风格(B粗体,I斜体,underline下划线等)、字体大小 */

$pdf->SetFont('times', 'I', 20);

/*增加一个页面:

Orientation:orientation属性用来设置文档打印格式。 Landscape为横式打印,Portrait为纵向打印。

Format:设置此页面的打印格式。

Keepmargins:true,以当前的边幅代替默认边幅来重写页面边幅。

Tocpage:true,所添加的页面将被用来显示内容表。*/

$pdf->AddPage();

/*设置单行单元格:

W:设置单元格的宽

H:设置单元格的高

Text:单元格文本

Border:设置单元格的边框。0,无边框,1,一个框,L,左边框,R,右边框,B, 底边框,T,顶边框,LTRB指四个边都显示

Ln:0,单元格后的内容插到表格右边或左边,1,单元格的下一行,2,在单元格下面

Align:文本位置。L,左对齐,R,右对齐,C,居中,J,自动对齐

Fill:填充。false,单元格的背景为透明,true,单元格必需被填充

Link:设置单元格文本的链接。*/

$pdf->Cell(0, 10, 'test', 1, 1, 'C');

/*设置多行单元格。注意跟Cell的参数位置有些差别,Cell是用来输出单行文本的,MultiCell就能用来输出多行文本

W:设置多行单元格的宽

H: 设置多行单元格的单行的高

Text:文本

Border:边框

Align:文本位置

Fill:填充

Ln:0,单元格后的内容插到表格右边或左边,1,单元格的下一行,2,在单元格下面

X:设置多行单元格的行坐标

Y:设置多行单元格的纵坐标

Reseth:true,重新设置最后一行的高度

Stretch:调整文本宽度适应单元格的宽度

Ishtml:true,可以输出html文本,有时很有用的

Autopadding:true,自动调整文本与单元格之间的距离

Maxh:设置单元格最大的高度

Valign:设置文本在纵坐标中的位置,T,偏上,M,居中,B,偏下

Fillcell:自动调整文本字体大小来适应单元格大小。 */

//       $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);

// setCellHeightRatio设置单元格行高,可以引用此函数调整行与行的间距。SetLineWidth设置线条宽度。

//       $pdf->setCellHeightRatio($h);

//       $pdf->SetLineWidth($width);

/*在PDF中,插入图片,参数列表如下;

File:图片路径。

X:左上角或右上角的横坐标。

Y:左上角或右上角的纵坐标。

W:设置图片的宽度,为空或为0,则自动计算。

H:设置图片的高度,为空或为0,则自动计算。

Type:图片的格式,支持JPGE,PNG,BMP,GIF等,如果没有值,则从文件的扩展名中自动找到文件的格式。

Link:图片链接。

Align:图片位置。

Resize:true,调整图片的大小来适应宽跟高;false,不调整图片大小;2,强制调整。

Dpi:以多少点每英寸来调整图片大小。

Palign:图片位置,L,偏左,C,居中,R,偏右

Imgmask:true,返回图像对象。

Border:边框。

Fitbox:调整适合大小。

Hidden:true,隐藏图片。

Fitonpage:如果为true,图像调整为不超过页面尺寸。 */

$pdf->Image('../img/test.png');

/*输出HTML文本:

Html:html文本

Ln:true,在文本的下一行插入新行

Fill:填充。false,单元格的背景为透明,true,单元格必需被填充

Reseth:true,重新设置最后一行的高度

Cell:true,就调整间距为当前的间距

Align:调整文本位置。 */

$pdf->writeHTML("<div><label>hah<strong>aha</strong></label><br/></div>");

/*用此函数可以设置可选边框,背景颜色和HTML文本字符串来输出单元格(矩形区域)

W:设置单元格宽度。0,伸展到右边幅的距离

H:设置单元格最小的高度

X:以左上角为原点的横坐标

Y:以左上角为原点的纵坐标

Html:html文本

Border:边框

Ln:0,单元格后的内容插到表格右边或左边,1,单元格的下一行,2,在单元格下面

Fill:填充

Reseth:true,重新设置最后一行的高度

Align:文本的位置

Autopadding:true,自动调整文本到边框的距离。 */

$pdf->writeHTMLCell();

/*输入PDF文档 :

Name:PDF保存的名字

Dest:PDF输出的方式。I,默认值,在浏览器中打开;D,点击下载按钮, PDF文件会被下载下来;F,文件会被保存在服务器中;S,PDF会以字符串形式输出;E:PDF以邮件的附件输出。 */

return $pdf->Output("test001.pdf", "F");

代码

注:tp框架需要把《应用调节模式》关掉否则页面无法体现效果

    /*** @Notes   (备注):申请退房* @Author  (作者):seven* @Date    (时间):2022/2/9 16:18* @Name    (名称):getCheckOutApplication*/public function getCheckOutApplication(){$param = input('post.');if(!isset($param['sign']) && empty($param['sign'])){return $this->ajaxReturn([API_CODE_NAME => 1000001,          API_MSG_NAME => '缺少签名']);}$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);//工具$pdf->SetCreator(PDF_CREATOR);//作者$pdf->SetAuthor('XinEnHua');//标题$pdf->SetTitle('申请退房');$pdf->SetKeywords('TCPDF, PDF, example, test, guide');$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 061', PDF_HEADER_STRING);$pdf->setPrintHeader(false); //设置打印页眉$pdf->setPrintFooter(false); //设置打印页脚$pdf->AddPage();$pdf->Image(APP_PATH."/../public/static/admin/img/logo1.png",15,5,50,12);/*设置字体:字体类型(如helvetica(Helvetica)黑体,times (Times-Roman)罗马字体)、风格(B粗体,I斜体,underline下划线等)、字体大小 */$pdf->SetFont('msyh', 'B', 15);$pdf->MultiCell(160, 5, '鉴于甲方__________________________________________________________', 0, 'L', 0, 0, 25, 25, true, 0, false, true, 8, true, true);$pdf->MultiCell(160, 5, $param['first_party']??"", 0, 'C', 0, 0, 0, 25, true, 0, false, true, 8, true, true);$pdf->MultiCell(160, 5, '与乙方_____________________________________________________________', 0, 'L', 0, 0, 25, 36, true, 0, false, true, 8, true, true);$pdf->MultiCell(160, 5, $param['b_party']??"", 0, 'C', 0, 0, 0, 36, true, 0, false, true, 8, true, true);$pdf->MultiCell(160, 5, '签订的《场地租赁与孵化协议书》原合同期限自____________________', 0, 'L', 0, 0, 25, 47, true, 0, false, true, 8, true, true);$pdf->MultiCell(160, 5, $param['start_time']??"", 0, 'C', 0, 0, 80, 47, true, 0, false, true, 8, true, true);$pdf->MultiCell(160, 5, '至____________________,现由于乙方__________________________等原因', 0, 'L', 0, 0, 25, 57, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, $param['start_time']??"", 0, 'L', 0, 0, 40, 57, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, $param['reason']??"", 0, 'L', 0, 0, 110, 57, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '向甲方申请提前终止房屋使用。经甲方同意,乙方于________________', 0, 'L', 0, 0, 25, 67, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, $param['application_time']??"", 0, 'L', 0, 0, 150, 67, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '提出退房申请,乙方的正式房屋结算日为__________________________', 0, 'L', 0, 0, 25, 77, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, $param['settlement_time']??"", 0, 'L', 0, 0, 135, 77, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '(即乙方提出本申请之日起45个自然日后为正式退租结算日)', 0, 'L', 0, 0, 25, 87, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '根据原合同第九部分之规定,乙方须按照合同总价款(包含但不限于', 0, 'L', 0, 0, 25, 97, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '租金、物业服务费、孵化服务费及其他费用)的【百分之十五】向甲', 0, 'L', 0, 0, 25, 107, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '方支付违约金,违约金额合计___________元', 0, 'L', 0, 0, 25, 117, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, $param['price']??"", 0, 'C', 0, 0, 28, 117, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '注:使用房屋注册地址的客户,继续使用注册地址,房屋租赁合同终', 0, 'L', 0, 0, 25, 141, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '止之日起签署《企业孵化与企业托管服务协议书》;如不使用请于申', 0, 'L', 0, 0, 25, 151, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '请退房起30日内办理公司迁址或注销,办理成功后请于____________', 0, 'L', 0, 0, 25, 161, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, $param['processing_time']??"", 0, 'L', 0, 0, 153, 161, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '前将企业新地址营业执照交于我处继续办理后续退房手续,逾期不办理', 0, 'L', 0, 0, 25, 171, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '我方将向有关部门提交地址证明材料,证明贵企业实际已搬离,剩余退款', 0, 'L', 0, 0, 25, 181, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '甲方视作乙方放弃领取,逾期不再办理房屋结算。由此产生的后果由乙方', 0, 'L', 0, 0, 25, 191, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(160, 5, '承担,甲方概不负责。', 0, 'L', 0, 0, 25, 201, true, 0, false, true, 8, 'M', true);$pdf->MultiCell(185, 15, '公司/负责人签字:', 0, 'L', 0, 0, 25, 230, true, 0, false, true, 8, 'M', true);$pdf->Image(APP_PATH."/../public"."/upload/house/settled/sign/20210901/1630467941.jpeg",80,230,60,12);
//       $pdf->Image(APP_PATH."/../public".$param['sign'],80,230,60,12);$pdf->MultiCell(185, 15, '申请日期:'.date('Y-m-d'), 0, 'L', 0, 0, 25, 250, true, 0, false, true, 8, 'M', true);$contract_url = 'upload/housing/finished/'.date('Ymd').'/';if (!file_exists($contract_url)) {mkdir($contract_url, 0777, true);}$contract_name = 'applyoccupancy'.mt_rand(1000000, 9999999).'.pdf';
//       $pdf->Output('aaaa.pdf', 'I');//I打印$pdf->Output($_SERVER['DOCUMENT_ROOT'].$contract_url.$contract_name, 'F');}

效果图

php TCPDF 生成pdf文件相关推荐

  1. TCPDF生成PDF文件方法教程说明

    TCPDF生成PDF文件方法教程说明 TCPDF下载: composer: 在packagist中所搜tcpdf (https://packagist.org/packages/tecnickcom/ ...

  2. ThinkPHP5/PHP 使用TCPDF 生成PDF文件

    由于公司业务需求,需要生成PDF文件. 网上找了一些解决方案,很多是使用composer插件解决问题的.由于同事的顾虑,建议.把网上找的TCPDF插件包,当作第三方组件来使用,放在extend 扩展文 ...

  3. php使用TCPDF生成PDF文件教程

    functioncreatePdfFile($frontData) { /*新建一个pdf文件: Orientation:orientation属性用来设置文档打印格式是"Portrait& ...

  4. php利用tcpdf导出pdf保存文件名,使用TCPDF撰写和生成PDF文件

    一.需求 某一个合同需要在线生成,其中一部分内容是固定的,而另一部分内容是需要添加和编辑的. 编辑的部分是表单内容的填写,内容涵盖了:table input 两个主要的html元素 现在需要在页面编辑 ...

  5. php+tcpdf+表格,PHP中使用TCPDF生成PDF文档实例

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

  6. php输出PDF的文件流_怎么用PHP在HTML中生成PDF文件

    译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PHP并借助FPDF来生成PDF文件.但是如今,已经有很多函数库可以使用了, ...

  7. php html小项目,使用PHP把HTML生成PDF文件的几个开源项目介绍

    这篇文章主要介绍了使用PHP把HTML生成PDF文件的几个开源项目介绍,本文罗列了FPDF.DomPDF.TCPDF等项目的特点,需要的朋友可以参考下 利用PHP编码生成PDF文件是一个非常耗时的工作 ...

  8. php导出页面为pdf文件大小,php用TCPDF导出PDF文件

    PHP生成PDF格式文件以TCPDF为基础,TCPDF是一个用于快速生成PDF文件的PHP5函数包.TCPDF基于FPDF进行扩展和改进.支持UTF-8,Unicode,HTML和 XHTML.在基于 ...

  9. thinkphp 生成pdf文件进行打印方法

    1.首先 项目根目录运行     composer require tecnickcom/tcpdf   生成tcpdf库.   Composer中国镜像比较慢,这里推荐使用阿里云镜像 compose ...

  10. PHP Tcpdf 生成 pdf 并将 (Imagick) pdf 生成 图片

    利用Tcpdf生成pdf,使用 html标签,生成 pdf 一. 拉取扩展代码 使用 composer 拉取 composer require tecnickcom/tcpdf https://git ...

最新文章

  1. 半导体二极管的直流电阻和动态电阻如何区别?
  2. 教你一秒分辨真假芯片!
  3. 浅谈测试rhel7新功能时的感受及遇到的问题
  4. 将ostream 对象转换成字符串流输出
  5. 2014年03月 面试总结
  6. PDF编辑器怎么用,如何旋转PDF页面
  7. javascript文字特效
  8. C语言中变长数组的陷阱
  9. Python Playwright 打包报错 Please run the following command to download new browsers
  10. PDF文件电子签名怎么做?分享一个好用的签名工具
  11. 远程登陆Win10自带子系统Ubuntu-22.04
  12. 一名大学生选择军哥的乾颐堂是如何顺利通过华为HCIE的,又如何应对HCIE面试呢?...
  13. EKL软件历史版本下载地址集合
  14. python meizitu
  15. 【MySQL】—入门介绍
  16. 每日一篇系列---CSS3实现下雨动效
  17. 体验DCGAN生成漫画头像
  18. Quantopian教程源码解析及实战
  19. Db2 SQL PL中的控制语句
  20. 随笔-浅谈技术核心竞争力

热门文章

  1. CAD二次开发——cad查看对象C#:MdgDbg.dll
  2. snmp v3 参数_SNMPv3 配置及snmpwalk命令信息获取
  3. 普元eos如何在日志文件中打印SQL语句及参数
  4. 线性代数 行列式 知识技巧思维导图 [21考研上岸之旅]
  5. 可以用c语言改笔记本键盘灯,背光键盘B/C面设计_笔记本评测-中关村在线
  6. 【WPF】学习笔记(一)——做一个简单的电子签名板
  7. Qunee For Html5 开发清新、高效的拓扑图组件
  8. MODIS数据批量下载工具
  9. c# vs2019 AForge简单使用
  10. python 点分十进制IP地址转16进制字符串