POI使用筆記,復用樣式,添加書簽等


  最近遇到需求需要給文檔指定run上添加書簽,網上查到的方法也是需要在run創建之前和之后分別添加書簽的start和end,可查看http://www.javaear.com/question/47182971.html

  試驗過程:創建新的文檔,新的段落,調用addRun將原來的run add進去,但是后面發現新文檔里面有run下載下來卻是一片空白,后面發現addRun和createRun的區別是createRun時候綁定到了指定paragraph並且還往iruns里面添加了

  所以后面重寫了XWPFParagraph的addRun方法,與createRun保持一致,依舊沒有效果,也沒有找到原因,網上也沒有查到相關資料,只有換成創建新的文檔,新的段落,新的run,然后將原文檔段落樣式以及run的樣式復用過來。

  段落樣式復用:主要是換行,縮進等

newParagraph.getCTP().setPPr(content.getCTP().getPPr());//設置段落樣式,換行,空格等

  run樣式復用:字號,顏色,字體等

XWPFRun newRun = paragraph.createRun();
newRun.setText(run.text());//文字數據
newRun.getCTR().setRPr(run.getCTR().getRPr());//樣式

  添加書簽:

CTBookmark ctBookmark = paragraph.getCTP().addNewBookmarkStart();
ctBookmark.setName(colorName + "-" + index);
ctBookmark.setId(BigInteger.valueOf(index));
addNewRun(paragraph, run);//此方法是上面樣式復用方法
paragraph.getCTP().addNewBookmarkEnd().setId(BigInteger.valueOf(index));

  生成效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM