admin管理员组文章数量:1630183
一、踩坑:
1.直接把html内容保存到后缀为.docx或.doc的文件里,这种的图片并没有真正写入文件,离线时,就看不到图片了
2.mpdf ,图片可以,但是表单样式错乱了
二、最终理想实现方式:感谢(https://blog.csdn/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/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/xxx.html ./xxx.pdf'') 的方式将内容转成pdf。
四、遇到的问题和解决方式:
1).上面第4和5是解决乱码的,不管用的话,试试把百度首页转成pdf,看中文乱码吗,如果百度不乱码,你的乱码,那就在富文本内容前面加上
<!Doctype html>
<html xmlns=http://www.w3/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文件粘贴到目标目录下,可以重命名为含中文的文件名
版权声明:本文标题:导出富文本里的内容为pdf 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729068641a1184822.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论