zoukankan      html  css  js  c++  java
  • java使用iText生成pdf表格

    转载地址:http://www.open-open.com/code/view/1424011530749

    首先需要你自己下载itext相关的jar包并添加引用,或者在maven中添加如下引用配置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <dependency>
        <groupId>com.lowagie</groupId>
        <artifactId>iText</artifactId>
        <version>2.1.5</version>
    </dependency>      
    <!--itext生成word文档,需要下面dependency-->
    <dependency>
        <groupId>com.lowagie</groupId>
        <artifactId>iText-rtf</artifactId>
        <version>2.1.4</version>
    </dependency>  
    <dependency>
        <groupId>com.lowagie</groupId>
        <artifactId>iTextAsian</artifactId>
        <version>2.1.4</version>
    </dependency>

    如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    package com.iText.create;
    import java.awt.Color;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    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.HeaderFooter;
    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.pdf.PdfWriter;
    /** *//**
     * 功能描述:使用Itext组件创建pdf文档<br>
     * 创建时间:2010-07-01
     * @author sxyx2008
     *
     */
    public class CreatePdf {
        public CreatePdf() throws Exception{
     
            //创建一个文档对象纸张大小为A4
            Document doc=new Document(PageSize.A4,50,50,50,50);
            //设置要输出到磁盘上的文件名称
            PdfWriter writer=PdfWriter.getInstance(doc,new FileOutputStream(new File("徐熙媛.pdf")));
            //设置作者信息
            doc.addAuthor("sxyx2008");
            //设置文档创建日期
            doc.addCreationDate();
            //设置标题
            doc.addTitle("iText测试");
            //设置值主题
            doc.addSubject("iText");
     
            //构建页脚
            HeaderFooter footer=new HeaderFooter(new Phrase(), true);
            //设置页脚是否有边框
            //0表示无
            //1上边框
            //2下边框
            //3上下边框都有 默认都有
            //设置页脚是否有边框
            footer.setBorder(0);
            //footer.setBorder(1);
            //footer.setBorder(2);
            //footer.setBorder(3);
            //设置页脚的对齐方式
            footer.setAlignment(Element.ALIGN_CENTER);
            //将页脚添加到文档中
            doc.setFooter(footer);
     
            //打开文档开始写内容
            doc.open();
            //Paragraph par1=new Paragraph("Hello,Welcome You");
            //Paragraph par2=new Paragraph("你好,中文测试",ChineseFont());
            /**//*par1.setAlignment(Element.ALIGN_CENTER);
            doc.add(par1);*/
            //par2.setAlignment(Element.ALIGN_CENTER);
            //doc.add(par2);
     
            //构建一段落
            Paragraph par3=new Paragraph("客户信息表",ChineseFont());
            //设置局中对齐
            par3.setAlignment(Element.ALIGN_CENTER);
            //添加到文档
            doc.add(par3);
     
            //创建一个四列的表格
            Table table=new Table(4);
            //设置边框
            table.setBorder(1);
     
            //创建表头
     
            Cell cell1=new Cell(new Phrase("编号",ChineseFont()));
            cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell1.setVerticalAlignment(Element.ALIGN_CENTER);
            cell1.setHeader(true);
            cell1.setBackgroundColor(Color.RED);
     
            Cell cell2=new Cell(new Phrase("姓名",ChineseFont()));
            cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell2.setVerticalAlignment(Element.ALIGN_CENTER);
            cell2.setHeader(true);
            cell2.setBackgroundColor(Color.RED);
     
            Cell cell3=new Cell(new Phrase("性别",ChineseFont()));
            cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell3.setVerticalAlignment(Element.ALIGN_CENTER);
            cell3.setHeader(true);
            cell3.setBackgroundColor(Color.RED);
     
            Cell cell4=new Cell(new Phrase("备注",ChineseFont()));
            cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell4.setVerticalAlignment(Element.ALIGN_CENTER);
            cell4.setHeader(true);
            cell4.setBackgroundColor(Color.RED);
     
            table.addCell(cell1);
            table.addCell(cell2);
            table.addCell(cell3);
            table.addCell(cell4);
            //添加此代码后每页都会显示表头
            table.endHeaders();
     
            //循环向表格中添加100条记录 100行4列的表格
     
            //以下代码的作用是创建100行数据,其中每行有四列,列依次为 编号 姓名 性别 备注
            for (int i = 1; i <=100; i++) {
     
                //设置编号单元格
                Cell cell11=new Cell(i+"");
                //设置姓名单元格
                Cell cell22=new Cell(new Phrase("徐熙媛",ChineseFont()));
                //设置性别单元格
                Cell cell33=new Cell(new Phrase("女",ChineseFont()));
                //设置备注单元格
                Cell cell44=new Cell(new Phrase("好姑娘",ChineseFont()));
     
                //单元格水平对齐方式
                cell11.setHorizontalAlignment(Element.ALIGN_CENTER);
                //单元格垂直对齐方式
                cell11.setVerticalAlignment(Element.ALIGN_CENTER);
     
                cell22.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell22.setVerticalAlignment(Element.ALIGN_CENTER);
     
                cell33.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell33.setVerticalAlignment(Element.ALIGN_CENTER);
     
                cell44.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell44.setVerticalAlignment(Element.ALIGN_CENTER);
     
                table.addCell(cell11);
                table.addCell(cell22);
                table.addCell(cell33);
                table.addCell(cell44);
     
            }
     
            //将表格添加到新的文档
            doc.add(table);
            //创建新的一页
            doc.newPage();
            //添加图片
            Image image=Image.getInstance("D://Program Files//myeclipseworkspace//6.5//iText//src//5.jpg");
            //添加到文档
            doc.add(image);
            //设置对象方式
            image.setAlignment(Element.ALIGN_CENTER);
     
            doc.close();
            writer.close();
        }
     
        //pdf文档中文字符处理
        public static Font ChineseFont()
        {
            BaseFont baseFont=null;
            try {
                baseFont=BaseFont.createFont("STSong-Light","UniGB-UCS2-H", true);
            } catch (DocumentException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            Font chineseFont=new Font(baseFont,8,Font.NORMAL,Color.BLUE);
            return chineseFont;
        }
     
        public static void main(String[] args) {
            try {
                new CreatePdf();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    Codeforces Round #200 (Div. 2) E. Read Time(二分)
    Codeforces Round #160 (Div. 2) D. Maxim and Restaurant(DP)
    TC SRM 593 DIV1 250
    TC SRM 593 DIV2 1000
    HDU 2825 Wireless Password(AC自动机+DP)
    Codeforces Round #203 (Div. 2)
    TC SRM 591 DIV2 1000
    HDU 4758 Walk Through Squares(AC自动机+DP)
    CF 346B. Lucky Common Subsequence(DP+KMP)
    HDU 4753 Fishhead’s Little Game(DFS)
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/5215737.html
Copyright © 2011-2022 走看看