PHP基于TCPDF第三方类生成PDF文件

news2024/11/26 14:54:28

最近在研发招聘的系统 遇到了这个问题 转换pdf 折腾了很久 分享一下

PHP基于TCPDF第三方类生成PDF文件

最近遇到一个需求,需要根据数据库的字段生成表格式的PDF文件并发送邮箱

第一步、我们先去官网上面去下载tcpdf的类:http://www.tcpdf.org/

或者是从github上面下载:https://github.com/tecnickcom/tc-lib-pdf-page,这个第三方类是免费开源的。

下载下来的之后将TCPDF-main文件夹名字更改为TCPDF,并将该文件夹放入vendor文件夹里面

第二步、我们需要进行自动加载composer,在终端输入composer dump-autoload -o

然后会提示您是否执行,我们输入Y。

第三步、就是在我们项目里进行引入该第三方类,并实例化该类的方法。

需要下载中文字体包:

http://pan.baidu.com/share/link?shareid=327612&uk=606208636

解压后,将字体包中的droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z这三个文件复制到fonts目录下。

否则生成的PDF文件打开是空白或者是乱码。

我是在model里面进行调用的第三方类,然后在控制器里面直接使用这个方法就可以了。

引入该类并实例化。第二步将我下方的代码复制进去即可,下方的代码其实就是对PDF的格式进行设置,这个可以根据自身情况进行修改。

在PHP中进行编辑html代码:

在生成PDF文件的代码里面加入

这两个红框,一个是设置字体,一个是放HTML代码。

然后在控制器里调用:“generate_pdf_files”这个方法即可。

设置成功后就像下方的图片一样:

下面是TCPDF常用函数的使用说明:

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

页面记得也设为utf-8

AddPage();新建一个pdf文档页面。

Image($file, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi, $palign, $ismask, $imgmask, $border);

注:把图片放语句$pdf->AddPage()之后,而这紧挨着,并且使用绝对坐标定位,即可做背景。

setFont( ‘字体’,‘控制显示’,字号) 设置文字显示样式也可单独使用

setTextcolor(int,int,int)设置文本颜色,三个参数的值必须在0~255之间

setFontSize(int );设置字号

setFillColor(int,int,int) 设置矩形框之类图形的填充颜色,三个参数值必须在0和255之间

输入文字:

单行文本

Cell($w, $h=0, $txt=‘’, $border=0, $ln=0, $align=‘’, $fill=0, $link=‘’, $stretch=0)

Cell(宽, 高, 内容, 边框, 是否换行, 文字对齐, 文字底色,连接, 变宽)

多行文本

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, 自动填充, 最大高度)

html文字

setHtmlLinksStyle($color=array(0,0,255), $fontstyle=‘U’);

setHtmlLinksStyle(颜色默认蓝色, U有下划线);

addHtmlLink($url, $name, $fill=0, $firstline=false, $color=‘’, $style=-1);

addHtmlLink(超链接地址, 显示文字, 是否有底色, $firstline=false, $color=‘’, $style=-1);

换行

Ln($h=‘’, $cell=false);

Ln(行数, 是否cell);

输出pdf

$pdf->Output(doc.pdf’, ‘I’);

默认是 I:在浏览器中打开,

D:下载,

F:在服务器生成pdf ,

S:只返回pdf的字符串

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/336320.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LightGBM

目录 1.LightGBM的直方图算法(Histogram) 直方图做差加速 2.LightGBM得两大先进技术(GOSS&EFB) 2.1 单边梯度抽样算法(GOSS) 2.2 互斥特征捆绑算法(EFB) 3.LightGBM得生长策略(leaf-wise) 通过与xgboost对比,在这里列出lgb新提出的几个方面的技术 1.Ligh…

JavaScript 评测代码运行速度的几种方法

一、使用 performance.now() API 在 JavaScript 中,可以使用 performance.now() API 来评测代码的运行速度。该 API 返回当前页面的高精度时间戳,您可以在代码执行前后调用它来计算代码执行所需的时间。 例如: let t0 performance.now();…

计算机组成与设计04——处理器

系列文章目录 本系列博客重点在深圳大学计算机系统(3)课程的核心内容梳理,参考书目《计算机组成与设计》(有问题欢迎在评论区讨论指出,或直接私信联系我)。 第一章 计算机组成与设计01——计算机概要与技…

idea整合svn

idea整合svn svn下载 链接:https://pan.baidu.com/s/1yS3R3lEE8lm9c9Ap-ndDKg 提取码:65ur 基础步骤 IDED中配置SVN没有svn.exe解决办法 以下是两种解决方案 需要卸载原 svn(不推荐) 参考网址: https://blog.csdn.…

ansible以及playbook

