word 2007 Wingdings字符操作步骤如下图:
代码很简单:
import java.io.FileOutputStream; import java.math.BigInteger; import java.util.List; import org.apache.poi.xwpf.usermodel.BreakType; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHpsMeasure; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSym; public class POI_07_插入Wingdings字符 { public static void main(String[] args) throws Exception { POI_07_插入Wingdings字符 t = new POI_07_插入Wingdings字符(); t.testWingdings(); } public void testWingdings() throws Exception { XWPFDocument xdoc = new XWPFDocument(); XWPFParagraph p = xdoc.createParagraph(); XWPFRun pRun = getOrAddParagraphFirstRun(p, false, false); CTRPr pRpr = getRunCTRPr(p, pRun); // 设置字体大小 CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz(); sz.setVal(new BigInteger("26")); CTHpsMeasure szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr .addNewSzCs(); szCs.setVal(new BigInteger("26")); pRun.setText("-------------------------------Wingdings字符---------------------------------------"); pRun.addBreak(); pRun = getOrAddParagraphFirstRun(p, true, false); pRpr = getRunCTRPr(p, pRun); // 设置字体大小 sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz(); sz.setVal(new BigInteger("26")); szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs(); szCs.setVal(new BigInteger("26")); // 32-255 List<CTSym> symList = pRun.getCTR().getSymList(); for (int i = 32; i <= 255; i++) { symList.add(getCTSym("Wingdings", "F0" + Integer.toHexString(i))); pRun.setText(" [字符编码:" + i + "] "); } pRun.addBreak(BreakType.PAGE); p = xdoc.createParagraph(); pRun = getOrAddParagraphFirstRun(p, false, false); pRpr = getRunCTRPr(p, pRun); // 设置字体大小 sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz(); sz.setVal(new BigInteger("26")); szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs(); szCs.setVal(new BigInteger("26")); pRun.setText("-------------------------------Wingdings 2字符---------------------------------------"); pRun.addBreak(); pRun = getOrAddParagraphFirstRun(p, true, false); pRpr = getRunCTRPr(p, pRun); // 设置字体大小 sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz(); sz.setVal(new BigInteger("26")); szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs(); szCs.setVal(new BigInteger("26")); // 32-255 symList = pRun.getCTR().getSymList(); for (int i = 32; i <= 255; i++) { symList.add(getCTSym("Wingdings 2", "F0" + Integer.toHexString(i))); pRun.setText(" [字符编码:" + i + "] "); } pRun.addBreak(BreakType.PAGE); p = xdoc.createParagraph(); pRun = getOrAddParagraphFirstRun(p, false, false); pRpr = getRunCTRPr(p, pRun); // 设置字体大小 sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz(); sz.setVal(new BigInteger("26")); szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs(); szCs.setVal(new BigInteger("26")); pRun.setText("-------------------------------Wingdings 3字符---------------------------------------"); pRun.addBreak(); pRun = getOrAddParagraphFirstRun(p, true, false); pRpr = getRunCTRPr(p, pRun); // 设置字体大小 sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz(); sz.setVal(new BigInteger("26")); szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs(); szCs.setVal(new BigInteger("26")); // 32-255 symList = pRun.getCTR().getSymList(); for (int i = 32; i <= 255; i++) { symList.add(getCTSym("Wingdings 3", "F0" + Integer.toHexString(i))); pRun.setText(" [字符编码:" + i + "] "); } saveDocument(xdoc, "f:/saveFile/temp/sys_" + System.currentTimeMillis() + ".docx"); } public CTSym getCTSym(String wingType, String charStr) throws Exception { CTSym sym = CTSym.Factory .parse("<xml-fragment w:font=\"" + wingType + "\" w:char=\"" + charStr + "\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\"> </xml-fragment>"); return sym; } /** * @Description: 得到XWPFRun的CTRPr */ public CTRPr getRunCTRPr(XWPFParagraph p, XWPFRun pRun) { CTRPr pRpr = null; if (pRun.getCTR() != null) { pRpr = pRun.getCTR().getRPr(); if (pRpr == null) { pRpr = pRun.getCTR().addNewRPr(); } } else { pRpr = p.getCTP().addNewR().addNewRPr(); } return pRpr; } public void saveDocument(XWPFDocument document, String savePath) throws Exception { FileOutputStream fos = new FileOutputStream(savePath); document.write(fos); fos.close(); } public XWPFRun getOrAddParagraphFirstRun(XWPFParagraph p, boolean isInsert, boolean isNewLine) { XWPFRun pRun = null; if (isInsert) { pRun = p.createRun(); } else { if (p.getRuns() != null && p.getRuns().size() > 0) { pRun = p.getRuns().get(0); } else { pRun = p.createRun(); } } if (isNewLine) { pRun.addBreak(); } return pRun; } }
结果为:
本文系原创,转载请注明出处,本文原始链接:http://53873039oycg.iteye.com/blog/2194564 ,谢谢。
全文完。
相关推荐
值得注意的是 POI 在读取 word 文件的时候不会读取 word 文件中的图片信息 还有就是对于 2007 版的 word docx 如果 word 文件中有表格 所有表格中的数据都会在读取出来的字符串的最后 ">这是一个POI读取word 2003 和...
标题中的“poi读取word 2007简单文本框值”指的是使用Apache POI库来读取Microsoft Word 2007文档中简单文本框内的文本内容。Apache POI是一个流行的开源Java库,用于处理Microsoft Office格式的文件,如Word(.docx...
在本文中,我们将深入探讨如何使用POI库来替换Word2007文档中的文本框值,这对于自动化报告生成、批量文档编辑以及模板驱动的文档创建等场景非常有用。 首先,我们需要了解Word2007文档(.docx)的内部结构。它是...
Apache POI 解析 Word 2007 文本及图片 Apache POI (Poor Obfuscation Implementation) 是一个 Java 库,用于读取和写入 Microsoft Office 文件,包括 Word、Excel、PowerPoint 等。 Apache POI 提供了对 Word ...
Apache POI提供了一套完整的API,使得在Java中操作Word文档变得简单。无论是插入文本还是图片,都可以灵活控制内容和样式。利用这些功能,你可以构建出复杂的动态报告模板,满足各种业务需求。在实际开发中,还可以...
本项目“Java利用poi对word插入文字图片”是一个具体的示例,旨在教给你如何使用Apache POI API在Word文档中插入文字和图片。下面将详细阐述相关的知识点。 首先,Apache POI提供了HWPF(Horrible Word Processor ...
本教程将深入讲解如何利用Apache POI的XWPF模块结合Word模板中的书签,实现数据的动态插入,从而创建个性化的Word文档。 首先,我们需要理解Apache POI的XWPF模块。XWPF(XML Word Processing)是POI项目的一部分,...
在这个场景中,我们关注的是如何使用POI来解决在Word 2007文档中进行字符替换的问题。在处理Word 2007(.docx)文件时,由于其XML基础结构,我们需要采用不同于处理Word 2003(.doc)文件的方法。 首先,我们需要...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本主题中,我们将深入探讨如何使用POI库来导出Word文档,并进行页眉、页脚和标题的设置。这个过程涉及到对Word...
POI报表Word导出
本项目中的"poiTest"是一个Web应用示例,它演示了如何使用Apache POI来解析不同版本的Excel(如2007、2010)以及Word2007和2010文档。 1. **Apache POI 简介** Apache POI 是由Apache软件基金会开发的一个项目,...
本篇文章将深入探讨如何利用POI库在Word文档中进行模板替换以及循环插入表格的操作。 首先,我们需要理解Apache POI的工作原理。POI提供了HWPFOI(用于处理老版的.doc文件)和XWPF(用于处理新版的.docx文件)两个...
### POI导入Word文档与图片的关键技术点 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件(如 .doc、.xls 和 .ppt)的 Java API。本文档将详细介绍如何使用 POI 库来读取 Word 文档(包括 ....
使用java Apache poi 根据word模板生成word报表 仅支持docx格式的word文件,大概是word2010及以后版本,doc格式不支持。 使用说明:https://blog.csdn.net/u012775558/article/details/79678701
2. 只支持DOC不支持DOCX:代码示例仅适用于旧版的Word文档格式(.doc),对于新版的Word文档格式(.docx),需要使用不同的方法或更高版本的POI库。 六、扩展阅读与资源: 为了更深入地理解和应用Apache POI进行...
下载后,运行 可以 Test1中的main方法,注意里面的word模版地址要修改下。 test1.java主要是针对word的书签操作 MSWordTool.java主要是针对word的列表书签的操作,相对来说比较复杂,具体看个人需求。
3. **插入图片**:Apache POI允许我们在Word文档中插入图片。首先,你需要将图片读入内存,这可以使用InputStream实现。然后,通过创建一个XWPFPictureData对象,将图片数据添加到文档的图片数据部分。最后,在需要...
1. **Apache POI基础**:Apache POI提供了HSSF和XSSF两个API,分别用于读写老版本的BIFF8格式(如Word2003的.doc文件)和新的OOXML格式(如Word2007的.docx文件)。HSSF对应于Excel,而XSSF则对应于Word和PowerPoint...