第57篇图片同步不过去及nodejs配端口及word bug处理

关键词:图片同步不过去,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>&nbsp;</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>&nbsp;</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日星期一

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下 4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值