欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

iText生成word文档代码示例,itextword文档示例,iText生成word文

来源: javaer 分享于  点击 16182 次 点评:79

iText生成word文档代码示例,itextword文档示例,iText生成word文


iText生成word文档代码示例

iText可以用来方便的生成word文档,使用itext可以创建word文档,然后插入段落,插入表格,插入图片等等!

import java.awt.Color;import java.io.FileOutputStream;import java.io.IOException;import java.net.MalformedURLException;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.Phrase;import com.lowagie.text.Table;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.rtf.RtfWriter2;/** * 根据itext提供的java类库,构建word模板,并添加相应的内容,从而导出word报告;平台不相关 * 需要引入iText-2.1.7.jar;iTextAsian.jar;iText-rtf-2.1.7.jar *  * @author ryan */public class WordTemplete {    private Document document;    private BaseFont bfChinese;    public BaseFont getBfChinese() {        return bfChinese;    }    public void setBfChinese(BaseFont bfChinese) {        this.bfChinese = bfChinese;    }    public Document getDocument() {        return document;    }    public void setDocument(Document document) {        this.document = document;    }    public WordTemplete(){        this.document = new Document(PageSize.A4);    }    /**     * @param filePath 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中     * @throws DocumentException     * @throws IOException     */    public void openDocument(String filePath) throws DocumentException,    IOException {//       建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中        RtfWriter2.getInstance(this.document, new FileOutputStream(filePath));        this.document.open();//       设置中文字体        this.bfChinese = BaseFont.createFont("STSongStd-Light",                "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);    }    /**     * @param titleStr 标题     * @param fontsize 字体大小     * @param fontStyle 字体样式     * @param elementAlign 对齐方式     * @throws DocumentException     */    public void insertTitle(String titleStr,int fontsize,int fontStyle,int elementAlign) throws DocumentException{        Font titleFont = new Font(this.bfChinese, fontsize, fontStyle);        Paragraph title = new Paragraph(titleStr);        // 设置标题格式对齐方式        title.setAlignment(elementAlign);        title.setFont(titleFont);        this.document.add(title);    }    /**     * @param contextStr 内容     * @param fontsize 字体大小     * @param fontStyle 字体样式     * @param elementAlign 对齐方式     * @throws DocumentException      */    public void insertContext(String contextStr,int fontsize,int fontStyle,int elementAlign) throws DocumentException{        // 正文字体风格        Font contextFont = new Font(bfChinese, fontsize, fontStyle);        Paragraph context = new Paragraph(contextStr);        //设置行距        context.setLeading(30f);        // 正文格式左对齐        context.setAlignment(elementAlign);        context.setFont(contextFont);        // 离上一段落(标题)空的行数        context.setSpacingBefore(5);        // 设置第一行空的列数        context.setFirstLineIndent(20);        document.add(context);    }    /*     * 测试清单     * */    public  void insertRiskTable() throws DocumentException{        Table aTable = new Table(6,3);        int width[] = { 10, 40, 17, 13, 10, 10 };        aTable.setWidths(width);// 设置每列所占比例        aTable.setWidth(100); // 占页面宽度 90%        aTable.setAlignment(Element.ALIGN_CENTER);// 居中显示        aTable.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示        aTable.setAutoFillEmptyCells(true); // 自动填满        aTable.setBorderWidth(0); // 边框宽度        aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色        aTable.setPadding(2);// 衬距,看效果就知道什么意思了        aTable.setSpacing(3);// 即单元格之间的间距        aTable.setBorder(2);// 边框        Font fontChinese = new Font(bfChinese, 10, Font.BOLD);        Cell cell = new Cell(new Phrase("\n测试代码\n", fontChinese));        cell.setVerticalAlignment(Element.ALIGN_CENTER);        cell.setHorizontalAlignment(Element.ALIGN_CENTER);        cell.setBorderColor(new Color(0, 0, 0));        cell.setBackgroundColor(new Color(153, 204, 255));        aTable.addCell(cell);        Cell cell1 = new Cell(new Phrase("测试名称", fontChinese));        cell1.setVerticalAlignment(Element.ALIGN_CENTER);        cell1.setHorizontalAlignment(Element.ALIGN_CENTER);        cell1.setBorderColor(new Color(0, 0, 0));        cell1.setBackgroundColor(new Color(153, 204, 255));        aTable.addCell(cell1);        Cell cell2 = new Cell(new Phrase("测试发生可能性", fontChinese));        cell2.setVerticalAlignment(Element.ALIGN_CENTER);        cell2.setHorizontalAlignment(Element.ALIGN_CENTER);        cell2.setBorderColor(new Color(0, 0, 0));        cell2.setBackgroundColor(new Color(255, 255, 0));        aTable.addCell(cell2);        Cell cell3 = new Cell(new Phrase("测试损失度", fontChinese));        cell3.setVerticalAlignment(Element.ALIGN_CENTER);        cell3.setHorizontalAlignment(Element.ALIGN_CENTER);        cell3.setBorderColor(new Color(0, 0, 0));        cell3.setBackgroundColor(new Color(255, 255, 0));        aTable.addCell(cell3);        Cell cell4 = new Cell(new Phrase("测试水平", fontChinese));        cell4.setVerticalAlignment(Element.ALIGN_CENTER);        cell4.setHorizontalAlignment(Element.ALIGN_CENTER);        cell4.setBorderColor(new Color(0, 0, 0));        cell4.setBackgroundColor(new Color(255, 255, 0));        aTable.addCell(cell4);        Cell cell5 = new Cell(new Phrase("测试等级", fontChinese));        cell5.setVerticalAlignment(Element.ALIGN_CENTER);        cell5.setHorizontalAlignment(Element.ALIGN_CENTER);        cell5.setBorderColor(new Color(0, 0, 0));        cell5.setBackgroundColor(new Color(255, 255, 0));        aTable.addCell(cell5);        for(int i=0;i<12;i++){            aTable.addCell(new Cell(i+""));        }               document.add(aTable);        document.add(new Paragraph("\n"));      }    /*     * 现状评估     * */    public void insertRiskEvaluationTable() throws DocumentException{        Table aTable = new Table(12,4);        int width1[] = { 5, 20, 5, 20, 5, 5, 5, 5, 5, 5, 5, 5};        aTable.setWidths(width1);// 设置每列所占比例        aTable.setWidth(100); // 占页面宽度 90%        aTable.setAlignment(Element.ALIGN_CENTER);// 居中显示        aTable.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示        aTable.setAutoFillEmptyCells(true); // 自动填满        aTable.setBorderWidth(0); // 边框宽度        aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色        Font fontChinese = new Font(bfChinese, 10, Font.BOLD);        Cell cell = new Cell(new Phrase("\n测试代码\n", fontChinese));        cell.setVerticalAlignment(Element.ALIGN_CENTER);        cell.setHorizontalAlignment(Element.ALIGN_CENTER);        cell.setRowspan(2);        cell.setBorderColor(new Color(0, 0, 0));        cell.setBackgroundColor(new Color(153, 204, 255));        aTable.addCell(cell);        Cell cell2 = new Cell(new Phrase("测试名称", fontChinese));        cell2.setVerticalAlignment(Element.ALIGN_CENTER);        cell2.setHorizontalAlignment(Element.ALIGN_CENTER);        cell2.setRowspan(2);        cell2.setBorderColor(new Color(0, 0, 0));        cell2.setBackgroundColor(new Color(153, 204, 255));        aTable.addCell(cell2);        Cell cell3 = new Cell(new Phrase("行为代码", fontChinese));        cell3.setVerticalAlignment(Element.ALIGN_CENTER);        cell3.setHorizontalAlignment(Element.ALIGN_CENTER);        cell3.setRowspan(2);        cell3.setBorderColor(new Color(0, 0, 0));        cell3.setBackgroundColor(new Color(153, 204, 255));        aTable.addCell(cell3);        Cell cell4 = new Cell(new Phrase("引发测试的行为", fontChinese));        cell4.setVerticalAlignment(Element.ALIGN_CENTER);        cell4.setHorizontalAlignment(Element.ALIGN_CENTER);        cell4.setRowspan(2);        cell4.setBorderColor(new Color(0, 0, 0));        cell4.setBackgroundColor(new Color(153, 204, 255));        aTable.addCell(cell4);        Cell cell5 = new Cell(new Phrase("控制现状", fontChinese));        cell5.setVerticalAlignment(Element.ALIGN_CENTER);        cell5.setHorizontalAlignment(Element.ALIGN_CENTER);        cell5.setColspan(8);        cell5.setBorderColor(new Color(0, 0, 0));        cell5.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell5);        Cell cell6 = new Cell(new Phrase("部门内审查", fontChinese));        cell6.setVerticalAlignment(Element.ALIGN_CENTER);        cell6.setHorizontalAlignment(Element.ALIGN_CENTER);        cell6.setBorderColor(new Color(0, 0, 0));        cell6.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell6);        Cell cell7 = new Cell(new Phrase("测试意识", fontChinese));        cell7.setVerticalAlignment(Element.ALIGN_CENTER);        cell7.setHorizontalAlignment(Element.ALIGN_CENTER);        cell7.setBorderColor(new Color(0, 0, 0));        cell7.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell7);        Cell cell8 = new Cell(new Phrase("过程监控", fontChinese));        cell8.setVerticalAlignment(Element.ALIGN_CENTER);        cell8.setHorizontalAlignment(Element.ALIGN_CENTER);        cell8.setBorderColor(new Color(0, 0, 0));        cell8.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell8);        Cell cell9 = new Cell(new Phrase("奖惩机制", fontChinese));        cell9.setVerticalAlignment(Element.ALIGN_CENTER);        cell9.setHorizontalAlignment(Element.ALIGN_CENTER);        cell9.setBorderColor(new Color(0, 0, 0));        cell9.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell9);        Cell cell10 = new Cell(new Phrase("明确责权", fontChinese));        cell10.setVerticalAlignment(Element.ALIGN_CENTER);        cell10.setHorizontalAlignment(Element.ALIGN_CENTER);        cell10.setBorderColor(new Color(0, 0, 0));        cell10.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell10);        Cell cell11 = new Cell(new Phrase("执行者能力要求", fontChinese));        cell11.setVerticalAlignment(Element.ALIGN_CENTER);        cell11.setHorizontalAlignment(Element.ALIGN_CENTER);        cell11.setBorderColor(new Color(0, 0, 0));        cell11.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell11);        Cell cell12 = new Cell(new Phrase("专业审查", fontChinese));        cell12.setVerticalAlignment(Element.ALIGN_CENTER);        cell12.setHorizontalAlignment(Element.ALIGN_CENTER);        cell12.setBorderColor(new Color(0, 0, 0));        cell12.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell12);        Cell cell13 = new Cell(new Phrase("资源配置", fontChinese));        cell13.setVerticalAlignment(Element.ALIGN_CENTER);        cell13.setHorizontalAlignment(Element.ALIGN_CENTER);        cell13.setBorderColor(new Color(0, 0, 0));        cell13.setBackgroundColor(new Color(204, 255, 255));        aTable.addCell(cell13);        for(int i=0;i<24;i++){            aTable.addCell(new Cell(i+""));        }        document.add(aTable);        document.add(new Paragraph("\n"));    }    /*     * 测试控制清单     * */    public  void insertRiskControlTable() throws DocumentException{        Table aTable = new Table(11,3);        int width[] = { 5, 13, 5, 9, 9, 13, 9, 9, 9, 9, 9 };        aTable.setWidths(width);// 设置每列所占比例        aTable.setWidth(100); // 占页面宽度 90%        aTable.setAlignment(Element.ALIGN_CENTER);// 居中显示        aTable.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示        aTable.setAutoFillEmptyCells(true); // 自动填满        aTable.setBorderWidth(0); // 边框宽度        aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色        Font fontChinese = new Font(bfChinese, 10, Font.BOLD);        Cell cell = new Cell(new Phrase("\n测试代码\n", fontChinese));        cell.setVerticalAlignment(Element.ALIGN_CENTER);        cell.setHorizontalAlignment(Element.ALIGN_CENTER);        cell.setBorderColor(new Color(0, 0, 0));        cell.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell);        Cell cell1 = new Cell(new Phrase("测试名称", fontChinese));        cell1.setVerticalAlignment(Element.ALIGN_CENTER);        cell1.setHorizontalAlignment(Element.ALIGN_CENTER);        cell1.setBorderColor(new Color(0, 0, 0));        cell1.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell1);        Cell cell2 = new Cell(new Phrase("行为代码", fontChinese));        cell2.setVerticalAlignment(Element.ALIGN_CENTER);        cell2.setHorizontalAlignment(Element.ALIGN_CENTER);        cell2.setBorderColor(new Color(0, 0, 0));        cell2.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell2);        Cell cell3 = new Cell(new Phrase("引发测试的行为", fontChinese));        cell3.setVerticalAlignment(Element.ALIGN_CENTER);        cell3.setBorderColor(new Color(0, 0, 0));        cell3.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell3);        Cell cell4 = new Cell(new Phrase("测试控制态度", fontChinese));        cell4.setVerticalAlignment(Element.ALIGN_CENTER);        cell4.setHorizontalAlignment(Element.ALIGN_CENTER);        cell4.setBorderColor(new Color(0, 0, 0));        cell4.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell4);        Cell cell5 = new Cell(new Phrase("控制措施", fontChinese));        cell5.setVerticalAlignment(Element.ALIGN_CENTER);        cell5.setHorizontalAlignment(Element.ALIGN_CENTER);        cell5.setBorderColor(new Color(0, 0, 0));        cell5.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell5);        Cell cell6 = new Cell(new Phrase("措施类型", fontChinese));        cell6.setVerticalAlignment(Element.ALIGN_CENTER);        cell6.setHorizontalAlignment(Element.ALIGN_CENTER);        cell6.setBorderColor(new Color(0, 0, 0));        cell6.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell6);        Cell cell7 = new Cell(new Phrase("完成标志", fontChinese));        cell7.setVerticalAlignment(Element.ALIGN_CENTER);        cell7.setHorizontalAlignment(Element.ALIGN_CENTER);        cell7.setBorderColor(new Color(0, 0, 0));        cell7.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell7);        Cell cell8 = new Cell(new Phrase("控制措施完成时间", fontChinese));        cell8.setVerticalAlignment(Element.ALIGN_CENTER);        cell8.setHorizontalAlignment(Element.ALIGN_CENTER);        cell8.setBorderColor(new Color(0, 0, 0));        cell8.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell8);        Cell cell9 = new Cell(new Phrase("控制措施牵头部门", fontChinese));        cell9.setVerticalAlignment(Element.ALIGN_CENTER);        cell9.setHorizontalAlignment(Element.ALIGN_CENTER);        cell9.setBorderColor(new Color(0, 0, 0));        cell9.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell9);        Cell cell10 = new Cell(new Phrase("控制措施配合部门", fontChinese));        cell10.setVerticalAlignment(Element.ALIGN_CENTER);        cell10.setHorizontalAlignment(Element.ALIGN_CENTER);        cell10.setBorderColor(new Color(0, 0, 0));        cell10.setBackgroundColor(new Color(204, 153, 255));        aTable.addCell(cell10);        for(int i=0;i<22;i++){            aTable.addCell(new Cell(i+""));        }        document.add(aTable);        document.add(new Paragraph("\n"));    }    /**     * @param imgUrl 图片路径     * @param imageAlign 显示位置     * @param height 显示高度     * @param weight 显示宽度     * @param percent 显示比例     * @param heightPercent 显示高度比例     * @param weightPercent 显示宽度比例     * @param rotation 显示图片旋转角度     * @throws MalformedURLException     * @throws IOException     * @throws DocumentException     */    public void insertImg(String imgUrl,int imageAlign,int height,int weight,int percent,int heightPercent,int weightPercent,int rotation) throws MalformedURLException, IOException, DocumentException{//       添加图片        Image img = Image.getInstance(imgUrl);        if(img==null)            return;        img.setAbsolutePosition(0, 0);        img.setAlignment(imageAlign);        img.scaleAbsolute(height, weight);        img.scalePercent(percent);        img.scalePercent(heightPercent, weightPercent);        img.setRotation(rotation);        document.add(img);    }    public void closeDocument() throws DocumentException{        this.document.close();    }    public static void main(String[] args) throws DocumentException, IOException {        WordTemplete wt = new WordTemplete();        wt.openDocument("d:\\dome1.doc");        wt.insertTitle("一、测试基本情况", 12, Font.BOLD, Element.ALIGN_CENTER);        wt.insertContext("共识别出XXX个测试,XXX项测试行为,其中,违规类测试XX项,占测试总量的XX%,违约类测试XX项,占测试总量的XX%,侵权类测试XX项,占测试总量的XX%,怠于类测试XX项,占测试总量的XX%,不当类测试XX项,占测试总量的XX%。", 12, Font.NORMAL, Element.ALIGN_LEFT);        wt.insertContext("根据测试测评结果,各等级测试数量及所占百分比分别为:一级测试共XX项,占测试总量的XX%;二级测试共XX项,占测试总量的XX%;三级测试共XX项,占测试总量的XX%;四级测试共XX项,占测试总量的XX%;五级测试共XX项,占测试总量的XX%。\n\n", 12, Font.NORMAL, Element.ALIGN_LEFT);        wt.insertContext("测试定向分析结果如下:", 12, Font.NORMAL, Element.ALIGN_LEFT);        wt.insertContext("① 部门角度测试分析", 12, Font.NORMAL, Element.ALIGN_LEFT);        wt.insertImg("test.bmp", Image.ALIGN_CENTER, 12, 35, 50, 50, 50, 30);        wt.insertContext("② 主体角度测试分析", 12, Font.NORMAL, Element.ALIGN_LEFT);        wt.insertImg("test.bmp", Image.ALIGN_CENTER, 12, 35, 50, 60, 60, 30);        wt.insertContext("③ 部门主体交叉角度测试分析", 12, Font.NORMAL, Element.ALIGN_LEFT);        wt.insertImg("test.bmp", Image.ALIGN_CENTER, 50, 75, 100, 100, 100, 30);        wt.insertContext("④ 业务活动角度测试分析", 12, Font.NORMAL, Element.ALIGN_LEFT);        wt.insertImg("test.bmp", Image.ALIGN_CENTER, 12, 35, 50, 80, 80, 30);        wt.insertTitle("二、重大测试清单", 12, Font.BOLD, Element.ALIGN_CENTER);        wt.insertRiskTable();        wt.insertTitle("三、测试控制现状评估结果", 12, Font.BOLD, Element.ALIGN_CENTER);        wt.insertRiskEvaluationTable();        wt.insertTitle("四、测试控制计划", 12, Font.BOLD, Element.ALIGN_CENTER);        wt.insertRiskControlTable();        wt.closeDocument();    }}
相关栏目:

用户点评