新西兰天维网社区

标题: 求JAVA大神进写word文档问题 [打印本页]

作者: weiwei_yuki    时间: 2015-6-3 11:52:18     标题: 求JAVA大神进写word文档问题

用java 的 poi-xwpf 写 WORD DOCUMENT.创建一个XWPFRun 后只能定义一个字体.如果中途换的话就以最后一个设置为主.
请问用一个如何写不同格式
如下程序比如设置setbold(true)就是用黑体写,如果在下面用setbold(false)就取消.但问题是它不是在你要写的程序以下取消(比如要DATE 以后的不要黑体前面的保留黑体).但是他不是这样的而是全部所有的都全没有黑体..
如果创建几个XWPFRUN交互使用可以解决问题,但是因为文件格式字体太多这样一来写起来很麻烦.请教高人.有什么好的办法.还是有什么method可以用.
code片段如下
XWPFParagraph paragraph = document.createParagraph();
                                                             XWPFRun run = paragraph.createRun();
                                                             //start writing document
                                                             run.setBold(true); //set bold
                                                             run.setFontSize(12); //set size
                                                             run.setText(field1.getText().isEmpty()?"Company name":field1.getText());//company name
                                                             run.addCarriageReturn(); //separate previous text from break
                                                             run.addCarriageReturn();
                                                             //run.setBold(false);
                                                             Date d = new Date(System.currentTimeMillis()); //get date
                                                             run.setText(d.toString());
                                                             run.addCarriageReturn();
                                                             run.addCarriageReturn(); run.setText("Attention: " + ((field2.getText().isEmpty()&&field3.getText().isEmpty())?"Name":field2.getText() +" " + field3.getText())); //full name
                                                             run.addCarriageReturn();
                                                             run.addCarriageReturn();
                                                             run.setText("Dear "+ (field2.getText().isEmpty()?"FirstName":field2.getText())+","); //dear first name
                                                             run.addCarriageReturn();
                                                             run.addCarriageReturn();
                                                             ecoStarDocument current = new ecoStarDocument(); //create ecostar document to read information
                                                             for(String item: current.ecoStrHeader()){
                                                               run.setText(item);
                                                               run.addCarriageReturn();
                                                               run.addCarriageReturn();
                                                             }



作者: 巴依老爷    时间: 2015-6-3 12:01:55

嘿嘿
帮顶了。。
作者: csamzhou    时间: 2015-6-3 12:18:50

想方便点的话,创建自己的createRun method,pass in custom parameters(font size, style)
作者: weiwei_yuki    时间: 2015-6-3 14:20:45

本帖最后由 weiwei_yuki 于 2015-6-3 13:36 编辑

试一下!!!!!!!!!
作者: weiwei_yuki    时间: 2015-6-3 15:02:07

cannot change each run like a pen. need create a new pen for different font size and style.




欢迎光临 新西兰天维网社区 (http://bbs.skykiwi.com/) Powered by Discuz! X2