本文概述

在laravel, DOMPDF, Snappy等中, 有两种生成PDF的解决方案。在这种情况下, 我们将教你如何使用TCPDF创建PDF。

TCPDF现在是世界上最活跃的开源项目之一, 每天有数百万的用户使用, 并包含在成千上万的CMS和Web应用程序中。

TCPDF不需要任何其他内容作为其代码库。它不使用任何可执行文件, 并且它是许多开发人员的首选, 因为它易于使用集成。

要求

要在Laravel中使用TCPDF, 我们将在项目中包含tcpdf-laravel软件包。你可以将包添加到项目中, 在composer.json文件中添加以下行:

{

"require": {

"elibyy/tcpdf-laravel": "5.2.*"

}

}

或直接在控制台中使用composer:

composer require elibyy/tcpdf-laravel

由于TCPDF库很大, 因此安装需要一段时间。

实现

现在, 该库已包含在你的项目中, 你需要在服务提供商中启用它。

转到你的app.php文件(yourapp / config / app.php)并添加Laravel TCPDF服务提供商:

'providers' => [

//...

Elibyy\TCPDF\ServiceProvider::class, ]

现在, 你将可以在项目中使用TCPDF。

结合使用TCPDF和别名

你可以为TCPDF定义一个别名(无论你想要什么), 以防止直接声明新的类元素, 并使用TCPDF :: Method语法而不进行实例化。

转到你的app.php文件(yourapp / config / app.php)并添加该类的别名:

'aliases' => [

//...

'PDF' => Elibyy\TCPDF\Facades\TCPDF::class

]

现在, TCPDF的别名为PDF, 你可以使用以下命令在控制器中生成PDF:

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use PDF;

class DefaultController extends Controller

{

public function index()

{

$html = '

Hello World

';

PDF::SetTitle('Hello World');

PDF::AddPage();

PDF::writeHTML($html, true, false, true, false, '');

PDF::Output('hello_world.pdf');

}

}

现在, 你可以使用TCPDF从html生成出色的PDF。

注意:由于在使用别名时不会创建TCPDF类的新实例, 因此, 如果要创建多个PDF, 则需要使用reset方法来创建一个新的PDF。

要创建多个PDF, 请使用PDF :: reset方法在新的PDF实例上工作:

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use PDF;

class DefaultController extends Controller

{

public function index()

{

for ($i = 0; $i < 5; $i++) {

$html = '

Hello World '.$i.'

';

PDF::SetTitle('Hello World'.$i);

PDF::AddPage();

PDF::Write(0, 'Hello World'.$i);

// Write the file instead of throw it in the browser

PDF::Output(public_path('hello_world' . $i . '.pdf'), 'F');

PDF::reset();

}

}

}

使用无别名的TCPDF

没有别名, 我们将需要声明TCPDF类的实例, 只需在控制器顶部的Elibyy \ TCPDF \ Facades \ TCPDF类中添加一个use语句即可。

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use Elibyy\TCPDF\Facades\TCPDF;

class DefaultController extends Controller

{

public function index()

{

$html = '

Hello world

';

$pdf = new TCPDF();

$pdf::SetTitle('Hello World');

$pdf::AddPage();

$pdf::writeHTML($html, true, false, true, false, '');

$pdf::Output('hello_world.pdf');

}

}

推荐建议

在视图中处理HTML内容而不是在控制器中手动操作是一种好习惯。

你可以在模板中以html格式绘制PDF内容, 检索视图生成的html并写入PDF:

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use Elibyy\TCPDF\Facades\TCPDF;

class DefaultController extends Controller

{

public function index()

{

$view = \View::make('myview_name');

$html = $view->render();

$pdf = new TCPDF();

$pdf::SetTitle('Hello World');

$pdf::AddPage();

$pdf::writeHTML($html, true, false, true, false, '');

$pdf::Output('hello_world.pdf');

}

}

玩得开心 !

