1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php markdown 电子书_PHP Markdown转PDF解决方案

php markdown 电子书_PHP Markdown转PDF解决方案

时间:2021-06-16 23:24:41

相关推荐

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=(newMpdf\Config\ConfigVariables())->getDefaults();

$fontDirs=$defaultConfig['fontDir'];

$defaultFontConfig=(newMpdf\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');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。