业务需要生成一张试卷.
格式是 Word.供给用户下载.
目前拿到了题目信息.如下
{ "question": "问题:已知 f(x)=x2+bx+c(b,c∈R)(1) 当 b=c 时若函数 f(x) 的图像与 x 轴有两个交点, 其坐标分别为 x1,x2, 求证 x1<-1 且 x2<-1?
", "answer": "答案:2", }
生成如下格式
现在的问题是
1.有没有方便快捷的第三方工具可以用于生成 Word.
2.数据插入到 Word 后.数据里的html标签需要被解析.比如里面有 img 图片标签.需要在 Word 里显示出来.
特此寻求大家.谢谢!
目前自己搭建了个服务.可以转换文件格式
html->pdf(支持 css)
pdf->docx(样式不会改变.完美)
过两天我把服务地址发上来.大家可以测试下
你这个是考试系统?
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
请问你找到方案了吗?碰到同样的问题,请教!谢谢。