使用IText实现office Word文档导出
来源:互联网 发布:苹果mac常用软件 编辑:程序博客网 时间:2024/05/29 18:07
package officeWordDoc;import java.awt.Color;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.net.MalformedURLException;import com.lowagie.text.BadElementException;import com.lowagie.text.Cell;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Element;import com.lowagie.text.Font;import com.lowagie.text.Image;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.Table;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.rtf.RtfWriter2;import com.lowagie.text.rtf.style.RtfParagraphStyle;/*** @ClassName:WordDocUtilsDemo* @Description:officeWord文档服务类,使用IText实现officeWord文档导出* 需要jar包:IText2.1.7(iReport.jar;iText-2.1.7.jar;iTextAsian.jar;itext-rtf-2.1.7.jar)* @date:2017年5月8日* 修改备注:*/public class WordDocDemo_IText { private Document document; public Document getDocument() { return document; } public void setDocument(Document document) { this.document = document; } public WordDocDemo_IText(){ this.document = new Document(PageSize.A4);//设置纸张大小 } /** 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 * @param filePath 要操作的文档路径,若文档不存在会自动创建 * @throws com.lowagie.text.DocumentException * @throws java.io.IOException */ public void openDocument(String filePath){ //建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 try {RtfWriter2.getInstance(this.document, new FileOutputStream(filePath));} catch (FileNotFoundException e) {e.printStackTrace();} this.document.open(); } /** * @Description:创建字体样式(字体大小、样式、颜色) * @param ttf 字体种类 eg:C:\Windows\Fonts\FangSong_GB2312.ttf * @param fontsize 字体大小 * @param fontStyle 字体样式 * @param color 颜色 * @return 字体样式 * @author: 张路(zhanglu@mail.taiji.com.cn) * @date: 2017年5月8日 下午1:59:43 */ public Font createFont(String ttf, int fontsize, int fontStyle, Color color){ BaseFont bf = null; try { bf = BaseFont.createFont(ttf, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //设置中文字体 //BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); } catch (DocumentException | IOException e) { e.printStackTrace(); } Font font = new Font(bf, fontsize, fontStyle); font.setColor(color); font.setSize(14); return font; } /** * @param titleStr 标题 * @param fontsize 字体大小 * @param fontStyle 字体样式 * @param elementAlign 对齐方式 * @throws com.lowagie.text.DocumentException */ public void insertTitle(String titleStr,Font titleFont ,int elementAlign){ //创建段落 Paragraph title = new Paragraph(titleStr); // 设置标题格式对齐方式 title.setAlignment(elementAlign); title.setFont(titleFont); try {this.document.add(title);} catch (DocumentException e) {e.printStackTrace();} } /** * 设置带有目录格式的标题(标题1格式) * @param rtfParagraphStyle 标题1样式 * @param titleStr 标题 * @throws DocumentException */ public void insertTitlePattern(String titleStr, RtfParagraphStyle rtfParagraphStyle){ //创建段落 Paragraph title = new Paragraph(titleStr); title.setFont(rtfParagraphStyle); try {this.document.add(title);} catch (DocumentException e) {e.printStackTrace();} } /** * 设置带有目录格式的标题(标题2格式) * @param titleStr 标题 * @param rtfParagraphStyle 标题2样式 * @throws DocumentException */ public void insertTitlePatternSecond(String titleStr,RtfParagraphStyle rtfParagraphStyle){ Paragraph title = new Paragraph(titleStr); // 设置标题格式对齐方式 title.setFont(rtfParagraphStyle); try {this.document.add(title);} catch (DocumentException e) {e.printStackTrace();} } /** * @param tableName 标题 * @param fontsize 字体大小 * @param fontStyle 字体样式 * @param elementAlign 对齐方式 * @throws com.lowagie.text.DocumentException */ public void insertTableName(String tableName,Font titleFont,int elementAlign){ titleFont.setColor(102, 102, 153); Paragraph title = new Paragraph(tableName); // 设置标题格式对齐方式 title.setAlignment(elementAlign); title.setFont(titleFont); try {this.document.add(title);} catch (DocumentException e) {e.printStackTrace();} } /** * @param contextStr 内容 * @param fontsize 字体大小 * @param fontStyle 字体样式 * @param elementAlign 对齐方式 * @throws com.lowagie.text.DocumentException */ public void insertContext(String contextStr,Font contextFont,int elementAlign){ Paragraph context = new Paragraph(contextStr); //设置行距 context.setLeading(3f); // 正文格式对齐 方式 context.setAlignment(elementAlign); context.setFont(contextFont); // 离上一段落(标题)空的行数 context.setSpacingBefore(1); // 设置第一行空的列数 context.setFirstLineIndent(20); try {document.add(context);} catch (DocumentException e) {e.printStackTrace();} } /** * @param imgUrl 图片路径 * @param imageAlign 显示位置 * @param height 显示高度 * @param weight 显示宽度 * @param percent 显示比例 * @param heightPercent 显示高度比例 * @param weightPercent 显示宽度比例 * @param rotation 显示图片旋转角度 * @throws java.net.MalformedURLException * @throws java.io.IOException * @throws com.lowagie.text.DocumentException */ public void insertImg(String imgUrl,int imageAlign,int height, int weight,int percent,int heightPercent,int weightPercent,int rotation){ //添加图片 Image img = null;try {img = Image.getInstance(imgUrl);} catch (BadElementException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} if(img==null) return; img.setAbsolutePosition(0, 0); img.setAlignment(imageAlign); img.scaleAbsolute(height, weight); img.scaleAbsolute(1000, 1000); img.scalePercent(percent); img.scalePercent(heightPercent, weightPercent); img.setRotation(rotation); try {document.add(img);} catch (DocumentException e) {e.printStackTrace();} } /** * 添加简单表格 * @param column 表格列数(必须) * @param row 表格行数 * @throws DocumentException */ public void insertSimpleTable(int column,int row){ Table table = null;try {table = new Table(column);} catch (BadElementException e) {e.printStackTrace();}//列数必须设置,而行数则可以按照个人要求来决定是否需要设置 table.setAlignment(Element.ALIGN_CENTER);// 居中显示 table.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示 table.setAutoFillEmptyCells(true);// 自动填满 table.setBorderColor(new Color(0, 125, 255));// 边框颜色 table.setBorderWidth(1);// 边框宽度 table.setSpacing(2);// 衬距, table.setPadding(2);// 即单元格之间的间距 table.setBorder(20);// 边框 for (int i = 0; i < column*3; i++) { table.addCell(new Cell(""+i)); } try {document.add(table);} catch (DocumentException e) {e.printStackTrace();} } /** * 在操作完成后必须关闭document,否则即使生成了word文档,打开也会发生错误 * @throws DocumentException */ public void closeDocument(){ this.document.close(); } public static void main(String[] args) { WordDocDemo_IText wordUtils = new WordDocDemo_IText(); String fileName = "关于"+"dddd"+"的情况报告.doc"; String filePath = "e://exportOffice//eventInfoReceive//"; File file = new File(filePath); if (!file.exists()) {file.mkdirs();} Font _font = wordUtils.createFont("C:\\Windows\\Fonts\\FangSong_GB2312.ttf",12,Font.BOLD, new Color(255, 0, 0)); wordUtils.openDocument(filePath+fileName);wordUtils.insertTitle("word文档标题", _font, Element.ALIGN_CENTER);wordUtils.insertContext("市政府应急办:\n" + " 2016年9月29日10时52分许,位于XX区XXXXXXXXXXXXXXXXXXXXXXXXXXX" + "XXXXXXXXXXXXXXXXXXXword文档内容XXXXXXXXXXXXXXXXX" + "YYYYYYYYYYYYYYYYYYYword文档内容YYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + "XXXXXXXXXXXXXXXXXXword文档内容XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" + "XXXXXXXXXXXXXXXXXXXword文档内容XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" + "YYYYYYYYYYYYYYYYYYword文档内容YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + "RRRRRword文档内容RRRRRRRR\n", _font, Element.ALIGN_LEFT);wordUtils.insertContext("市政府应急办:\n" + " 2016年9月29日10时52分许,位于XX区\n", _font, Element.ALIGN_LEFT);wordUtils.insertContext("市政府应急办:\n" + " 2016年9月29日10时52分许,位于XX区\n", _font, Element.ALIGN_LEFT);wordUtils.closeDocument();} }
0 0
- 使用IText实现office Word文档导出
- 使用itext导出word文档
- IText导出Word文档
- Java导出Word文档使用iText操作
- 使用itext导出含表格的word文档
- iText 导出word 经典实现
- Itext导出Word文档的例子
- Struts2利用iText导出word文档
- Itext导出Word文档的例子
- Java使用POI方式导出office Word文档
- iText的使用例子说明(利用Itext画模板导出word、pdf,纯java实现)
- 使用Itext结合Jfreechart图表导出带图表的word文档
- 使用itext-rtl 生成word文档
- Java导出PDF文档使用iText操作
- Struts2利用iText导出word文档(包含表格)
- IText导出Word
- itext 导出word
- 利用IText导出Word
- c++ socket 模拟 http
- Drawlayout 抽屉 禁用滑动
- C语言介绍
- 网络图片浏览器
- 向内置存储卡内写入和读出文件
- 使用IText实现office Word文档导出
- 结构体类型在定义变量时,其前可以省略
- 动态控制线程池中正在运行的任务
- 安装Cloudera Manager Server和Agent过程中遇到的问题
- spring-boot Hello World
- leetcode 495. Teemo Attacking
- 如何让img在div中居中
- MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- 线程死锁现象和synchronized 用作关键字和线程另一种创建方式