`
53873039oycg
  • 浏览: 841696 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[简单]poi插入word 2007 Wingdings字符

    博客分类:
  • poi
 
阅读更多

      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  ,谢谢。

      全文完。

    

  • 大小: 86 KB
  • 大小: 25 KB
  • 大小: 115.5 KB
分享到:
评论

相关推荐

    POI读取 word 2003 和 word 2007 的例子

    值得注意的是 POI 在读取 word 文件的时候不会读取 word 文件中的图片信息 还有就是对于 2007 版的 word docx 如果 word 文件中有表格 所有表格中的数据都会在读取出来的字符串的最后 "&gt;这是一个POI读取word 2003 和...

    [简单]poi读取word 2007简单文本框值

    标题中的“poi读取word 2007简单文本框值”指的是使用Apache POI库来读取Microsoft Word 2007文档中简单文本框内的文本内容。Apache POI是一个流行的开源Java库,用于处理Microsoft Office格式的文件,如Word(.docx...

    POI 替换word2007文本框的值

    在本文中,我们将深入探讨如何使用POI库来替换Word2007文档中的文本框值,这对于自动化报告生成、批量文档编辑以及模板驱动的文档创建等场景非常有用。 首先,我们需要了解Word2007文档(.docx)的内部结构。它是...

    POI解析word2007文本及图片(已测试).doc

    Apache POI 解析 Word 2007 文本及图片 Apache POI (Poor Obfuscation Implementation) 是一个 Java 库,用于读取和写入 Microsoft Office 文件,包括 Word、Excel、PowerPoint 等。 Apache POI 提供了对 Word ...

    POI操作Word中插入文本和图片

    Apache POI提供了一套完整的API,使得在Java中操作Word文档变得简单。无论是插入文本还是图片,都可以灵活控制内容和样式。利用这些功能,你可以构建出复杂的动态报告模板,满足各种业务需求。在实际开发中,还可以...

    Java利用poi对word插入文字图片

    本项目“Java利用poi对word插入文字图片”是一个具体的示例,旨在教给你如何使用Apache POI API在Word文档中插入文字和图片。下面将详细阐述相关的知识点。 首先,Apache POI提供了HWPF(Horrible Word Processor ...

    利用poi+word模版书签,向word中插入数据

    本教程将深入讲解如何利用Apache POI的XWPF模块结合Word模板中的书签,实现数据的动态插入,从而创建个性化的Word文档。 首先,我们需要理解Apache POI的XWPF模块。XWPF(XML Word Processing)是POI项目的一部分,...

    如何使用POI解决word2007中字符替换问题

    在这个场景中,我们关注的是如何使用POI来解决在Word 2007文档中进行字符替换的问题。在处理Word 2007(.docx)文件时,由于其XML基础结构,我们需要采用不同于处理Word 2003(.doc)文件的方法。 首先,我们需要...

    POI导出Word 页眉 页脚 标题设置

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本主题中,我们将深入探讨如何使用POI库来导出Word文档,并进行页眉、页脚和标题的设置。这个过程涉及到对Word...

    POI报表Word导出

    POI报表Word导出

    poi解析excel、word2007,2010等版本

    本项目中的"poiTest"是一个Web应用示例,它演示了如何使用Apache POI来解析不同版本的Excel(如2007、2010)以及Word2007和2010文档。 1. **Apache POI 简介** Apache POI 是由Apache软件基金会开发的一个项目,...

    java使用poi操作.doc word模板替换,循环插入表格

    本篇文章将深入探讨如何利用POI库在Word文档中进行模板替换以及循环插入表格的操作。 首先,我们需要理解Apache POI的工作原理。POI提供了HWPFOI(用于处理老版的.doc文件)和XWPF(用于处理新版的.docx文件)两个...

    poi导入word和图片

    ### POI导入Word文档与图片的关键技术点 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件(如 .doc、.xls 和 .ppt)的 Java API。本文档将详细介绍如何使用 POI 库来读取 Word 文档(包括 ....

    使用java Apache poi 根据word模板生成word报表例子

    使用java Apache poi 根据word模板生成word报表 仅支持docx格式的word文件,大概是word2010及以后版本,doc格式不支持。 使用说明:https://blog.csdn.net/u012775558/article/details/79678701

    poi完美word转html

    2. 只支持DOC不支持DOCX:代码示例仅适用于旧版的Word文档格式(.doc),对于新版的Word文档格式(.docx),需要使用不同的方法或更高版本的POI库。 六、扩展阅读与资源: 为了更深入地理解和应用Apache POI进行...

    poi操作word书签,兼容2003和2007

    下载后,运行 可以 Test1中的main方法,注意里面的word模版地址要修改下。 test1.java主要是针对word的书签操作 MSWordTool.java主要是针对word的列表书签的操作,相对来说比较复杂,具体看个人需求。

    Apache poi 根据word模板生成word报表 替换 循环列表 图片

    3. **插入图片**:Apache POI允许我们在Word文档中插入图片。首先,你需要将图片读入内存,这可以使用InputStream实现。然后,通过创建一个XWPFPictureData对象,将图片数据添加到文档的图片数据部分。最后,在需要...

    poiWord2003和Word2007包括图片完整转换成html 包括完整Jar包

    1. **Apache POI基础**:Apache POI提供了HSSF和XSSF两个API,分别用于读写老版本的BIFF8格式(如Word2003的.doc文件)和新的OOXML格式(如Word2007的.docx文件)。HSSF对应于Excel,而XSSF则对应于Word和PowerPoint...

Global site tag (gtag.js) - Google Analytics