首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ThinkPHP5+mpdf 实现富文本生成 PDF文件

背景 今天进行后台文章编辑时: 为方便文章下载,建议进行富文本添加、修改时,可在规定目录下对应生成 PDF文件; 网上搜索发现,mPDF 是一个成熟工具,也避免再造轮子咯 下面将应用于...ThinkPHP5 框架下过程介绍下,方便道友借鉴 操作环境 PHP版本: 7.0.12 TP框架: ThinkPHP5.1.2 mpdf版本: v7.0.1 详细介绍及操作,注意参考 :mPDF...首先建议下载对应版本包 【mpdf 扩展包链接】 以我为例,根据我PHP版本,从版本库找一个可支持 mpdf 版本即可,鄙人选择是 v7.0.1,那么对应命令为: composer require...对于 Linux/Nginx 环境下,需要更改 mpdf 目录下写权限 (“src/”、“tmp/”、“ttfonts/”) 为了方便,鄙人直接使用了如下命令: chmod -R 777 vendor...附录 1.mPDF - 临时文件目录…不可写 2.推荐文章——mPDF简单使用 毕竟 mPDF 集成内容是很丰富,可以根据自己需求进行扩展; 比如:水印,页眉页脚设置,标题等等…

2.8K20

php 使用mpdf实现指定字段配置字体样式方法

前两天在做一个pdf导出功能,使用插件是kartik-v/yii2-mpdf,此插件使用mpdf composer required kartik-v/yii2-mpdf mpdf文档地址: https...://mpdf.github.io/ 有一个需求要求导出pdf需要将一个指定字段设置为一个指定字体,其他信息不使用此字体 刚开始我直接将mpdffontdata加上我需要加上字体文件 //...,原来这是全局配置字体 那么我又想到我配置一个无需要使用字体,然后页面上引用不就行了吗 于是我配置了一个字体: 'fontdata' = ArrayHelper::merge($fontData,...[ 'my' = [ 'R' = 'my.ttf', ], ]), 配置之后我们需要生成pdf文件中加上如下属性 style="font-family: my;" 加上之后进行测试...'my' = [ 'R' = 'my.ttf', ], ]), 配置完成之后发现没有作用,于是需要生成pdf文件引入全局字体样式 body { font-family: sun-exta

2.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

解决使用 mPDF 导出 PDF 时中文及符号乱码问题

开发导出 PDF 时,选择了使用mPDFmPDF 是一个 PHP 库,它从 UTF-8 编码 HTML 生成 PDF 文件。...而它使用也相对简单: 安装 使用composer加载 composer require mpdf/mpdf 使用 <?php require_once __DIR__ ....'); $mpdf->Output(); 但是实际使用时会遇到中文和符号乱码(变成了小方块)问题,最开始会想到是字体问题,但是指定了字体后,并没有解决问题。...mpdf中文和符号乱码 查看了文档后发现需要指定两个参数: $this->pdf = new Mpdf([ 'autoScriptToLang' => true, 'autoLangToFont...' => true, ]); 刷新页面,发现中文此时已经可以正常显示了 mpdf中文正常,符号依旧是方块 但是当中文标点符号靠近英文时候,中文符号就又会变回小方块。

3K42

如何在Debian 8上发布Booktype书籍

安装mPDF之前,需要使用以下命令安装PHP命令行解释器和解压缩实用程序: sudo apt-get install php5-cli unzip 接下来,下载mPDF,将其解压缩到/var/www.../目录: sudo wget http://mpdf1.com/repos/MPDF60.zip sudo unzip MPDF60.zip -d /var/www/ 该文件非常大,因此下载可能需要一些时间...您需要重新输入以进行确认。 注意:安全地方记下密码。您将在步骤5 - 创建书型实例再次使用它。 然后创建一个名为booktype-db数据库,设置booktype-user为所有者。...使用您之前创建超级用户帐户详细信息登录Booktype(我们示例是admin)。...登录后,与超级用户电子邮件地址关联gravatar(如果有)将显示“ 人员”和“ 我个人资料”框。 第7步 - 与主管一起运行芹菜 Celery是Booktype服务器使用任务队列。

1K00

IKEA.com本地文件包含漏洞之PDF解析巧妙利用