文章目录1.ansible1.概念2.工作原理3.安装ansible2.playbook1.组件2.角色详解3.剧本语法3.1基本语法3.2常用字段3.3 选项1.ansible 1.概念 ansible是一个可以服务端控制其他机器完成工作的一个应用工具, 1.服务没有客户端存在,通过模块对节点服务器进行…

设计模式--建造者模式 builder

设计模式--建造者模式 builder)建造者模式简介建造者模式--小例子(电脑购买)1.产品类2.抽象构建者3.实体构建类4.指导者类5.客户端测试类小结建造者模式简介 建造者模式有四个角色,概念划分如下: Product : 产品类&a…

docker的基本管理

Docker的概念云计算三层架构服务说明应用IAAS基础设施及服务硬件(服务器、网络设置、防火墙等)虚拟化网络虚拟化(大二层)例:openstackPAAS平台及服务环境例:数据库、 docker 、kubernetesSAAS应用及服务应用…

内网渗透(十四)之内网信息收集-域环境中查找域内用户基本信息

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

终于进了字节,记录一下我作为一名测试员磕磕碰碰的三个月找工作经历...

我是裸辞后重新找工作的,从去年到今年,前前后后花了大概三个月,大大小小参加了几百场面试。不是我说,作为一名测试员是真的挺难的,不过很庆幸自己最后拿到了字节的offer,今天在这里做一下记录吧&#xff0c…

从GPT到ChatGPT:我们离那个理想的AI时代到底还有多远?

写在前面 在2023年新年伊始,科技界最为爆火一款产品无疑是OpenAI公司出品的ChatGPT了,作为一名NLP领域从业者,似乎也好久没有看到如此热闹的技术出圈场景了。诚然从现象来看,无论从效果惊艳度、社会效应、商业价值、科技发展方向…

C++【多态】

文章目录1、多态的概念2、多态的定义及实现2-1、多态的构成条件2-2、虚函数2-3、虚函数的重写2-4 多态样例2-5、协变2-6、 析构函数与virtual2-7、函数重载、函数隐藏(重定义)与虚函数重写(覆盖)的对比2-8、override 和 final&…

spring的简单理解

目录 1 .ioc容器(控制反转) 2. Aop面向切面编程 3. 事务申明 4. 注解的方式启动 5. spring是什么与他的优势 6. 代理设计模式(比如aop) 7. springmvc中相应json数据 8. 使用lombok来进行对代码的简化 9. 使用logback记录…

学习SpringCloudAlibaba(二)微服务的拆分与编写

目录 一、单体架构VS微服务架构 1.单体架构 ​(1).单体架构的优点 (2).单体架构的缺点 2.微服务架构 (1)微服务的特性 (2)微服务架构图 (3)微服务的优点 …

大数据之------------数据中台

一、什么是数据中台 **数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。**数据中台的目标是让数据持续用起来,通过数据中台提供的工具、方法和运行机制,把数据变为一种服务能力,…

ChatGPT使用、原理及问题

引言 2022年11月30日,OpenAI公布了他们的新产品:ChatGPT。随后ChatGPT火得一塌糊涂。通过b站搜索“ChatGPT”的结果: 搞学术的想着从它身上找点创新,吃瓜群众吃着这锅热瓜,想赚钱的眼睛贼亮🌟&#x1f31f…

C++11中function和bind的用法

C11中function和bind的用法一、简介二、std::function的用法2.1、保存普通函数2.2、保存lambda表达式2.3、保存成员函数三、std::bind用法总结一、简介 在设计回调函数的时候,无可避免地会接触到可回调对象。在C11中,提供了std::function和std::bind两个…

云端IDE系列教程6:初识 WeTTY,想说爱你不容易

原文作者:行云创新产品总监 John 概述 今天我们接着上一期的文章《玩转云原生 Terminal 之 TTY 的前世今生》,继续来聊一聊云原生 Terminal。为了在 TitanIDE 上玩转云原生 Terminal ,首先找到了 WeTTY,在这个过程中,…

ITSM | 限时优惠,帮助您的团队终结不良服务管理!

不良服务管理(Bad Service Management ,简称BSM)是一种糟糕的状况,困扰着使用传统ITSM工具的公司。现在,它已经在许多IT团队中蔓延,并迅速攻击业务的其他领域,使他们无法处理来自不同业务领域的…

ROS2机器人编程简述humble-第四章-AN OBSTACLE DETECTOR THAT USES TF2 .1

如何检测一个障碍物呢?视觉、雷达?可视化效果如何?机器人所装备的传感器例如感知设备,主要负责环境的获取和识别。然后,结果发送给电机控制运动,在环境中自主、智能决策和规划。需要先简单看一下仿真可视化…

一篇带你MySQL运维

1. 日志 1.1 错误日志 错误日志是 MySQL 中 重要的日志之一,它记录了当 mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的&…