larvel html转pdf文件,如何在Laravel中使用TCPDF从HTML生成PDF相关推荐

  1. linux中编辑pdf文件,如何在Ubuntu中创建和编辑PDF文件

    在打印,共享和通过电子邮件发送文档(尤其是大型文档)时,PDF或可移植文档格式通常是我们的首选.对于Windows和MacOS,您可能非常熟悉,也依赖于广泛使用的Acrobat产品来进行pdf创建,查 ...

  2. php图片生成加密pdf文件,如何在PHP中加密由TCPDF生成的PDF(密码保护)

    本文概述 PDF是数字世界中最接近正式文档的文件, 并且在现实生活中, 某些PDF旨在以保密的方式进行保密.而且, 如果你想使用TCPDF保护生成的PDF, 则库中内置了对密码保护和加密的支持, 你只 ...

  3. win7如何更改文件类型_如何在win10中使用云笔记软件来做pdf手写笔记或绘图? - 敬业签便签...

    Win10是现在很多职场办公人士和笔记本电脑用户所使用的操作系统,其界面更为简洁,功能也更为强大.和Windows之前所发布的经典Win7系统一样,在Win10系统电脑上也可以下载安装很多好用的工具软 ...

  4. PDF文件太大怎么压缩,一分钟学会压缩PDF

    PDF文件太大怎么压缩,现在很多的办公人员在使用PDF文件,PDF文件的安全性也是比较高的,但是也因为此,PDF文件不容易压缩,今天小编就为大家介绍压缩PDF文件的操作方法. 1:首先需要将自己的PD ...

  5. 如何将PDF如何存入MySQL_如何将生成的pdf文件保存到java中的mysql数据...

    我有一个使用itext库生成pdf文件的java类.现在根据我的需要,我必须将生成的pdf文件保存到mysql数据库表中,但是我不知道该怎么做. 我的担心是:- 1.我可以在pdf表的mysql列中提 ...

  6. linux中打开pdf文件_在Linux中减少PDF文件大小

    linux中打开pdf文件 In our Linux system, If we have a large PDF file, we may want to reduce it's size. We ...

  7. 如何在Lyx中添加参考文献,以及生成参考文献目录

    如何在Lyx中添加参考文献,以及生成参考文献目录 首先,创建一个记事本txt文件 在IEEE上或者百度学术上搜索你要添加的文献, 点击引用,下载BibTex,将你要引用的所有文献的BibTex复制到新 ...

  8. linux ubuntu下怎样将pdf格式文件转换为doc格式文件,如何在Ubuntu命令行上将文档转换为PDF格式...

    在打印,共享和通过电子邮件发送文档(尤其是较大的文档)时,PDF或可移植文档格式通常是首选.对于Windows和macOS,您可能非常熟悉,也依赖于广泛使用的Acrobat产品进行pdf创建,查看和编 ...

  9. python读取ansi编码文件,如何在Python中同时读取ANSI和Unicode txt文件?

    我是python新手,遇到了一个奇怪的问题: 当一个目录中有50个txt文件时,我希望读取每个.txt文件并将其内容保存在一个唯一的变量中,例如:**file = open(fcf[i], 'r') ...

  10. 如何在 Laravel 中 “规范” 的开发验证码发送功能

    需求场景 发送「验证码」或者「消息通知」,可发送到手机或邮箱中. 完成 首先,在 Laravel 中的规范就是使用 Laravel 的「消息通知」,这里基于场景为「验证码」.这个需求几乎所有软件系统都 ...

最新文章

  1. QEMU 使用的镜像文件:qcow2 与 raw
  2. 绿盟科技发布OpenSSL高危漏洞技术分析与防护方案 G20成员国美国、中国、德国受影响较大...
  3. notepad php格式,notepad怎么格式xml
  4. Qt Quick学习笔记
  5. python redis事务_python实现redis三种cas事务操作
  6. 基于Adaboost的音乐情绪分类算法
  7. C# 连接 Exchange 发送邮件
  8. 统计信号处理基础——估计与检测理论 Kay
  9. 让Linux下的打印机hp1020、hp p1008自动加载固件
  10. 十六进制换算成二进制、八进制、十进制
  11. mockplus 原型设计工具
  12. mssql用户/角色无法查询sys.dm_tran_locks视图;消息 297,级别 16,状态 1,第 1 行 用户没有执行此操作的权限。
  13. 九、JavaScript网页特效 - 章节课后练习题及答案
  14. 闲谈IPv6-聊聊IPv6端到端分段和MTU探测的问题
  15. 信用社考试计算机知识,农村信用社考试计算机知识模拟试题及答案
  16. JavaScript 排他思想
  17. 第5章第17节:案例:使两张幻灯片中的图片进行平滑切换 [PowerPoint精美幻灯片实战教程]
  18. Python3内置函数(41-50)
  19. 将网站封装成APP安卓应用
  20. Coursera机器学习+deeplearning.ai+斯坦福CS231n

热门文章

  1. 债券基金的涨跌受什么影响
  2. 证明彼得森图不是平面图
  3. 快递柜储物柜锁控制板
  4. Excel表格中带公式的数值如何复制?
  5. 51.com数十高层离职幕后:3年内乱因扩张失败,互联网营销
  6. 哥尼斯堡的“七桥问题”(欧拉回路)
  7. QQ三国推举孝廉答题工具使用说明
  8. 然之协同 PHP,然之协同办公系统5.2开源版官方下载
  9. 中国农业大学计算机考研复试分数线,2020中国农业大学考研复试分数线已公布...
  10. Android版本名称、版本号、API level对应关系