word文档里的符号字体是Wingdings,选中需要插入的符号,它会有显示对于的字符代码,字符编码是Unicode
比如我现在选中了一个打勾方框符号,可以看到它的字符代码为“00FE”,所以我们在代码给XWPFRun对象设置的文本内容就是“\u00FE”,需要注意的是:字符代码前要加上"\u"表示内容为unicode编码
下面是导出文档的代码:
![复制代码](https://i-blog.csdnimg.cn/blog_migrate/48304ba5e6f9fe08f3fa1abda7d326ab.gif)
1 import java.io.File; 2 import java.io.FileNotFoundException; 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 import java.io.UnsupportedEncodingException; 6 7 import org.apache.poi.xwpf.usermodel.XWPFDocument; 8 import org.apache.poi.xwpf.usermodel.XWPFParagraph; 9 import org.apache.poi.xwpf.usermodel.XWPFRun; 10 11 public class DownloadWordSymbol { 12 13 public static void main(String[] args) { 14 //生成一个文档对象 15 XWPFDocument document = new XWPFDocument(); 16 XWPFParagraph paragraph = document.createParagraph(); //创建一个段落 17 XWPFRun run = paragraph.createRun(); //创建段落里的一段文本 18 run.setFontFamily("Wingdings");//设置文本字体 19 run.setText("\u00FE 男 \u00A8 女");//往文本里添加一个打勾方框符号 20 21 //导出word文档,放在D盘 22 String fileName = "D:/poi导出word文档符号.docx"; 23 //设置文档编码格式为UTF-8 24 String encode = System.getProperty("file.encoding"); 25 try { 26 fileName = new String(fileName.getBytes("UTF-8"),encode); 27 } catch (UnsupportedEncodingException e1) { 28 e1.printStackTrace(); 29 } 30 try { 31 FileOutputStream fout = new FileOutputStream(fileName); 32 document.write(fout); 33 fout.close(); 34 } catch (FileNotFoundException e) { 35 e.printStackTrace(); 36 } catch (IOException e) { 37 e.printStackTrace(); 38 } 39 System.out.println("生成文档成功"); 40 } 41 42 }
以下是导出的效果: