问题描述
privatevoidobjectiveItem(CardTypecardType){floatyPos=gPosY-3f;floatxPos=gPosX;logger.debug("enterobjectiveItemmothed,gPosYis"+gPosY+"gPosXis"+gPosX);//客观题外框Stringtitle="选择题";intquestionCount=90;//试题数量//第一卷canvas.beginText();canvas.setFontAndSize(bf,11);canvas.setTextMatrix(Utilities.millimetersToPoints(xPos+125f),Utilities.millimetersToPoints(yPos));canvas.showText(title);canvas.endText();PdfPTabletable;PdfPCellcell;floatxPosOld=xPos;floatyPosOld=yPos-3f;//添加客观题选项yPos-=5f;xPos+=2f;floatxPosTmp=xPos;System.out.println(yPos);System.out.println(xPos);Fontfc=newFont(bf,5,Font.NORMAL);for(inti=0;i<questionCount;i++){Float[][]itemPos=newFloat[6][4];if((xPos+10*5+5f)>(xPosOld+264f)){//超出边界,换行//换行yPos-=4f;xPos=xPosTmp;}Strings="";s=String.valueOf(i+1);//客观题外框高度需要根据题目多少进行动态生成table=newPdfPTable(1);table.setTotalWidth(Utilities.millimetersToPoints(4f));//总宽度//序号cell=newPdfPCell(newPhrase(150f,s,fc));cell.setFixedHeight(Utilities.millimetersToPoints(2f));//固定高度cell.setBackgroundColor(BaseColor.WHITE);//背景颜色cell.setBorder(Rectangle.NO_BORDER);//边框cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);//水平对齐cell.setPadding(0.0f);//填充table.addCell(cell);table.writeSelectedRows(0,-1,Utilities.millimetersToPoints(xPos),Utilities.millimetersToPoints(yPos),canvas);xPos+=10f;for(intj=0;j<6;j++){//选项table=newPdfPTable(1);table.setTotalWidth(Utilities.millimetersToPoints(4f));cell=newPdfPCell(newPhrase(0.2f,SELECT_ITEM[j],fc));cell.setFixedHeight(Utilities.millimetersToPoints(2f));cell.setBackgroundColor(BaseColor.WHITE);cell.setBorder(Rectangle.BOX);cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);cell.setPadding(0.0f);table.addCell(cell);table.writeSelectedRows(0,-1,Utilities.millimetersToPoints(xPos),Utilities.millimetersToPoints(yPos),canvas);Float[]pos=referencePosition(newFloat[]{xPos,yPos});itemPos[j][0]=pos[0];itemPos[j][1]=pos[1];pos=referencePosition(newFloat[]{xPos+4f,yPos-2f});itemPos[j][2]=pos[0];itemPos[j][3]=pos[1];xPos+=6f;}//选择题的json对象Map<String,Object>itemObj=Maps.newHashMap();//itemObj.put("qid",questionItem.getNo());//itemObj.put("type",questionItem.getType());itemObj.put("side",4);itemObj.put("itemPos",itemPos);//itemObj.put("itemCount",itemCount);items.add(itemObj);//if((i+1)%itemCount==0){////换行//yPos-=4f;//xPos=xPosTmp;//}else{xPos+=4f;//}}table=newPdfPTable(1);//---------table.setTotalWidth(Utilities.millimetersToPoints(264f));cell=newPdfPCell();//客观题外框高度需要根据题目多少进行动态生成cell.setFixedHeight(Utilities.millimetersToPoints(yPosOld-yPos+5f));cell.setBorder(Rectangle.BOX);table.addCell(cell);table.writeSelectedRows(0,-1,Utilities.millimetersToPoints(xPosOld),Utilities.millimetersToPoints(yPosOld),canvas);//当前试卷内容已经排版至什么位置gPosX=xPosOld;gPosY=yPosOld-(yPosOld-yPos+7f);}