导出富文本里的内容为pdf

一、踩坑:

1.直接把html内容保存到后缀为.docx或.doc的文件里,这种的图片并没有真正写入文件,离线时,就看不到图片了

2.mpdf ,图片可以,但是表单样式错乱了

二、最终理想实现方式:感谢https://blog.csdn.net/weixin_34186128/article/details/88705363

wkhtmltopdf

安装:

1.yum install -y fontconfig libX11 libXext libXrender libjpeg libpng xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

2.wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm

3.rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm

4.mkdir -p /usr/share/fonts/chinese/TrueType

5.mv simsun.ttc /usr/share/fonts/chinese/TrueType/

其中simsun.ttc是 从C:\Windows\Fonts下复制得到的。

三、理论:先把富文本的html内容保存到一个html文件里,并且允许通过url访问,然后通过 exec(''wkhtmltopdf 'http://xxx.com/xxx.html ./xxx.pdf'') 的方式将内容转成pdf。

四、遇到的问题和解决方式:

1).上面第4和5是解决乱码的,不管用的话,试试把百度首页转成pdf,看中文乱码吗,如果百度不乱码,你的乱码,那就在富文本内容前面加上

<!Doctype html>
<html xmlns=http://www.w3.org/1999/xhtml>
    <head>   
        <meta http-equiv=Content-Type content="text/html;charset=utf-8">
        <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1">
    </head>
    <body>

在富文本内容末尾加上

    </body>
</html>

应该就可以了。 

2).linux环境中因为环境问题,也可能是wkhtmltopdf自身问题。如果pdf名或者路径中有中文,它转不出pdf文件。我的解决方式是,把它转到项目根路径下一个md5方法得到的字符串作为pdf文件名(防止重复),生成后,接着通过

exec('mv xxx.pdf xxx/xxx(含中文).pdf')

的方式,将pdf文件粘贴到目标目录下,可以重命名为含中文的文件名 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值