php - 代码里生成 Word有什么第三方工具吗
ringa_lee
ringa_lee 2017-04-11 10:28:29
[PHP讨论组]

业务需要生成一张试卷.
格式是 Word.供给用户下载.
目前拿到了题目信息.如下

{
    "question": "<p>问题:<img src='xxx.png'>已知 f(x)=x2+bx+c(b,c∈R)(1) 当 b=c 时若函数 f(x) 的图像与 x 轴有两个交点, 其坐标分别为 x1,x2, 求证 x1<-1 且 x2<-1?</p>",
    "answer": "答案:2",
 }

生成如下格式

现在的问题是
1.有没有方便快捷的第三方工具可以用于生成 Word.
2.数据插入到 Word 后.数据里的html标签需要被解析.比如里面有 img 图片标签.需要在 Word 里显示出来.

特此寻求大家.谢谢!


目前用到了 phpoffice, 但是里面的 html 标签好像不会被解析,就把 html 当做字符串写进去了

目前自己搭建了个服务.可以转换文件格式
html->pdf(支持 css)
pdf->docx(样式不会改变.完美)
过两天我把服务地址发上来.大家可以测试下

ringa_lee
ringa_lee

ringa_lee

全部回复(6)
迷茫

你这个是考试系统?
PHP有个函数strip_tags可以过滤掉HTML和PHP标签,你可以把试卷内容用这个函数处理再保存。
如果要用PHP解析HTML,试试这个:https://github.com/bupt1987/html-parser
然后我发现,多年没碰数学,这些题已经不会做了。
其实你可以用PHPWord试试看。

阿神

由于html复杂且有很多word不支持的标签,我选择了与word交互良好的markdown作为输入语言。当然你可以通过html2markdown进行过度转换。
然后通过pandoc把markdown转为word,稳定且高效,而且此类库有非常高的代码贡献,有非常多的模板和主题可以选择,所以结果还是很漂亮的。

天蓬老师

apache POI ,这个就是java专门处理office软件的类库
php的就不知道了.

大家讲道理

下面方法不适用~还需要寻找

自问自答.找到了方法.
其实很简单.直接把 html 写到 .doc 文件里即可.
函数

function word($data,$fileName=''){
    if(empty($data)) return '';
    $data='<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">'.$data.'</html>';
    if(empty($fileName)) $fileName=date('YmdHis').'.doc';
    $fp=fopen($fileName,'wb');
    fwrite($fp,$data);
    fclose($fp);
}
$str = '<h2>hello daye</h2>';
word($str);

效果

高洛峰

这可能是最好的答案:http://xdocin.com/kj.pdoc

大家讲道理

请问你找到方案了吗?碰到同样的问题,请教!谢谢。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号