快速浏览了它们文档后,最终我确定在该项目中使用mPDF库。 识别mPDF安全问题 我们立刻制作了一个mPDF本地副本,以便检查它是否存在安全漏洞。...最好起点是CHANGELOG,开发人员通常使用该文件来跟踪版本之间变化。 ? 可以看到2017年10月19日,mPDF改变了他们处理注释标签方式。因此,让我们仔细查看文档该标签。 ?...阅读了h0ng10漏洞报告后我们得知,旧版本mPDF存在严重安全问题,攻击者能够通过注释标记包含文件。 仔细查看该项目的Github提交后,我发现其中展示一段易受攻击mPDF代码。...而其使用PDF库包含了一个隐藏功能,即允许通过模板添加特定标记将文件嵌入到PDF。该功能已在其最新版本禁用,而IKEA却未进行及时更新,因此才导致了安全问题发生。...修复建议 绝不要允许用户操纵PDF模板 客户端渲染包含购物清单PDF,例如使用jsPDF 更新到最新版本mPDF库,禁用注释代码 报告时间线 2018.6.16 发现此漏洞,通过Zerecopter

1.6K60

Oracle数据迁移,本地磁盘空间不足情况下如何使用数据泵来迁移数据库

近期公司有个项目,需要将一套AIX上rac 11g,迁移到华为云上,数据量大概4T,停机时间2小时,目前最大问题是本地磁盘空间不足。...对于OGG来说,OGG初始化需要导出和导入,仍然需要临时本地磁盘空间,当时把该方案直接pass掉了,后来回头想想,似乎可以使用network_link来解决这个问题。...expdp中使用network_link选项时,会将文件直接导出到目标端相关路径。...5、impdp使用network_link 如果想不生成dmp文件而直接将需要数据导入到target数据库,那么还可以直接使用impdp+network_link选项 ,这样就可以直接将源库数据迁移到目标库...5.3、总结 不生成数据文件而直径导入方法类似于目标库执行create table xxx as select * from xxx@dblink ,不过impdp+nework_link一并将数据及其索引触发器等都导入到了目标端

3K20

tp6框架验证码-----captcha

使用tp6自带验证码遇到坑,也去网上找了资料但是还是没能解决,自己通过另一种方式实现,接下来就来讲一下不能显示captcha方法 首先安装captcha验证码 composer require...>{:captcha_img()} 或 都可以,但是小编这两种都不能使用 接下来小编就讲如何解决这个...·问题 首先在app下创建个目录能访问就行小编这里用是controller目录 image.png 接下里就是路由,router/app.php创建路由 Route::get("verify...","/home/verify"); 接下来继续找到安装captcha vendor/topthink/think-captcha/helper.php 找到captcha_img 方法只需要将...$src修改为如下 $src = '/home/verify'; 然后返回到模板界面调用我们设置好路由 这里我们可以看到验证码可以调用了

1.5K20

FireFox下Canvas使用图像合成绘制SVGBug

