zoukankan      html  css  js  c++  java
  • itext 生成doc文档 小结(自己备忘)

    1、引入maven

         <dependency>
                <groupId>com.lowagie</groupId>
                <artifactId>itext</artifactId>
                <version>2.1.7</version>
            </dependency>
            <dependency>
                <groupId>com.lowagie</groupId>
                <artifactId>itext-rtf</artifactId>
                <version>2.1.7</version>
            </dependency>

    2、大致流程

    //创建一条文本对象(A4纸张)
    Document document = new Document(PageSize.A4);
    
    //创建一个DOC文档(根据指定的路径)
    RtfWriter2.getInstance(document, new FileOutputStream(file_url));
    
    //打开文本对象
    document.open();
    
    //添加一个简单的段落
    document.add(new Paragraph("Hello World!"));
    
    //结束编写
    document.close();

    3、字体

    //设置基础字体 -- 宋体
    BaseFont bfChinese = BaseFont.createFont("C:/Windows/Fonts/simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    
    
    //设置字体 (含有大小、颜色……)
    Font titleFont = new Font(bfChinese, 14.0F, 1); //字体:宋体   大小:14.0F   加粗
    Font contextFont = new Font(bfChinese, 14.0F, 0); //字体:宋体   大小:14.0F   不加粗
    Font contextFont_red = new Font(bfChinese, 14.0F, 0, Color.red); //字体:宋体   大小:14.0F   不加粗  字体颜色:红色
    Font contextFont_black = new Font(bfChinese, 14.0F, 0, Color.black);//字体:宋体   大小:14.0F   不加粗  字体颜色:黑色
    Font headerFooterFont = new Font(bfChinese, 9.0F, 0);//字体:宋体   大小:9.0F   不加粗

    4、设置头 和 页码数

    全局变量

    private static String TECH_INFO = "这里是顶部";  //头部标语
    private static String FOOT_INFO = "这里是底部";  //底部标语

    头部

    Table header = new Table(2);
    header.setBorder(0);
    header.setWidth(100.0F);
    
    Paragraph address = new Paragraph(TECH_INFO);
    address.setFont(headerFooterFont);
    Cell cell01 = new Cell(address);
    cell01.setBorder(0);
    header.addCell(cell01);
    
    Paragraph date = new Paragraph("生成日期: " +
            new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
    date.setAlignment(2);
    date.setFont(headerFooterFont);
    cell01 = new Cell(date);
    cell01.setBorder(0);
    header.addCell(cell01);
    document.setHeader(new RtfHeaderFooter(header));

    底部(页码数)

    Table footer = new Table(2);
    footer.setBorder(0);
    footer.setWidth(100.0F);
    
    Paragraph company = new Paragraph(FOOT_INFO);
    company.setFont(headerFooterFont);
    Cell cell02 = new Cell(company);
    cell02.setBorder(0);
    footer.addCell(cell02);
    
    Paragraph pageNumber = new Paragraph("第 ");
    pageNumber.add(new RtfPageNumber());
    pageNumber.add(new Chunk(" 页"));
    pageNumber.setAlignment(2);
    pageNumber.setFont(headerFooterFont);
    cell02 = new Cell(pageNumber);
    cell02.setBorder(0);
    footer.addCell(cell02);
    
    document.setFooter(new RtfHeaderFooter(footer));

    5、表格

    Table table1 = new Table(4);//创建表格
    
    int width[] = {18,32,18,32};//设置每列宽度比例
    
    table1.setWidths(width);//设置每列宽度比例
    
    table1.setWidth(95);//占页面宽度比例
    
    //第一行 第一个
    Cell cell11 = new Cell(new Paragraph("11",contextFont));
    cell11.setVerticalAlignment(Element.ALIGN_TOP);      //垂直 居上
    cell11.setHorizontalAlignment(Element.ALIGN_RIGHT);  //水平 居右
    cell11.setBorder(0);
    
    //第一行 第二个
    Cell cell12 = new Cell("12");
    cell12.setVerticalAlignment(Element.ALIGN_BOTTOM);  //垂直 居下
    cell12.setHorizontalAlignment(Element.ALIGN_LEFT);  //水平 居左
    cell12.setBorder(0);
    
    
    //第一行 第三个
    Cell cell13 = new Cell(new Paragraph("13",contextFont));
    cell13.setVerticalAlignment(Element.ALIGN_MIDDLE);  //垂直 居中
    cell13.setHorizontalAlignment(Element.ALIGN_RIGHT); //水平 居右
    cell13.setBorder(0);
    
    //第一行 第四个
    Cell cell14 = new Cell(new Paragraph("14",contextFont));
    cell14.setVerticalAlignment(Element.ALIGN_MIDDLE);  //垂直 居中
    cell14.setHorizontalAlignment(Element.ALIGN_LEFT);  //水平 居左
    cell14.setBorder(0);
    
    table1.addCell(cell11);
    table1.addCell(cell12);
    table1.addCell(cell13);
    table1.addCell(cell14);
    
    document.add(table1);

    6、插入图片

    //图片路径
    String URL = "http://www.baidu.com/img/bd_logo1.png";
    //创建图片
    Image img = null;
    try {
        img = Image.getInstance(URL);
        img.scalePercent(10);
    } catch (BadElementException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    //内容
    Paragraph context = new Paragraph();
    context.setAlignment(1);
    context.setFont(contextFont);
    if(img == null){
        context.add("没有图片");
    }else{
        context.add(img);
    }
    document.add(context);
  • 相关阅读:
    nginx升级总结,漏洞升级
    【BUG解决】在git上pull时提示You have not concluded your merge. (MERGE_HEAD exists)
    如何自签名把http网站变成https网站(https自签名方法)
    ifly
    Shell排序和二叉树排序
    C/C++复习笔记(2)
    C/C++复习笔记(1)
    C语言字符串操作
    python+flask
    C语言的一点复习
  • 原文地址:https://www.cnblogs.com/xyt-0412/p/6549662.html
Copyright © 2011-2022 走看看