关键词:图片同步不过去,nodejs配端口, word bug处理
一、图片同步不过去
这样就能同步过去,如下:
functionsyncPoints(isSyncAll) {
if(isSyncAll && points.length !=0){
var dataURL =context.canvas.toDataURL('image/png');
varimage = new Image();
image.src = dataURL;
imageHandler.lastImageURL= dataURL, imageHandler.lastImageIndex = imageHandler.images.length,imageHandler.images.push(image);
points[points.length] =["image", [imageHandler.lastImageURL, 0, 0, canvas_width,innerHeight, imageHandler.lastImageIndex], drawHelper.getOptions()];
}
if(isSyncAll && (lastPointIndex = 0), lastPointIndex != points.length) {
for(var pointsToShare = [], i = lastPointIndex; i < points.length; i++)pointsToShare[i - lastPointIndex] = points[i];
pointsToShare.length&& syncData({
points:pointsToShare || [],
startIndex:lastPointIndex
}),
//!pointsToShare.length && points.length|| (lastPointIndex = points.length)
pointsToShare.length&& sliptSync(pointsToShare,300),
!pointsToShare.length&& points.length || (lastPointIndex = points.length)
}
}
二、nodejs配端口
Nodejs配端口时,只需要改一个就成,如下:---------server.js
// Please use HTTPs on non-localhostdomains.
var isUseHTTPs = true;
// var port = 443;
var port =process.env.PORT || 9009;
var fs = require('fs');
var path = require('path');
// see how to use a valid certificate:
//https://github.com/muaz-khan/WebRTC-Experiment/issues/62
var options = {
key: fs.readFileSync(path.join(__dirname, 'fake-keys/privatekey.pem')),
cert: fs.readFileSync(path.join(__dirname, 'fake-keys/certificate.pem'))
};
效果如下:
三、word bug处理
3.1 数学题填空题的话,解析出不来---------------------------------------标准版
问题截图如下:
原因找到了,是因为在判断完是否有答案时,有答案,在答案前加序号,没答案在解析前加序号,但有答案时,在答案前加序号,但没有输出没序号的解析。原来代码如下(main_nochoose_fen.php):
if(preg_match('/答案/',$add_order_str,$matches)){//答案输出之后,换行,以免答案和解析在同一行
$ht = newWordFragment($docx);
$html='<p><br> </p>';
$ht->embedHTML($html);
$optionsArray[] = $ht;
}
//print_r($add_order_str);exit;
//print_r(preg_match('/答案/',$add_order_str,$matches));exit;
//答案不存在,要在解析上加序号
if(!preg_match('/答案/',$add_order_str,$matches)){
// echo '111111';exit;
//输出解析
if(!empty($value_zd['解析'])){
//echo'333333333333333333333333';exit;
if($Suject=='初中英语' ||$Suject=='高中英语'){
$name_key=$i_ENG.'.'.'【解析】';
$optionsArray[] =array('text' =>$name_key,'fontsize'=>10.5,'font'=>'Times New Roman');
splitStr($value_zd['解析'],$optionsArray);
//echo$i.'<br>';
$i_ENG++;
}else{
$name_key=$i.'. '.'【解析】';
$optionsArray[] =array('text' =>$name_key,'fontsize'=>10.5,'font'=>'Times New Roman');
splitStr($value_zd['解析'],$optionsArray);
//echo$i.'<br>';
$i++;
}
}
}else{
if(!empty($value_zd['解析'])){
//echo'333333333333333333333333';exit;
if($Suject=='初中英语' ||$Suject=='高中英语'){
$name_key='【解析】';
$optionsArray[] =array('text' =>$name_key,'fontsize'=>10.5,'font'=>'Times New Roman');
splitStr($value_zd['解析'],$optionsArray);
//echo$i.'<br>';
// $i_ENG++;
}
}
修改代码后,如下:
if(preg_match('/答案/',$add_order_str,$matches)){//答案输出之后,换行,以免答案和解析在同一行
$ht = newWordFragment($docx);
$html='<p><br> </p>';
$ht->embedHTML($html);
$optionsArray[] = $ht;
}
//print_r($add_order_str);exit;
//print_r(preg_match('/答案/',$add_order_str,$matches));exit;
//答案不存在,要在解析上加序号
if(!preg_match('/答案/',$add_order_str,$matches)){
// echo '111111';exit;
//输出解析
if(!empty($value_zd['解析'])){
//echo '333333333333333333333333';exit;
if($Suject=='初中英语' ||$Suject=='高中英语'){
$name_key=$i_ENG.'.'.'【解析】';
$optionsArray[] =array('text' =>$name_key,'fontsize'=>10.5,'font'=>'Times New Roman');
splitStr($value_zd['解析'],$optionsArray);
//echo$i.'<br>';
$i_ENG++;
}else{
$name_key=$i.'. '.'【解析】';
$optionsArray[] =array('text' =>$name_key,'fontsize'=>10.5,'font'=>'Times New Roman');
splitStr($value_zd['解析'],$optionsArray);
//echo$i.'<br>';
$i++;
}
}
}else{
if(!empty($value_zd['解析'])){
//echo'333333333333333333333333';exit;
if($Suject=='初中英语' ||$Suject=='高中英语'){
$name_key='【解析】';
$optionsArray[] =array('text' =>$name_key,'fontsize'=>10.5,'font'=>'Times New Roman');
splitStr($value_zd['解析'],$optionsArray);
//echo$i.'<br>';
// $i_ENG++;
}else{
$name_key='【解析】';
$optionsArray[] =array('text' =>$name_key,'fontsize'=>10.5,'font'=>'Times New Roman');
splitStr($value_zd['解析'],$optionsArray);
//echo$i.'<br>';
//$i++;
}
}
注:增加了无序号解析的输出。
3.2 解答题的话,中间有空题出现-------------------------------------标准版
这个问题的原因来自于,子题目的判断方式不对,比方说三个解答题,子题目用的数值是第三道题的值,这样不对。
现在的代码如下:
function outEverySolveAnsw($title,$arr1,$docx,$Suject,$subQstNum){ //f1.1
Global $i;
Global $i_ENG;
echo$subQstNum;
//输出每个题型下的每道题
if(is_array($arr1) && count($arr1)){
foreach($arr1 as $key1=>$arr2){
//获取题目结构
$contents =getContents1($arr2);
$contents_topic=add_answ_parse($contents['topicAnsw']);
//输出题目
if(!empty($contents['topic'])){
if($Suject=='高中英语' ||$Suject == '初中英语'){
outputStr('',$docx,'');
}else{
//echo '333444555'.'<br>';
if($subQstNum){
outputStr('', $docx, $i.'.');
$i++;
}else{
outputStr('',$docx,'');
}
}
}
注:如果说三道解答题,第一道3个子题目,第二道4个子题目,第三道0个子题目,那经过上述函数获取的三道题都是0个子题目,这种方式不对。
解决办法很简单,每次判断一下有没有子题目就成。
代码修改如下:
if(is_array($arr1) &&count($arr1)){
foreach($arr1 as $key1=>$arr2){
// print_r($arr2);exit;
//获取题目结构
$contents = getContents1($arr2);
$contents_topic=add_answ_parse($contents['topicAnsw']);
//print_r($contents['topic']);exit;
$contents = getContents1($arr2);
//输出题目
$subQstNum_zi=$contents['topicAnsw'][0]['子题目'];
if(!empty($contents['topic'])){
if($Suject=='高中英语' || $Suject == '初中英语'){
outputStr('',$docx,'');
}else{
if(!empty($subQstNum_zi)){
//echo '123456'.'<br>';
outputStr('', $docx, $i.'.');
$i++;
}else{
outputStr('',$docx,'');
}
}
}
2017年1月09日星期一