本文适合适合对canvas绘制、图形学、前端可视化感兴趣读者阅读。 楔子 所有的事情都会有一个起因。 最近产品上需要做一个这样功能:给一些图形进行染色处理。...没多久,小伙伴说,第二种算法firefox下不起作用。 探索原因 听说有bug,心中一惊。我测试过了,FireFox下面也测试过。于是我打开火狐浏览器,启动示例,发现是好,没有问题。...通过一起排查,最终发现我示例代码和产品中代码一个区别是:示例代码用是png图片,而产品中用是svg图片。 难道是svg图片问题,拿一个svg图片放到示例代码,果然不对。...在其他浏览器,以下代码是生效,又挖空效果。...但是 FireFox 下不生效: function init() { var canvas = document.getElementById

89710

FireFox下Canvas使用图像合成绘制SVGBug

本文适合适合对canvas绘制、图形学、前端可视化感兴趣读者阅读。 楔子 所有的事情都会有一个起因。 最近产品上需要做一个这样功能:给一些图形进行染色处理。...没多久,小伙伴说,第二种算法firefox下不起作用。 探索原因 听说有bug,心中一惊。我测试过了,FireFox下面也测试过。于是我打开火狐浏览器,启动示例,发现是好,没有问题。...通过一起排查,最终发现我示例代码和产品中代码一个区别是:示例代码用是png图片,而产品中用是svg图片。 难道是svg图片问题,拿一个svg图片放到示例代码,果然不对。...在其他浏览器,以下代码是生效,又挖空效果。...但是 FireFox 下不生效: function init() { var canvas = document.getElementById

1.1K00

小智在这3年开发遇到 CSS 问题及解决方案,有大佬帮他总结好了 !

在下面的例子,同样按钮 Chrome 和 Safari ,后者添加了默认灰色背景。 ?...移动设备上,浏览器会显示一个水平滚动条。 ? 解决方法就是使用 flex-wrap: wrap,这样当水平空间不够时,浏览器会帮我们自动换行。...和auto-fill之间差异误解 CSS grid,repeat函数可以创建响应列布局,而不需要使用媒体查询。...在下面的示例,每个项目的右侧都有8px空间,但是由于使用display:inline-block导致增加了一个空格,最后结果是12px,这不是期望结果。 ?...它们默认情况下不会继承,因为浏览器将默认系统字体应用于它们。

3.6K10

ArcGIS JS API 4.15实现地图加载图片(优化版)

但是最近客户又有了新需求,因为我们之前文章通过扩展图层来实现图片添加后,如果图片中某一处信息比较丰富,地图缩放一瞬间如果我们拖动地图的话,那部分图片会有卡顿。...那这样一来,图片上信息比较丰富地方绘制时候就比较慢,肯定会有一丢丢的卡顿,尽管后期使用双缓冲技术也没有得到优化,所以这篇文章我们采用另一种方式来实现地图叠加图片。...2、这篇文章直接使用img标签来做,原理很简单,我们直接在地图渲染canvas标签处另外添加一个img标签,然后通过监听地图视图区域变化来动态改变图片大小和位置即可。...id="viewDiv"> 4、然后我们地图初始化完成之后获取地图渲染标签,它同级地方添加一个img标签,并指定一些属性,如下: var resultDom...,需要我们为这个img标签指定样式才可以看到我们添加后图片,所以接下来我们直接监听地图视图变化,在这里面为其指定样式和相应位置: let extent = { //图片范围 xmin

2.3K20

keyframes不同浏览器表现性

一、keyframes使用方法 keyframes是css3实现动画一种方式。...简单使用规则如下: 先定义元素动画样式,并设置动画名称 selector{ animation: name duration timing-function delay iteration-count...二、keyframes不同浏览器表现性 IE 9以下不支持 IE10支持文字和样式动画,但不支持图片帧动画 Firefox支持文字和样式动画,不支持图片帧动画 Chrome支持各种形式动画 下面我写了一段代码来测试...keyframes不同浏览器表现性 index.html <!...IE10,仙鹤无动画效果,小球运动 ? Firefox,仙鹤无动画效果,小球运动 ? Chrome,仙鹤和小球均有运动效果,keyframes只chrome中表现良好 ? 在线演示

1.7K60

那些与 IE 相伴日子

然而,我们是很难一次性查完所有的差异点再投入开发,这里分享几个我开发遇到问题,以及对应解决方法吧。...当我设置图片标签 src 时候, IE 浏览器自动将原图片宽、高设置成了 属性,这样导致我使用 CSS 只设置宽度为 1200px 而没有设置高时候, 生效高度便是原图高度...2)IE 下 8 位色值不生效 之前开发,我都习惯了使用 6 位色值,也不曾出现过问题,直到有一次,运营同学反馈组件配置平台下选中了某个颜色,却一直不生效,通过排查问题,才发现了原来输出色值是...如果实在需要不透明度,我们可以使用 rgba 格式,用最后一位值来实现透明度,如 background-color: rgba(255,0,0,0.3),即使 IE9 上也可以表现良好。 ?...Html 需要对原始 标签进行宽度和高度显式设置,才能保证 中有准确宽高。代码如下。

97220

CSS 侧边栏小屏设备中进行隐藏

图片 侧边栏作用应该就不用多说了吧,能够很方便我们回到网页指定位置,大屏设备,侧边栏往往是悬浮于屏幕右侧,很方便用户使用,但在小屏设备,屏幕空间有限,所以我们会通过隐藏侧边栏方式,来节省视口空间使用...我们先来看下,大屏设备,侧边栏如何显示,继而再讲述,从大屏设备切换到小屏设备,侧边栏如何隐藏,国际惯例,先看 HTML 结构代码 <img src="img/...如笔记本电脑,屏幕空间有限,我们通常选择将侧边栏进行隐藏,只有浏览者需要用到侧边栏时候,再将侧边栏显示出来,宽度小于等于 1410 px 设备,侧边栏将会在屏幕右侧进行隐藏,并会出现一个提示图片...,源码我已经发到了 GitHub Source_code 上了,有需要同学可自行下载,预览效果可点击 effect

1.8K30
领券