itext生成的pdf,怎么把横向排列的选择题,改为纵向排列的

问题描述

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);}

时间: 2024-08-03 07:51:21

itext生成的pdf,怎么把横向排列的选择题,改为纵向排列的的相关文章

linux下使用iText生成pdf中文乱码 怎么解决啊

问题描述 linux下使用iText生成pdf中文乱码 怎么解决啊 生成的是乱码 而且是一坨. iText在linux环境下,怎么用啊.

itext生成pdf jar包和项目jar包冲突问题?

问题描述 itext生成pdf jar包和项目jar包冲突问题? 页面动态导出pdf,用了itext2.0.8.jar core-renderer.jar iTextAsian.jar 包 但是项目以前用的包是itext2.1.4.jar 项目经理不许jar包版本降级,我应该怎么处理这种情况 求教各位大神 解决方案 jar包冲突jar包的冲突项目中jsp-api.jar 包与tomcat冲突问题

itext生成pdf文件时中文不显示或者是乱码,这个怎么解决

问题描述 itext生成pdf文件时中文不显示或者是乱码,这个怎么解决 如题,我尝试了很多版本的jar包,而且itextasian.jar也在环境变量上配置了,但是中文还是显示不出来,各位大神,有解决的方法吗,这个已经困扰我一天了 解决方案 iText生成PDF文件(解决了中文乱码) 解决方案二: http://blog.sina.com.cn/s/blog_48bb8eb90100tt7p.html

利用itext生成pdf,如何向pdf中输出checkbox复选框

问题描述 最近项目里要加入一个功能,是要将页面报表导出到pdf中,但是报表中有checkbox复选框,需要要后台利用itext生成,我生成复选框的方法如下:PdfContentByte cb = writer.getDirectContent(); cb.moveTo(0, 0); PdfFormField field = PdfFormField.createCheckBox(writer); PdfAppearance tpOff = cb.createAppearance(20, 20);

itext pdf 分页-itext生成PDF,PdfPTable固定位置后无法分页

问题描述 itext生成PDF,PdfPTable固定位置后无法分页 我要往pdf中插入一个表格,创建了一个PdfPTable,又使用table.writeSelectedRows(0, -1, x, y, canvas)把表格固定到了PDF上的某个位置,现在问题来了,表格数据多了以后并没有自动分页,而是变成了下面这样,请问是什么原因?怎么才能使表格自动分页?我这里使用了table.writeSelectedRows(),就不能再使用document.add(table)了. 解决方案 已解决,

各位大哥,itext生成 pdf 字体问题,200元话费,

问题描述 各位大哥,itext生成pdf哪位用过哪位用过,怎么样设置字体行间距,报酬200元话费 解决方案 解决方案二:这个我知道..解决方案三:Paragraph的setLeading方法可以用来设置行距解决方案四:引用2楼curtguo的回复: Paragraph的setLeading方法可以用来设置行距 不错,路过解决方案五:引用3楼foolishdault的回复: 引用2楼curtguo的回复:Paragraph的setLeading方法可以用来设置行距不错,路过 不是,我想问的是字间距

Java开源工具iText生成PDF简单实例_java

iText下载页面: http://sourceforge.net/projects/itext/files/ 1.创建简单的PDF文件 package console.pdf; import java.io.FileNotFoundException; import java.io.FileOutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com

Li的横向排列自适应宽度问题

问题|自适应 众所周知,FF和OPERA即其它遵循CSS2标准的浏览器由于版本的不断改进,早就支持: display:table dispaly:table-cell dispaly:table-row dispaly:table-row- group dispaly:table-column dispaly:table-column-group 等属性. (至少是 FF1.0,OPERA7就能支持了,之前的就不太清楚了)那还犹豫什么?开始动手吧(为了演示加了一些 padding和border)

CSS的ul和li实现横向排列和去掉li的点

怎么实现ul的横向排列和去掉li那个烦人的点,现在找到方法了,在此与大家分享下,感兴趣的朋友可以参考下,以备不时之需   今天做网页是老是不懂怎么实现ul的横向排列和去掉li那个烦人的点,现在找到方法了,做个笔记: 复制代码 代码如下: #ul { float:left; } #ul li { float:left; list-style:none; } 顺便拓展一下li的list-style: 复制代码 代码如下: ul { list-style:square inside url('.../