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


Posted in PHP onJuly 29, 2019

前两天在做一个pdf导出功能,使用的插件是kartik-v/yii2-mpdf,此插件使用的是mpdf

composer required kartik-v/yii2-mpdf

mpdf文档地址: https://mpdf.github.io/

有一个需求要求导出的pdf中需要将一个指定的字段设置为一个指定的字体,其他的信息不使用此字体

刚开始我直接将mpdf的fontdata加上我需要加上的字体文件

//配置字体目录
'fontDir' => array_merge($fontDirs, [
 Yii::getAlias('@common/pdf/fonts'),
]),
//配置字体
'fontdata' => ArrayHelper::merge($fontData, [
 'sun-exta' => [
  'R' => 'my.ttf',
  'sip-ext' => 'sun-extb',
 ]
]),

但是当我配置了如上配置之后发现,pdf的所有信息都变成了这个指定的字体,原来这是全局配置字体

那么我又想到我配置一个无需要使用的字体,然后在页面上引用不就行了吗

于是我配置了一个字体:

'fontdata' => ArrayHelper::merge($fontData, [ 
 'my' => [
  'R' => 'my.ttf',
 ],
]),

配置之后在我们需要生成的pdf的文件中加上如下属性

style="font-family: my;"

加上之后进行测试

但是发现:

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

我的其他信息变成了一个个小方块

看样子这是由于我没有进行设置我的全局字体,于是我又进行了全局字体配置

如下:

//配置字体文件目录
 'fontDir' => array_merge($fontDirs, [
 Yii::getAlias('@common/pdf/fonts'),
]),
'fontdata' => ArrayHelper::merge($fontData, [
 //配置全局字体
 'sun-exta' => [
  'R' => 'msyh.ttf',
  'sip-ext' => 'sun-extb',
 ],
 //配置指定信息的字体
 'my' => [
  'R' => 'my.ttf',
 ],
]),

配置完成之后发现没有作用,于是在需要生成的pdf文件中引入全局字体样式

body { font-family: sun-exta;}

引入之后发现成功

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

使用kartik-v/yii2-mpdf完整配置

$pdf = new Pdf([
 'mode' => Pdf::MODE_UTF8,
 'cssFile' => '@common/pdf/assets/score-mpdf.css',//css文件地址
 //mpdf配置
 'options' => [
  'debug' => true,
  'autoScriptToLang' => true,
  'autoLangToFont' => true,
  'ignore_invalid_utf8' => true,
  'baseScript' => \Mpdf\Ucdn::SCRIPT_HAN,
  'tabSpaces' => 4,
  'fontDir' => array_merge($fontDirs, [
   Yii::getAlias('@common/pdf/fonts'),//字体文件目录
  ]),
  'fontdata' => ArrayHelper::merge($fontData, [
   'sun-exta' => [
    'R' => 'msyh.ttf',
    'sip-ext' => 'sun-extb',
   ],
   'my' => [
    'R' => 'my.ttf',
   ],
  ]),
 ]
]);
$content = $this->renderPartial('@common/pdf/score.php', [
 'user' => $model,//传递的信息
]);
$fileName = '测试pdf.pdf';
return $pdf->output($content, $fileName, Pdf::DEST_DOWNLOAD);

根据如上就可以实现给pdf中指定的信息配置字体样式

总结

以上所述是小编给大家介绍的php 使用mpdf实现指定字段配置字体样式的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
PHP 类型转换函数intval
Jun 20 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
PHP sprintf()函数用例解析
May 18 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
php实现微信公众平台账号自定义菜单类
Dec 02 PHP
php中get_meta_tags()、CURL与user-agent用法分析
Dec 16 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
php 解析非标准json、非规范json
Apr 01 PHP
laradock环境docker-compose操作详解
Jul 29 #PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 #PHP
PHP中散列密码的安全性分析
Jul 26 #PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 #PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 #PHP
php使用socket调用http和smtp协议实例小结
Jul 26 #PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 #PHP
You might like
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
JQuery 学习笔记 选择器之四
2009/07/23 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
js new Date()实例测试
2019/10/31 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
python中的函数用法入门教程
2014/09/02 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
数据管理员的自我评价分享
2013/11/15 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
科学发展观活动总结
2014/08/28 职场文书
大学生赌博检讨书
2014/09/22 职场文书
财务经理岗位职责
2015/01/31 职场文书
2015年护士节活动总结
2015/02/10 职场文书
欢迎新生标语2015
2015/07/16 职场文书
小学六年级毕业感言
2015/07/30 职场文书