分享一下我老师大神的人工智能教程!零基础,通俗易懂!/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
中文支持弄好了。但是发现了中文不自动换行的情况。
在网上找了解决办法:
================
/619.html
最近刚好需要生成PDF文档,供下载打印用……
找了不少PDF工具,发现DOMPDF是最好用的,支持HTML最好。
顺便把其中遇到的问题也记录一下:
1.HTML要用table排版
用DOMPDF生成HTML文档,首先要先解决这个问题,没用DOMPDF生成过PDF的朋友,会在这个看似简单的问题上吃亏。作为过来人,我可以告诉你,最好用DIV,不要用table排版。原因是如果你用table排版时,如果是多个table嵌套,DOMPDF在渲染的时候会卡死,严重地会拖垮服务器的运行。用DIV就不会有这种情况发生。
另一个不能用table的原因是,下面提到的自动换行的解决方案,在table里面是没有作用的。
2.安装中文字体,让中文不会出现乱码
2.1. 准备好字体文件,如宋体,要准备好四个字体文件,分别为:常规、加粗、斜体和粗斜体,文件格式为ttf。
2.2. 进入DOMPDF字体安装页面,一般为http://localhost/dompdf/www/fonts.php
2.3. 定义字体名称,字体名称最好和css的字体名一致,如宋体为SimSun,这样的好处是在html不用再声明中文字体名称。
2.4. 根据要求,上传对应的四个字体文件,点击安装按钮,等待安装完成。
2.5. 特别提醒:如果是特别字体,或者字体名称跟css的命名不一致,需要在html中用到该字体的地方,用css代码设定字体名称,如:font-family:xxx
3.让中文实现自动换行
默认状态下,使用DOMPDF生成中文PDF时是不会自动换行的,需要对DOMPDF的代码做修改才能自动换行,具体的修改方法如下:
待修改的文件及位置:\dompdf\include\text_frame_reflower.cls.php
找到以下代码块:
// split the text into words
$words = preg_split(‘/([\s-]+)/u’, $text, -1, PREG_SPLIT_DELIM_CAPTURE);
$wc = count($words);
注释掉这两行代码,换成以下的代码块:
//解决DOMPDF中文自动换行的问题;@
preg_match_all(‘/./u’, $text, $array);
$words = $array[0];
$wc = count($words);
保存文件即可。
5、让DOMPDF也支持CSS float
如果要让DOMPDF支持CSS 样式的FLOAT效果,需要在配置文件中进行设置,方法如下:
5.1. 打开dompdf_config.inc.php
5.2. 找到DOMPDF_ENABLE_CSS_FLOAT的定义位置,值设置为true,如:
def(“DOMPDF_ENABLE_CSS_FLOAT”, true);
我刚刚测试的是使用的simsun字体,但太大了,非常不好!!等下再更换一个字体试试
=======================
要用表格,或自己PATCH程序吧。上面的内容的修改自动转行会报错。我没有细看。
给我老师的人工智能教程打call!/jiangjunshow
如果觉得《php 生成 pdf dompdf 库使用》对你有帮助,请点赞、收藏,并留下你的观点哦!