php markdown 电子书_PHP Markdown转PDF解决方案
这几天为我的开源项目御用文档系统YurunDoc(截止发稿前未开源)开发了下载PDF的功能,方便有些奇怪的用户喜欢下到本地看。
刚开始研究时候没想到竟然没有一个成熟的方案,百度一下找到的方案都是一些对中文兼容不好的。
中间省去无数研究尝试过程……
终于在Gayhub(Github)找到了好用的类库。
Composer的require组合如下:"brainsware/php-markdown-extra-extended" : "dev-master",
"mpdf/mpdf" : "dev-master"
brainsware/php-markdown-extra-extended是markdown转html的库。
mpdf/mpdf是html转markdown的库。
其实markdown转html倒是有很多,随便拿一个用就可以了。主要问题都是出在pdf类库对中文不兼容的问题上,折腾各种字体也难以解决,或者会导致pdf文件巨大。
mpdf是我找到的一个文档全,兼容中文的php pdf类库,而且使用大字体的情况下也不会增大很多体积。
mpdf需要支持中文还是需要做一些设置的,不过超简单,字体直接用ttf就可以。// 固定写法
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new \Mpdf\Mpdf([
'fontDir' => array_merge($fontDirs, [
APP_PATH . 'PDFFonts', // 设置你自定义的字体目录
]),
'fontdata' => $fontData + [
// 自己加个字体,名字叫yaheimono,后面是文件名
'yaheimono' => [
'R' => 'MSYHMONO.ttf',
'I' => 'MSYHMONO.ttf',
'B' => 'MSYHMONO.ttf',
'BI' => 'MSYHMONO.ttf',
],
],
'default_font' => 'yaheimono' // 设置默认字体
]);
// 下面两句好像是把字体编译到pdf里来着,不加就有问题
$mpdf->useSubstitutions = true;
$mpdf->backupSubsFont = array('yaheimono');
php markdown 电子书_PHP Markdown转PDF解决方案相关推荐
- 开源Markdown电子书制作工具,平替GitBook!
大家好,我是TJ 一个励志推荐10000款开源项目与工具的程序员 大家好,我是TJ! 相信很多读者跟我一样,喜欢用Markdown来记笔记和文档.对于一些成体系的内容,比如:用户手册.学习笔记等内容非 ...
- 用Edge将GitHub上的markdown文件在线完美转pdf
用Edge将GitHub上的markdown文件在线完美转pdf Edge浏览器插件下载 使用方法 Edge浏览器插件下载 GitHub Markdown Printer 链接: https://mi ...
- Python 网络爬虫实战:去哪儿网旅游攻略图文爬取保存为 Markdown电子书
接上回,<Python 网络爬虫实战:爬取<去哪儿>网数千篇旅游攻略数据>. 我们爬取到了数千篇的旅游攻略文章的数据. 但是事情还没有结束,对于大部分的人来讲,最希望得到的东西 ...
- 【Tools】MarkDown教程(一)-MarkDown简介
00. 目录 文章目录 00. 目录 01. 什么是MarkDown 02. MarkDown优点 03. MarkDown缺点 04. MarkDown资源 05. 附录 01. 什么是MarkDo ...
- 异常强大的Markdown编辑插件-Markdown Preview Enhanced
最近使用Markdown写作,了解到以下这些Markdown写作工具 MaHua 在线markdown编辑器 百度搜索Markdown时,它排在非常靠前的位置 马克飞象- 专为印象笔记打造的Markd ...
- markdown 图片居中_写作者必备技能:markdown 微信使用markdown
本文来自我的微信公众号 跨时代的jay 欢迎关注 什么是markdown? markdown 先展示一下,一遍更好的了解 (左图为写作区,右图为预览区) 它是一种纯文本文件 经过markdown编辑器 ...
- Linux的markdown笔记软件,Markdown工具满天飞,哪一款适合用印象笔记的你?
在写作的问题上,markdown语言有其独有的优势.这一点经常使用markdown码字的人,不用说都明白.markdown的这种特有的优势使得应用它的人总想把markdown用到任何地方,比如印象笔记 ...
- 【MarkDown】:MarkDown编辑器
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...
- 【Tools】MarkDown教程(六)-Markdown Reference
Markdown For Typora Overview Markdown is created by Daring Fireball; the original guideline is here. ...
最新文章
- 测试开发板与主机之间通过串口收发数据(uart.c/uart.h	)
- 一个应届产品狗的产品日记【第二部:学做产品】
- C#中使用SharpZipLib进行解压缩然后进行二进制反序列化
- 任务调度框架Quartz基本介绍
- IPv6应用普及,任重而道远
- Golang的CSP很酷?其实.NET也可以轻松完成
- 计算机专业跨考学科英语难吗,跨考学科英语,过来人走过的弯路
- php mysql 进销存_PHP进销存源码 仓库管理系统 WEB进销存 php+mysql 网络版进销存
- 杜兰大学计算机专业,杜兰大学计算机科学
- 中尺度海洋涡流对热带气旋强度影响的调查
- Vscode Remote SSH 远程连接失败过程报错:试图写入的管道不存在
- 【临床预测模型】----单因素分析
- 角频率Ω和数字频率w的物理含义
- oracle delete not in 优化,Oracle中的sql语句优化
- 小白学机器学习西瓜书-第三章对数几率回归
- 云闪付华为P9指纹_截胡小米支付妥妥的!华为支付正式上线,支持25家银行
- 电梯plc的io分配_plc的io分配表怎么写
- 气压传感器c语言程序,气压芯片参数——以气压传感器芯片DSH553为例
- IOC框架---什么是IOC
- 10 款牛哄哄的 Chrome 插件
热门文章
- 一道PHP面试题,求两个文件的相对路径
- SCOM 2012知识分享-17:创建并管理组
- 业务逻辑?到底是什么
- 办公室网络域控制器管理方案
- mysql数据类型内存_mysql 存储金额类型,用什么数据类型比较可靠,一般企业数据用什么数据类型?...
- java转动的风扇课程设计,课程设计—智能风扇设计报告
- 我的成长笔记20210325(一天写了247条用例)
- 交换机短路_交换机日常怎么运行维护?一文告诉你
- python技术分享_分享几个python的使用技巧
- CSS基础-行高(height和line-height)【学习笔记】