业务需要生成一张试卷.
格式是 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 写到 .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);
效果
apache POI
,这个就是java专门处理office软件的类库
php的就不知道了.
这可能是最好的答案:http://xdocin.com/kj.pdoc
你这个是考试系统?
PHP有个函数strip_tags
,可以过滤掉HTML和PHP标签,你可以把试卷内容用这个函数处理再保存。
如果要用PHP解析HTML,试试这个:https://github.com/bupt1987/html-parser
然后我发现,多年没碰数学,这些题已经不会做了。
其实你可以用PHPWord试试看。
由于html
复杂且有很多word
不支持的标签,我选择了与word
交互良好的markdown
作为输入语言。当然你可以通过html2markdown
进行过度转换。
然后通过pandoc把markdown
转为word
,稳定且高效,而且此类库有非常高的代码贡献,有非常多的模板和主题可以选择,所以结果还是很漂亮的。