Java开发实例大全提高篇——操作PDF篇

第4篇  操作PDF篇
第13章  操作PDF文档
13.1  文档和文档属性
实例380  创建PDF文档
    public static void main(String[] args) {
        try {
            Document document = new Document();                // 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream("c:\\创建第一个PDF文档.pdf"));// 关联文档对象与输出流
            document.open();                            // 打开文档
            document.add(new Paragraph("First Document."));        // 向文档中添加内容
            document.add(new Paragraph("Success."));            // 向文档中添加内容
            document.close();                            // 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例381  添加PDF文档标题
    public static void main(String[] args){
        Document document=new Document();//创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\添加标题.pdf"));// 关联文档对象与输出流
            document.addTitle("Java编程词典");// 向文档中添加标题
            document.open();// 打开文档
            document.add(new Paragraph("Add Title"));// 向文档中添加内容
            
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {    
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }      
    }

实例382  添加PDF文档主题
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\添加PDF文档主题.pdf"));// 关联文档对象与输出流
            document.addSubject("学习iText的使用");// 向文档中添加主题
            document.open();// 打开文档
            document.add(new Paragraph("Subject"));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例383  添加PDF文档关键词
    public static void main(String[] args){
        Document document=new Document();// 创建文档对象
         try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\Java编程词典.pdf"));//关联文档对象与输出流
            document.addKeywords("这是一套Java开发人员必备的学习资源库!");// 向文档中添加关键字    
            document.open();// 打开文档
            document.add(new Paragraph("Keywords"));// 向文档中添加内容    
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
       }

实例384  添加PDF文档作者
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\添加PDF文档作者.pdf"));// 关联文档对象与输出流
            document.addAuthor("Zhenkun Zhang");// 向文档中添加作者
            document.open();// 打开文档
            document.add(new Paragraph("Add Author."));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例385  添加PDF文档创建者
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\Java编程词典.pdf"));// 关联文档对象与输出流
            document.addCreator("明日科技"); // 添加创建者
            document.open();// 打开文档
            document.add(new Paragraph("Creator"));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例386  添加PDF文档制作者
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\添加PDF文档制作者.pdf"));// 关联文档对象与输出流
            document.addProducer();// 向文档中添加制作者
            document.open();// 打开文档
            document.add(new Paragraph("Add Producer."));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例387  添加PDF文档创建日期
    public static void main(String args[]){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\Java编程词典.pdf"));// 关联文档对象与输出流
            document.addAuthor("明日科技");    //添加作者
            document.addCreationDate();// 创建日期
            document.open();// 打开文档
            document.add(new Paragraph("CreateDate"));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {            
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

13.2  初始化操作
实例388  设置页面大小
    public static void main(String[] args) {    
        Document document = new Document();// 创建文档对象设置文档大小
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\Java资料库.pdf"));// 关联文档对象与输出流
            Rectangle pageSize= new Rectangle(300, 100);// 设置页面大小
            document.setPageSize(pageSize); // 设置页面大小
            document.open();// 打开文档
            document.add(new Paragraph("Page Size: 300*100"));// 向文档中添加内容   
            document.close();// 关闭文档  
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } catch (DocumentException e1) {
            e1.printStackTrace();
        }                      
    }

实例389  横向显示页面
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象设置文档大小
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\横向显示页面.pdf"));// 关联文档对象与输出流
            Rectangle pageSize= new Rectangle(150,220);// 设置页面大小
            pageSize = pageSize.rotate();
            document.setPageSize(pageSize); // 设置页面大小
            document.open();// 打开文档
            document.add(new Paragraph("Page Size"));// 向文档中添加内容   
            document.close();// 关闭文档  
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } catch (DocumentException e1) {
            e1.printStackTrace();
        }                      
    }

实例390  纵向显示页面
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象设置文档大小
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "c:\\纵向显示页面.pdf"));// 关联文档对象与输出流
            Rectangle pageSize = new Rectangle(220, 150);// 创建表示页面大小的矩形对象,该矩形对象是横向显示的
            pageSize = pageSize.rotate();// 转换为纵向
            document.setPageSize(pageSize); // 设置页面大小
            document.open();// 打开文档
            document.add(new Paragraph("Page Size"));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } catch (DocumentException e1) {
            e1.printStackTrace();
        }
    }


实例391  添加水印
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "c:\\tempWatermark.pdf"));// 关联文档对象与临时文件的输出流
            document.open();// 打开文档
            document.add(new Paragraph(" ")); // 向文档中添加内容
            document.close();// 关闭文档对象
            PdfReader reader = new PdfReader("c:\\tempWatermark.pdf");// 创建“tempWatermark.pdf”的PdfReader对象
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
                    "c:\\添加水印.pdf"));// 创建PdfStamper对象
            Image img = Image.getInstance("image/watermark.jpg");// 创建图像对象
            img.setAbsolutePosition(50, 385);// 定位图片对象
            PdfContentByte under = stamp.getUnderContent(1);// 获得第一页的内容
            under.addImage(img);// 添加图片,完成水印功能
            BaseFont chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义字体
            under.beginText();// 标记文本开始
            under.setFontAndSize(chinese, 42);// 设置字体和字号
            under.setTextMatrix(70, 550);// 设置添加内容的显示位置
            under.showText("下面是添加的水印图片.");// 添加内容
            under.endText();// 标记文本结束
            stamp.close();// PdfStamper对象,将从“tempWatermark.pdf”中读取的文档添加水印后写入“添加水印.pdf”
            File file = new File("c:\\tempWatermark.pdf");// 创建临时文件的File对象
            file.delete();// 删除临时文件
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例392  添加页眉和页脚
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\页眉页脚.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            document.add(new Paragraph("Add Page Top And Foot.")); // 向文档中添加内容
            document.close();// 关闭文档对象
            PdfReader reader = new PdfReader("c:\\页眉页脚.pdf");// 创建“页眉页脚.pdf”的PdfReader对象
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("c:\\添加页眉页脚.pdf"));// 创建PdfStamper对象
            PdfContentByte over = stamp.getOverContent(1);// 获得第一页的内容
            over.setTextRise(810);// 文本上移到810的位置
            over.beginText();// 标记文本开始
            BaseFont chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义字体
            over.setFontAndSize(chinese, 18);// 设置字体和字号
            over.showText("                                           页眉的内容");// 添加页眉
            over.endText();// 标记文本结束
            stamp.insertPage(2, PageSize.A4);// 增加新的一页,为新页添加页脚
            PdfContentByte under = stamp.getUnderContent(2);// 获得第二页的内容
            under.setTextRise(15);// 文本上移到15的位置
            under.beginText();// 标记文本开始
            under.setFontAndSize(chinese, 18);// 设置字体和字号
            under.showText("                                          页脚的内容");// 添加页脚
            under.endText();// 标记文本结束
            stamp.close();// PdfStamper对象,将从“页眉页脚.pdf”中读取的文档添加页眉页脚后写入“添加页眉页脚.pdf”
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例393  创建新页
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\创建新页.pdf"));// 关联文档与输出流
            document.open();// 打开文档
            document.add(new Paragraph("Old Page"));// 为第一页添加内容
            document.newPage();// 创建新的页
            document.add(new Paragraph("New Page"));// 为新页添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例394  为PDF文档添加页码
    public PdfTemplate pdfTemplate;// 声明模板对象
    public BaseFont baseFont;// 声明基础字体对象

    public static void main(String[] args) {
        Document document = new Document(PageSize.A4);// 创建A4纸张大小的PDF文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("C:\\添加页码.pdf"));// 关联文档对象与输出流
            writer.setPageEvent(new AddPageNumber());// 添加页面事件监听器
            document.open();// 打开文档
            BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Paragraph pargraph = new Paragraph("添加页码和总页数。", new Font(bf, 15,
                    Font.BOLD, BaseColor.BLUE));// 创建段落对象并指定中文
            document.add(pargraph);// 向文档中添加段落
            document.newPage();// 创建新页
            document.add(pargraph);// 添加段落
            document.newPage();// 创建新页
            document.add(pargraph);// 添加段落
            document.close();// 关闭文档
        } catch (IllegalPdfSyntaxException de) {
            de.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public void onOpenDocument(PdfWriter writer, Document document) {// 打开文档时执行该方法
            pdfTemplate = writer.getDirectContent().createTemplate(180, 180);// 创建模板对象
            try {
                baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",
                        BaseFont.NOT_EMBEDDED);// 创建基础字体
            } catch (DocumentException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    }

    public void onEndPage(PdfWriter writer, Document document) {// 结束页时执行该方法
        PdfContentByte cb = writer.getDirectContent();// 创建内容对象
        cb.saveState();// 保存状态
        cb.beginText();// 文本开始标记
        cb.setFontAndSize(baseFont, 12);// 设置字体和字号
        cb.setTextMatrix(260, 800);// 设置文本显示位置
        String page = "第" + writer.getPageNumber() + "页/共";// 定义表示页码信息的变量
        cb.showText(page);// 显示文本
        cb.endText();// 文本结束标记
        cb.addTemplate(pdfTemplate, 305, 800);// 添加模板对象
        cb.stroke();// 确认并保存操作
        cb.restoreState();// 恢复标记
        cb.closePath();// 关闭内容通道
    }

    public void onCloseDocument(PdfWriter writer, Document document) {// 关闭文档时执行该方法
        pdfTemplate.beginText();// 模板文本开始标记
        pdfTemplate.setFontAndSize(baseFont, 12);// 设置模板字体和字号
        int totalPages = writer.getPageNumber() - 1;// 获得总页数
        pdfTemplate.showText(totalPages + "页");// 显示总页数信息
        pdfTemplate.endText();// 模板文本结束标记
        pdfTemplate.closePath();// 关闭模板通道
    }

13.3  字体与中文处理
实例395  设置特殊的文本字体
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c://Java类库.pdf"));    //关联文档对象与输出流
            document.open();                            //打开文档
            BaseFont bfChinese = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);//定义基本字体
            Font contentFont = new Font(bfChinese, 20);    //定义普通字体和大小
            document.add(new Paragraph("Java Function Classes", contentFont));    //向文档中添加内容并指定普通字体
            document.close();                            //关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }    
    }

实例396  加粗字体
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\Java.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont bfChinese = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);// 定义基本字体
            Font contentFont = new Font(bfChinese, 12, Font.BOLD);// 定义加粗字体
            document.add(new Paragraph("www.mingribccd.com",contentFont));// 向文档中添加内容并指定加粗字体
            document.add(new Paragraph("www.mingribook.com"));
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例397  添加下划线
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\明日科技简介.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            document.add(new Paragraph("Generalize"));// 向文档中添加内容
            document.add(new Paragraph("Welcome to GuangZhou!", FontFactory.getFont(FontFactory.HELVETICA,15,Font.UNDERLINE)));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例398  添加删除线
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\公司简介.pdf"));//关联文档对象与输出流
            document.open();// 打开文档
            document.add(new Paragraph("The company was builded in 1998!", FontFactory.getFont(FontFactory.COURIER, 15, Font.NORMAL | Font.STRIKETHRU)));    //向文档中添加内容
            document.add(new Paragraph("The company was builded in 1999!"));    //向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例399  在PDF文档中显示中文
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\亚运速递.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font FontChinese = new Font(Chinese, 20, Font.NORMAL);// 实例化字体类与设置字体大小属性           
            document.add(new Paragraph("中国再一次实现了金牌数和奖牌数第一的目标", FontChinese));// 向文档中添加内容并指定中文
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例400  设置PDF文档密码
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\设置密码.pdf"));// 关联文档对象与输出流
            writer.setEncryption("zzk".getBytes(), "123".getBytes(),
                    PdfWriter.ALLOW_COPY, PdfWriter.STANDARD_ENCRYPTION_128);// 设置密码参数和常量
            document.open();// 打开文档
            document.add(new Paragraph("Set Encryption"));// 向文档添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }


13.4  块、短语、段落、章节和区域
实例401  添加和创建块
CreateAddChunk.java
    public static void main(String args[]){
        Document document = new Document();    //创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\Java.pdf"));// 关联文档对象与输出流
            document.open();                //打开文档
            Chunk chunk1 = new Chunk("Text chunk1",FontFactory.getFont(FontFactory.COURIER_BOLD,15,Font.ITALIC));// 创建块定并义字体属性和添加内容
            document.add(chunk1);
            Chunk chunk2 = new Chunk("Text chunk2",FontFactory.getFont(FontFactory.COURIER_BOLD,30,Font.BOLD));// 创建块定并义字体属性和添加内容
            document.add(chunk2);
            document.close();                //关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例402  设置上标和下标
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置上标和下标.pdf"));// 关联文档对象与输出流
            document.open();
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font fontChinese = new Font(Chinese, 20, Font.NORMAL);// 实例化字体类与设置字体大小属性
            document.add(new Paragraph("下面是使用上标的效果:", fontChinese));// 添加段落
            Chunk chunk = new Chunk("X");// 创建块
            document.add(chunk);// 向文档添加内容
            chunk = new Chunk("2");// 创建块
            chunk.setTextRise(4.0f);// 提升块文本
            document.add(chunk);// 添加块
            chunk = new Chunk("+Y");// 创建块
            document.add(chunk);// 添加块
            chunk = new Chunk("2");// 创建块
            chunk.setTextRise(4.0f);// 提升块文本
            document.add(chunk);// 添加块
            document.add(new Paragraph("下面是使用下标的效果:", fontChinese));// 添加段落
            chunk = new Chunk("M");// 创建块
            document.add(chunk);// 添加块
            chunk = new Chunk("2");// 创建块
            chunk.setTextRise(-3.0f);// 降低块文本
            document.add(chunk);// 添加块
            chunk = new Chunk("+N");// 创建块
            document.add(chunk);// 添加块
            chunk = new Chunk("2");// 创建块
            chunk.setTextRise(-3.0f);// 降低块文本
            document.add(chunk);// 添加块
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例403  设置文本背景颜色
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\Java编程全能词典.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Chunk chunk = new Chunk("Compile once, Run all!");// 定义块并添加内容
            chunk.setBackground(BaseColor.LIGHT_GRAY); // 设置背景颜色
            document.add(chunk);// 添加背景颜色
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例404  添加和创建短语
    public static void main(String args[]){
        Document document = new Document();        //创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\book.pdf"));// 关联对象与输出流
            document.open();// 打开文档    
            Phrase phrase1 = new Phrase("BeiJing Olympics");// 创建短语并添加内容
            document.add(phrase1);
            Phrase phrase2 = new Phrase("One world, one dream!");// 创建短语并添加内容
            document.add(phrase2);
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例405  添加和创建段落
    public static void main(String[] args){
        Document document = new Document();    //创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\Java编程词典.pdf"));    //关联文档对象与输出流
            document.open();                //打开文档
            Paragraph P1 = new Paragraph("Java programming dictionary");    
            //创建段落并添加内容
            document.add(P1);        //向文档添加段落
            Paragraph P2 = new Paragraph("The richest resource for learning");
            document.add(P2);        //向文档添加段落        
        } catch (FileNotFoundException e) {
                e.printStackTrace();
        } catch (DocumentException e) {
                e.printStackTrace();
        }
        finally{
            document.close();        //关闭文档    
        }
    }

实例406  设置段落首行缩进
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\公司简介.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Paragraph P1 = new Paragraph("MR company was builded in 1999!");// 创建段落并添加内容
            P1.setFirstLineIndent(20);         //设置段落首先缩进
            document.add(new Paragraph(P1));//向文档添加段落
            Paragraph P2 = new Paragraph("Company own about for fifty employees.");//创建段落并添加内容
            document.add(P2);        //向文档添加段落
            document.close();        //关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例407  设置段落的上下间距
    public static void main(String[] args){
        Document document = new Document();        //创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\Java.pdf"));// 关联文档对象与输出流
            document.open();                    //打开文档
            Paragraph paragraph1 = new Paragraph("Java resource");    //创建段落添加内容
            paragraph1.setSpacingBefore(10);     //设置段落上边距
            paragraph1.setSpacingAfter(30);     //设置段落下边距
            document.add(paragraph1);            //向文档添加段落
            Paragraph paragraph2 = new Paragraph("Java classes introduce");            //创建段落添加内容
            paragraph2.setSpacingAfter(30);     //设置段落下边距
            document.add(paragraph2);            //向文档添加段落
            document.close();                    //关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例408  设置段落左右缩进
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\Java编程词典.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Paragraph paragraph1 = new Paragraph("The Paragraph IndentLeft");// 实例化段落并添加内容
            paragraph1.setIndentationLeft(100);// 段落左缩进
            document.add(paragraph1);// 向文档中添加段落
            Paragraph paragraph2 = new Paragraph("The Paragraph IndentRight");// 实例化段落并添加内容
            paragraph2.setIndentationRight(100);// 段落右缩进
            document.add(paragraph2);// 向文档中添加段落
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例409  设置段落的对齐方式
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\Java.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Paragraph paragraph1 = new Paragraph("www.mingrosoft.com");// 创建段落并添加内容
            paragraph1.setAlignment(Element.ALIGN_LEFT); // 左对齐
            document.add(new Paragraph(paragraph1));     // 向文档添加段落    
            Paragraph paragraph2 = new Paragraph("www.mingribook.com");// 创建段落并添加内容
            paragraph2.setAlignment(Element.ALIGN_RIGHT);// 右对齐
            document.add(new Paragraph(paragraph2));     // 向文档添加段落
                    
            Paragraph paragraph3 = new Paragraph("www.mingribccd.com"); // 创建段落并添加内容
            paragraph3.setAlignment(Element.ALIGN_CENTER);// 居中对齐
            document.add(new Paragraph(paragraph3));      // 向文档添加段落    
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
     }

实例410  设置段落字体大小
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\个人简历.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            document.add(new Paragraph("Personal Resumes",FontFactory.getFont(FontFactory.HELVETICA,50,Font.BOLDITALIC)));// 定义段落字体属性并添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例411  设置段落文本颜色
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\Java类库参考手册.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Paragraph paragraph = new Paragraph(new Paragraph("JFrame Class Member List",FontFactory.getFont(FontFactory.HELVETICA, 30, BaseColor.BLUE )));// 创建段落定义字体并添加内容
            paragraph.setFirstLineIndent(100); // 设置段落首先缩进
            document.add(paragraph);// 向文档添加段落
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例412  添加章节
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\添加章节.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Chapter chapter = new Chapter("This is chapter 1", 1);// 创建与新章节对象关联的内容
            document.add(chapter);// 向文档中添加章节
            chapter = new Chapter("This is chapter 2", 2);// 创建与新章节对象关联的内容
            document.add(chapter);// 向文档中添加章节
            chapter = new Chapter("This is chapter 3", 3);// 创建与新章节对象关联的内容
            document.add(chapter);// 向文档中添加章节
            chapter = new Chapter("This is chapter 4", 4);// 创建与新章节对象关联的内容
            document.add(chapter);// 向文档中添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例413  在章节中添加小节
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\在章节中添加小节.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节一",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            paragraph = new Paragraph("小节二",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例414  在小节中添加列表
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\在小节中添加列表.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Font fontChinese3 = new Font(Chinese, 12, Font.NORMAL,BaseColor.BLACK);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节",fontChinese2);// 创建段落对象
            Section section = chapter.addSection(paragraph);// 创建并加入小节对象
            paragraph = new Paragraph("\n小节中添加的列表如下:\n\n",fontChinese3);// 创建段落对象
            section.add(paragraph);// 向小节添加段落
            List list = new List(true, false, 10);// 创建列表
            list.add(new ListItem("小节中的列表一",fontChinese3));// 向列表添加内容
            list.add(new ListItem("小节中的列表二",fontChinese3));
            list.add(new ListItem("小节中的列表三",fontChinese3));
            section.add(list);// 向小节添加列表
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例415  在小节中添加段落
    public static void main(String[] args){
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\在小节中添加段落.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Font fontChinese3 = new Font(Chinese, 12, Font.NORMAL,BaseColor.BLACK);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节",fontChinese2);// 创建段落对象
            Section section = chapter.addSection(paragraph);// 创建并加入小节对象
            paragraph = new Paragraph("小节中添加的内容",fontChinese3);// 创建段落
            section.add(paragraph);// 向小节添加段落内容
            paragraph = new Paragraph("小节中添加的另一部分内容",fontChinese3);// 创建段落
            section.add(paragraph);// 向小节添加段落内容
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例416  在小节中添加表格
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\在小节中添加表格.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,
                    BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,
                    BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Font fontChinese3 = new Font(Chinese, 12, Font.NORMAL,
                    BaseColor.BLACK);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节", fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph, 1);// 创建章节对象
            paragraph = new Paragraph("小节", fontChinese2);// 创建段落对象
            Section section = chapter.addSection(paragraph);// 创建并加入小节对象
            PdfPTable table = new PdfPTable(3);// 创建表格对象
            table.addCell("1,1");// 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("1,2");
            table.addCell("1,3");
            table.addCell("2,1");
            table.addCell("2,2");
            table.addCell("2,3");
            table.addCell("3,1");
            table.addCell("3,2");
            table.addCell("3,3");
            paragraph = new Paragraph("\n下面是小节中添加的表格:\n\n", fontChinese3);// 创建段落
            section.add(paragraph);// 向小节添加段落内容
            section.add(table);// 将表格添加到小节
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例417  在小节中添加图片
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\在小节中添加图片.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,
                    BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,
                    BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Font fontChinese3 = new Font(Chinese, 12, Font.NORMAL,
                    BaseColor.BLACK);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节", fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph, 1);// 创建章节对象
            paragraph = new Paragraph("小节", fontChinese2);// 创建段落对象
            Section section = chapter.addSection(paragraph);// 创建并加入小节对象
            paragraph = new Paragraph("\n小节中添加的图片如下:\n\n", fontChinese3);// 创建段落对象
            section.add(paragraph);// 向小节添加段落
            Image image = Image.getInstance("image/image.jpg");// 定义图片信息
            image.scalePercent(40);// 设置图片的显示百分比
            section.add(image);// 向小节添加图片
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

13.5  读取PDF文档
实例418  文本文件转换为PDF文档
TextFileToPdf.java
    public static void main(String[] args) {
        // 将文本文件oldTextFile.txt转换为PDF文件newPdfFile.pdf
        txtFileToPdfFile("textFile\\oldTextFile.txt", "C:\\newPdfFile.pdf");
    }

    /**
     * 将文本文件转换为PDF文件的方法
     * @param txtFile 原文本文件的路径
     * @param pdfFile 生成pdf文件的路径
     */
    private static void txtFileToPdfFile(String txtFile, String pdfFile) {
        Document doc = new Document();// 创建文档对象
        try {
            FileReader fileRead = new FileReader(txtFile);// 创建字符流对象
            BufferedReader read = new BufferedReader(fileRead);// 创建字符缓冲流对象
            PdfWriter.getInstance(doc, new FileOutputStream(pdfFile));// 关联文档和输出流对象
            doc.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font fontChinese = new Font(Chinese, 18, Font.BOLDITALIC,
                    BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            String line = null;// 存储从文本文件中读取的内容
            while ((line = read.readLine()) != null) {// 读取一行信息
                doc.add(new Paragraph(line, fontChinese));// 将读取的信息添加到文档中
            }
            doc.close();// 关闭文档对象
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
demo.txt
这是一个美丽的故事
这是一个神奇的传说
在很久很久以前,有一个......

实例419  读取PDF文档
    public static void main(String[] args) throws MalformedURLException {
        Document document = new Document();// 创建文档对象
        File file = new File("c:\\创建第一个PDF文档.pdf");// 创建File对象
        try {
            FileInputStream in = new FileInputStream(file);// 创建输入流对象
            PDFParser parser = new PDFParser(in);// 创建PDF解析器
            parser.parse();// 解析PDF文档
            PDDocument pdfdocument = parser.getPDDocument();// 获得解析后的PDF文档
            PDFTextStripper stripper = new PDFTextStripper();// 创建PDF文本剥离器
            String msg = stripper.getText(pdfdocument);// 使用剥离器从PDF文档中剥离文本信息
            System.out.println("请取到的PDF文本信息如下:\n" + msg);// 输出信息
            in.close();// 关闭输入流对象
        } catch (Exception e) {
            e.printStackTrace();
        }
        document.close();// 关闭文档
    }

实例420  读取加密的PDF文档
    public static void main(String[] args) throws MalformedURLException {
        try {
            PdfReader reader = new PdfReader("c:\\设置密码.pdf", "123".getBytes());// 创建“水印.pdf”的PdfReader对象
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
                    "c:\\TempFile.pdf"));// 创建PdfStamper对象
            stamp.close();// 关闭PdfStamper对象,并将从“设置密码.pdf”中读取的内容写入“TempFile.pdf”
            Document document = new Document();// 创建文档对象
            File file = new File("c:\\TempFile.pdf");// 创建File对象
            try {
                FileInputStream in = new FileInputStream(file);// 创建输入流对象
                PDFParser parser = new PDFParser(in);// 创建PDF
                parser.parse();// 解析PDF文档
                PDDocument pdfdocument = parser.getPDDocument();// 获得解析后的PDF文档
                PDFTextStripper stripper = new PDFTextStripper();// 创建PDF文本剥离器
                String msg = stripper.getText(pdfdocument);// 使用剥离器从PDF文档中剥离文本信息
                System.out.println("请取到加密的PDF文本信息如下:\n" + msg);// 输出信息
                in.close();// 关闭输入流对象
            } catch (Exception e) {
                e.printStackTrace();
            }
            document.close();// 关闭文档
            file.delete();// 删除“TempFile.pdf”
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例421  编辑PDF文档
    public static void main(String[] args) {
        createOldFile();// 创建原文件
        editOldFile();// 编辑原文件
    }

    public static void createOldFile() {// 创建原文件的方法
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter
                    .getInstance(document, new FileOutputStream("c:\\原文档.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            document.add(new Paragraph("First")); // 向文档中添加内容
            document.newPage();
            document.add(new Paragraph("Second")); // 向文档中添加内容
            document.newPage();
            document.add(new Paragraph("Third")); // 向文档中添加内容
            document.close();// 关闭文档对象
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

    public static void editOldFile() {// 编辑原文件的方法
        try {
            PdfReader reader = new PdfReader("c:\\原文档.pdf");// 创建“原文档.pdf”的PdfReader对象
            int totalPages = reader.getNumberOfPages();// 获得总页数
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
                    "c:\\编辑后文档的临时文件.pdf"));// 创建PdfStamper对象
            BaseFont chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义字体
            PdfContentByte under = null;
            for (int i = 1; i <= totalPages; i++) {
                under = stamp.getUnderContent(i);// 获得每一页的内容
                under.beginText();// 标记文本开始
                under.setFontAndSize(chinese, 18);// 设置字体和字号
                under.setTextMatrix(200, 810);// 设置页码的显示位置
                under.showText("第" + i + "页");// 添加页脚
                under.endText();// 标记文本结束
                under.beginText();// 标记文本开始
                under.setFontAndSize(chinese, 32);// 设置字体和字号
                under.setTextMatrix(100, 750);// 设置文本的显示位置
                under.showText("新添加的内容" + i);// 添加新文本
                under.endText();// 标记文本结束
            }
            stamp.close();// PdfStamper对象,将从“原文档.pdf”中读取的文档添加页码后写入“编辑后文档的临时文件.pdf”
            File oldFile = new File("c:\\原文档.pdf");// 创建原文件的File对象
            oldFile.delete();// 删除原文件
            File tempFile = new File("c:\\编辑后文档的临时文件.pdf");// 创建临时文件的File对象
            tempFile.renameTo(oldFile);// 重命名临时文件为原文件名
            tempFile.delete();// 删除临时文件
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例422  导入已有文档
    public static void main(String[] args) {
        try {
            PdfReader reader = new PdfReader("c:\\newPdfFile.pdf");// 创建已有文档的PdfReader对象
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
                    "c:\\导入已有文档.pdf"));// 关联已有文档与输出流
            stamp.close();// 关闭PdfStamper对象,完成文档导入功能
            JOptionPane.showMessageDialog(null, "导入成功...\n完成已有文档的导入。");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例423  导入并添加页码
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\页码.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            document.add(new Paragraph("No. 1 page")); // 向文档中添加内容
            document.newPage();
            document.add(new Paragraph("No. 2 page")); // 向文档中添加内容
            document.close();// 关闭文档对象
            PdfReader reader = new PdfReader("c:\\页码.pdf");// 创建“页码.pdf”的PdfReader对象
            int totalPages = reader.getNumberOfPages();
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
                    "c:\\导入并添加页码.pdf"));// 创建PdfStamper对象
            BaseFont chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义字体
            PdfContentByte under = null;
            for (int i = 1; i <= totalPages; i++) {
                under = stamp.getUnderContent(i);// 获得每一页的内容
                under.beginText();// 标记文本开始
                under.setFontAndSize(chinese, 18);// 设置字体和字号
                under.setTextMatrix(280, 15);// 设置页码的显示位置
                under.showText("第" + i + "页");// 添加页脚
                under.endText();// 标记文本结束
            }
            stamp.close();// PdfStamper对象,将从“页码.pdf”中读取的文档添加页码后写入“添加页码.pdf”
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例424  导入并添加水印
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("c:\\水印.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            document.add(new Paragraph("No. One.")); // 向文档中添加内容
            document.add(new Paragraph("No. Two.")); // 向文档中添加内容
            document.add(new Paragraph("No. Three.")); // 向文档中添加内容
            document.add(new Paragraph("No. Four.")); // 向文档中添加内容
            document.add(new Paragraph("No. Five.")); // 向文档中添加内容
            document.close();// 关闭文档对象
            PdfReader reader = new PdfReader("c:\\水印.pdf");// 创建“水印.pdf”的PdfReader对象
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("c:\\导入并添加水印.pdf"));// 创建PdfStamper对象
            Image img = Image.getInstance("image/watermark.jpg");// 写上内容
            img.setAbsolutePosition(30, 385);// 定位图片对象
            PdfContentByte under = stamp.getUnderContent(1);// 获得第一页的内容
            under.addImage(img);// 添加图片,完成水印功能
            stamp.close();// PdfStamper对象,将从“水印.pdf”中读取的文档添加水印后写入“导入并添加水印.pdf”
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例425  导入并添加新页和内容
    public static void main(String[] args) {
        try {
            PdfReader reader = new PdfReader("c:\\创建第一个PDF文档.pdf");// 导入文档
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
                    "c:\\导入并添加新页和内容.pdf"));// 关联文档与输出流
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            PdfContentByte cb = stamp.getOverContent(1);// 获取第一页内容
            cb.beginText();// 写内容
            cb.setFontAndSize(Chinese, 25);// 设置字体属性
            cb.setTextMatrix(15, 15);// 设置矩阵(坐标)
            cb.showText("第一页");// 矩阵处显示文本
            cb.showTextAligned(Element.ALIGN_CENTER, "新增的内容。", 180, 760, 0);// 设置文本对齐,内容,位置和旋转角度
            cb.endText();// 内容结束
            stamp.insertPage(2, PageSize.A4);// 增加新页
            cb = stamp.getOverContent(2);// 获取第2页内容
            cb.beginText();// 写内容
            cb.setFontAndSize(Chinese, 20);// 设置字体属性
            cb.showTextAligned(Element.ALIGN_LEFT, "在新增的页中添加的内容。", 100, 600, 0);// 设置文本对齐,内容,位置和旋转角度
            cb.endText();// 内容结束
            stamp.close();// 关闭
        } catch (IOException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例426  拆分PDF文档
    public static void main(String[] args) {
        String filePathFile = "c:\\原文档.pdf ";// 需要拆分的原文档
        PdfReader reader = null;// 声明PdfReader对象
        try {
            reader = new PdfReader(filePathFile);// 创建PdfReader对象
        } catch (IOException e) {
            e.printStackTrace();
        }
        int pageN = reader.getNumberOfPages();// 获取文件内的页数
        for (int i = 0; i < pageN; i++) {// 循环向外拆分页
            Document document = new Document(reader
                    .getPageSizeWithRotation(i + 1));// 创建文档 同时获得前面循环的页
            PdfCopy copy = null;
            try {
                int len = filePathFile.length();// 获得文件完整路径的长度
                String noExt = filePathFile.substring(0, len - 5);// 去除文件扩展名后的路径
                String fileName = noExt + "-" + (i + 1) + ".pdf";// 拆分后生成的文件名称
                copy = new PdfCopy(document, new FileOutputStream(fileName));// 创建拷贝并关联文档与输出流对象
                document.open();// 打开文档
                copy.addPage(copy.getImportedPage(reader, i + 1));// 根据获得的页创建新文档
                document.close();// 关闭文档
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (DocumentException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

实例427  合并PDF文档
    public static void main(String[] args) {
        String[] subFiles = { "c:\\原文档-1.pdf", "c:\\原文档-2.pdf", "c:\\原文档-3.pdf" }; // 待合并的PDF文档
        String newFile = "C:\\合并结果.pdf";// 合并后的新文档
        Document document = new Document();// 创建文本文档
        try {
            PdfCopy copy = new PdfCopy(document, new FileOutputStream(newFile));// 创建copy对象关联文档与输出流
            document.open();// 打开文档
            for (int i = 0; i < subFiles.length; i++) {// 做循环 获取待合并文件长度
                PdfReader reader = new PdfReader(subFiles[i]);// 读取待合并文件长度
                int totalPages = reader.getNumberOfPages();// 获得每个子文档的总页数
                for (int p = 1; p <= totalPages; p++) {// 遍历子文档的每一页
                    copy.addPage(copy.getImportedPage(reader, p));// 将子文档的每一页都添加到新文档中
                }
            }
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例428  打印PDF文档
    public static void main(String args[]) throws IOException,
            IllegalArgumentException, PrinterException {
        PrinterJob job = PrinterJob.getPrinterJob();// 创建打印作业
        PDDocument document = PDDocument.load("创建表格.pdf");// 获取待打印的文档
        Printable printable = new PDPageable(document);// 创建Printable对象
        job.setPrintable(printable);// 设置打印工作
        job.print();// 打印
    }

第14章  绘制PDF图形和图像
14.1  绘制图形
实例429  在PDF文档中绘制直线
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\绘制直线.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取内容
            cb.moveTo(50, 780); // 绘制起点坐标
            cb.lineTo(260, 780); // 绘制终点坐标
            cb.stroke(); // 确认直线的绘制
            cb.moveTo(50, 750);
            cb.lineTo(260, 750);
            cb.stroke();
            cb.moveTo(50, 720);
            cb.lineTo(260, 720);
            cb.stroke();
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例430  在PDF文档中绘制矩形
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\绘制矩形.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取内容
            cb.rectangle(50, 650, 200, 150); // 绘制矩形
            cb.stroke();// 确认绘制的矩形
            cb.rectangle(70, 675, 160, 100); // 绘制矩形
            cb.stroke();// 确认绘制的矩形
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例431  在PDF文档中绘制圆
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\绘制圆形.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取内容
            cb.circle(120, 720, 80); // 绘制圆形
            cb.stroke();// 确认绘制的圆形
            cb.circle(120, 720, 40); // 绘制圆形
            cb.fill();// 填充圆形
            cb.fillStroke();// 确认绘制的填充圆形
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例432  使用Graphics2D绘制图形
    public static void main(String[] args) throws MalformedURLException {
        Document document = new Document(); // 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\使用Graphics2D绘制图形.pdf"));// 关联文档对象与输出流
            document.open(); // 打开文档
            PdfContentByte cb = writer.getDirectContent(); // 获取文档内容
            Graphics2D g = cb.createGraphics(850, 850); // 创建Graphics和坐标
            Rectangle2D rect1 = new Rectangle2D.Double(50, 50, 200, 150); // 创建矩形对象
            g.draw(rect1); // 绘制矩形
            Rectangle2D rect2 = new Rectangle2D.Double(70, 70, 160, 110); // 创建矩形对象
            g.fill(rect2); // 绘制填充矩形
            g.dispose(); // 部署
            cb.stroke(); // 确认绘制的图形
            document.close(); // 关闭文档
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例433  使用PdfGraphics2D绘制文本
   public static void main(String[] args) throws MalformedURLException {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\使用PdfGraphics2D绘制文本.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取文档内容
            PdfGraphics2D g = (PdfGraphics2D) cb.createGraphics(700, 800);// 获得PdfGraphics2D对象
            g.drawString("draw text. ", 54, 10);// 绘制文本
            g.drawString("second row text. ", 54, 30);// 绘制文本
            g.drawString("third row text. ", 54, 50);// 绘制文本
            g.dispose();// 部署
            cb.stroke();// 确认绘制的内容
            document.close();// 关闭文档
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例434  使用PdfGraphics2D绘制图形
    public static void main(String[] args) throws MalformedURLException {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\使用PdfGraphics2D绘制图形.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取文档内容
            PdfGraphics2D g = (PdfGraphics2D) cb.createGraphics(700, 800);// 创建Graphics和坐标
            Rectangle2D rect = new Rectangle2D.Double(120, 100, 200, 100);// 创建矩形对象
            Ellipse2D circle = new Ellipse2D.Double();// 创建圆
            circle.setFrameFromCenter(220, 80, 370, 150);// 设置圆形的中心点坐标和角点坐标
            g.draw(rect);// 绘制矩形对象
            g.draw(circle);// 绘制圆形对象
            g.dispose();// 部署
            cb.stroke();// 关闭
            document.close();// 关闭文档
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例435  使用PdfGraphics2D绘制有填充色的
    public static void main(String[] args) throws MalformedURLException {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\使用PdfGraphics2D绘制有填充色的图形.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取文档内容
            PdfGraphics2D g = (PdfGraphics2D) cb.createGraphics(700, 800);// 创建Graphics和坐标
            Rectangle2D rect = new Rectangle2D.Double(120, 130, 200, 100);// 创建矩形对象
            Ellipse2D circle = new Ellipse2D.Double();// 创建椭圆对象
            circle.setFrameFromCenter(220, 80, 370, 120);// 设置椭圆形的中心点坐标和角点坐标
            g.setColor(Color.BLUE);// 设置颜色
            g.fill(rect);// 绘制填充的矩形
            g.setColor(Color.PINK);// 设置颜色
            g.fill(circle);// 绘制填充的圆形
            g.dispose();// 部署
            cb.stroke();// 确认绘制图形
            document.close();// 关闭文档
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

图形
实例436  使用PdfGraphics2D旋转绘制的图形
    public static void main(String[] args) throws MalformedURLException {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\使用PdfGraphics2D旋转绘制的图形.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取文档内容
            PdfGraphics2D g = (PdfGraphics2D) cb.createGraphics(700, 800);// 创建PdfGraphics2D对象
            Rectangle2D rect = new Rectangle2D.Double(200, 200, 150, 200);// 创建矩形对象
            g.setColor(Color.BLUE);// 设置图形颜色
            g.rotate(20, 380, 150);// 旋转图形
            g.draw(rect);// 绘制矩形对象
            g.dispose();// 部署
            document.close();// 关闭文档
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例437  使用PdfGraphics2D缩放绘制的图形
    public static void main(String[] args) throws MalformedURLException {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\使用PdfGraphics2D缩放绘制的图形.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取文档内容
            PdfGraphics2D g = (PdfGraphics2D) cb.createGraphics(700, 800);// 创建Graphics和坐标
            Rectangle2D rect = new Rectangle2D.Double(50, 30, 120, 150);// 创建原矩形对象
            g.setColor(Color.BLUE);// 设置颜色
            g.fill(rect);// 绘制有填充色的图形
            rect = new Rectangle2D.Double(150, 30, 120, 150);// 创建与原矩形大小相同的矩形对象
            g.scale(1.4, 1.2f);// 缩放矩形对象
            g.setColor(Color.PINK);// 设置颜色
            g.fill(rect);// 绘制有填充色的图形
            g.dispose();// 部署
            cb.stroke();// 确认绘制内容
            document.close();// 关闭文档
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例438  使用PdfGraphics2D平移绘制的图形
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\使用PdfGraphics2D平移绘制的图形.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取文档内容
            PdfGraphics2D g = (PdfGraphics2D) cb.createGraphics(1200, 800);// 创建Graphics和坐标
            Rectangle2D rect = new Rectangle2D.Double(50, 30, 120, 150);// 创建原矩形对象
            g.setColor(Color.BLUE);// 设置颜色
            g.fill(rect);// 绘制有填充色的图形
            g.translate(150.0f, 1.0f);// 平移矩形对象
            g.setColor(Color.PINK);// 设置颜色
            g.fill(rect);// 绘制有填充色的图形
            g.dispose();// 部署
            cb.stroke();// 确认绘制内容
            document.close();// 关闭文档
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

14.2  绘制图像
实例439  添加图片
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\添加图片.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Image image = Image.getInstance("image/picture.jpg");// 创建图像对象
            document.add(image);// 向文档添加图片
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例440  设置图片对齐方式
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置图片对齐方式.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Image image = Image.getInstance("image/picture.jpg");// 创建图像对象
            image.setAlignment(Image.LEFT);// 设置图片居左
            image.scalePercent(25);// 设置原图像的比例
            document.add(image);// 向文档添加图片
            image = Image.getInstance("image/picture.jpg");// 创建图像对象
            image.setAlignment(Image.MIDDLE);// 设置图片居中
            image.scalePercent(30);// 设置原图像的比例
            document.add(image);// 向文档添加图片
            image = Image.getInstance("image/picture.jpg");// 创建图像对象
            image.setAlignment(Image.RIGHT);// 设置图片居右
            image.scalePercent(20);// 设置原图像的比例
            document.add(image);// 向文档添加图片
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例441  将图片设置为背景
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\将图片设置为背景.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont bfChinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(bfChinese, 50, Font.BOLD,
                    BaseColor.BLUE);// 实例化字体类与设置字体大小属性
            Paragraph p = new Paragraph("下面是背景图片", FontChinese);// 创建段落对象
            p.setSpacingBefore(60); // 设置段落上边距
            p.setAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
            Image image = Image.getInstance("image/gb.jpg");// 定义图片对象
            image.setAlignment(Image.UNDERLYING);// 将图片设置为背景
            document.add(image);// 向文档添加如片
            document.add(p);// 添加段落
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例442  设置文字环绕
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置文字环绕.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Image image = Image.getInstance("image/picture.jpg");// 创建图像对象
            image.scalePercent(33);// 设置原图像的比例
            image.setAlignment(Image.TEXTWRAP);// 将图片设置为文字环绕
            document.add(image);// 向文档添加图片
            StringBuffer sb = new StringBuffer();// 创建字符串缓存
            for (int i = 1; i <= 200; i++) {
                sb.append(i + " ");// 向字符串缓存中添加内容
            }
            Paragraph p = new Paragraph(sb.toString());// 创建段落对象
            document.add(p);// 将段落添加到文档中
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例443  设置图片大小
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置图片大小.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Image image = Image.getInstance("image/picture.jpg");// 创建图像对象
            image.setAlignment(Image.MIDDLE);// 居中显示图片
            image.scaleAbsolute(180, 120);// 设置图片新的宽度和高度
            document.add(image);// 向文档添加图片
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例444  调整图片比例
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\调整图片比例.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Image image = Image.getInstance("image/picture.jpg");// 创建图像对象
            image.scalePercent(30);// 调整图片的比例,使其大小为原图片的30%
            document.add(image);// 向文档添加图片
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例445  设置高度和宽度的比例
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置高度和宽度的比例.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Image image = Image.getInstance("image/picture.jpg");// 创建图像对象
            image.scalePercent(50, 40);// 设置宽度和高度比例分别为原图片的50%和40%
            document.add(image);// 向文档添加图片
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例446  旋转图片
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\旋转图片.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Image image = Image.getInstance("image/picture.jpg");// 创建图像对象
            image.setRotation(320);// 设置旋转弧度
            document.add(image);// 向文档添加图片
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例447  使用PdfGraphics2D绘制图片
    public static void main(String[] args) {
        Document document = new Document(); // 打开文档
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("c:\\使用PdfGraphics2D绘制图片.pdf"));// 关联文档与输出流
            document.open();// 打开文档
            PdfContentByte cb = writer.getDirectContent();// 获取文档内容
            PdfGraphics2D g = (PdfGraphics2D) cb.createGraphics(700, 800);// 创建PdfGraphics2D对象
            BufferedImage image = ImageIO.read(new File("image/picture.jpg"));// 获取图片
            g.drawImage(image, 50, 10, null);// 绘制图片
            g.dispose();// 部署
            cb.stroke();// 确认绘制的内容
            document.close();// 关闭文档
        } catch (IOException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

第15章  绘制PDF表格
15.1  Table表格
实例448  创建具有指定列数的表格
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\创建具有指定列数的表格.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont bfChinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基本字体
            Font fontChinese = new Font(bfChinese, 28, Font.NORMAL);// 实例化字体
            document.add(new com.lowagie.text.Paragraph("这是一个具有5列的表格",
                    fontChinese));// 向文档中添加内容
            Table table = new Table(5);// 创建一个5列的表格
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("1,1");
            table.addCell("1,2");
            table.addCell("1,3");
            table.addCell("1,4");
            table.addCell("1,5");
            table.addCell("2,1");
            table.addCell("2,2");
            table.addCell("2,3");
            table.addCell("2,4");
            table.addCell("2,5");
            document.add(table);// 将表格添加到文档中
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例449  创建具有指定行列数的表格
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\创建具有指定行列数的表格.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont bfChinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基本字体
            Font fontChinese = new Font(bfChinese, 28, Font.NORMAL);// 实例化字体
            document.add(new Paragraph("        这是一个3行3列的表格", fontChinese));
            Table table = new Table(3, 3);// 创建一个3行3列的表格
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("1,1");
            table.addCell("1,2");
            table.addCell("1,3");
            table.addCell("2,1");
            table.addCell("2,2");
            table.addCell("2,3");
            table.addCell("3,1");
            table.addCell("3,2");
            table.addCell("3,3");
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例450  设置表格的边框宽度
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置表格的边框宽度.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont bfChinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基本字体
            Font fontChinese = new Font(bfChinese, 12, Font.NORMAL);// 实例化字体
            Table table1 = new Table(3);// 定义表格
            document.add(new Paragraph("                默认边框的表格", fontChinese));// 创建段落
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table1.addCell("Cell1.1");
            table1.addCell("Cell1.2");
            table1.addCell("Cell1.3");
            table1.addCell("Cell2.1");
            table1.addCell("Cell2.2");
            table1.addCell("Cell2.3");
            Table table2 = new Table(3);// 定义表格
            table2.setBorderWidth(3);// 设置表格的外边框宽度
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table2.addCell("Cell1.1");
            table2.addCell("Cell1.2");
            table2.addCell("Cell1.3");
            table2.addCell("Cell2.1");
            table2.addCell("Cell2.2");
            table2.addCell("Cell2.3");
            document.add(table1);// 将表格添加到文档
            document.add(new Paragraph("                改变外边框宽度为3的表格",
                    fontChinese));// 创建段落
            document.add(table2);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例451  设置表格的边框颜色
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置表格的边框颜色.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont bfChinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font fontChinese = new Font(bfChinese, 12, Font.NORMAL);// 实例化字体
            Table table = new Table(3);// 定义表格
            document.add(new Paragraph("                  默认边框颜色的表格",
                    fontChinese));// 向文档添加内容
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("Cell1.1");
            table.addCell("Cell1.2");
            table.addCell("Cell1.3");
            table.addCell("Cell2.1");
            table.addCell("Cell2.2");
            table.addCell("Cell2.3");
            Table table1 = new Table(3);// 定义表格
            table1.setBorderColor(Color.BLUE);// 设置表格边框颜色
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table1.addCell("Cell1.1");
            table1.addCell("Cell1.2");
            table1.addCell("Cell1.3");
            table1.addCell("Cell2.1");
            table1.addCell("Cell2.2");
            table1.addCell("Cell2.3");
            document.add(table);// 将表格添加到文档
            document.add(new Paragraph("                  设置边框颜色后的表格",
                    fontChinese));// 向文档添加内容
            document.add(table1);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例452  设置单元格间距
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置单元格的间距.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont bfChinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font fontChinese = new Font(bfChinese, 12, Font.NORMAL);// 实例化字体
            Table table = new Table(3);// 定义表格
            document.add(new Paragraph("                默认的表格", fontChinese));// 向文档添加内容
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("Cell1.1");
            table.addCell("Cell1.2");
            table.addCell("Cell1.3");
            table.addCell("Cell2.1");
            table.addCell("Cell2.2");
            table.addCell("Cell2.3");
            Table table1 = new Table(3);// 定义表格
            table1.setSpacing(3);// 设置表格边框与单元格的间距
            table1.setBorderColor(Color.GREEN);// 设置表格边框颜色
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table1.addCell("Cell1.1");
            table1.addCell("Cell1.2");
            table1.addCell("Cell1.3");
            table1.addCell("Cell2.1");
            table1.addCell("Cell2.2");
            table1.addCell("Cell2.3");
            document.add(table);
            document.add(new Paragraph("                设置表格边框颜色与单元格的间距值为3",
                    fontChinese));// 向文档添加内容"
            document.add(table1);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例453  设置单元格填距
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置单元格填距.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont bfChinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font fontChinese = new Font(bfChinese, 12, Font.NORMAL);// 实例化字体
            Table table = new Table(3);// 定义表格
            document.add(new Paragraph("                 默认的表格", fontChinese));// 向文档添加内容
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("Cell1.1");
            table.addCell("Cell1.2");
            table.addCell("Cell1.3");
            table.addCell("Cell2.1");
            table.addCell("Cell2.2");
            table.addCell("Cell2.3");
            Table table1 = new Table(3);// 定义表格
            table1.setPadding(10f);// 设置表格边框与单元格的填距
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table1.addCell("Cell1.1");
            table1.addCell("Cell1.2");
            table1.addCell("Cell1.3");
            table1.addCell("Cell2.1");
            table1.addCell("Cell2.2");
            table1.addCell("Cell2.3");
            document.add(table);// 将表格添加到文档
            document
                    .add(new Paragraph(
                            "                 设置单元格的填距(即单元格边框与内容的间距)值为10",
                            fontChinese));// 向文档添加内容"
            document.add(table1);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例454  设置表格的表头
    public static void main(String[] args) {
        Cell cell0 = null;// 定义单元格
        Cell cell1 = null;
        Cell cell2 = null;
        Cell cell3 = null;
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置表格的表头.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 12, Font.NORMAL);// 实例化字体
            Table table = new Table(4);// 定义表格
            cell0 = new Cell(new Paragraph("编号", FontChinese));// 创建单元格
            cell0.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置横向居中对齐
            cell0.setVerticalAlignment(Element.ALIGN_CENTER);// 设置垂直居中对齐
            cell0.setBackgroundColor(Color.GRAY);// 设置背景颜色
            cell0.setHeader(true);// 将单元格设置为表头
            cell1 = new Cell(new Paragraph("姓名", FontChinese)); // 创建单元格
            cell1.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置横向居中对齐
            cell1.setVerticalAlignment(Element.ALIGN_CENTER);// 设置垂直居中对齐
            cell1.setBackgroundColor(Color.GRAY);// 设置背景颜色
            cell1.setHeader(true);// 将单元格设置为表头
            cell2 = new Cell(new Paragraph("年龄", FontChinese)); // 创建单元格
            cell2.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置横向居中对齐
            cell2.setVerticalAlignment(Element.ALIGN_CENTER);// 设置垂直居中对齐
            cell2.setBackgroundColor(Color.GRAY);// 设置背景颜色
            cell2.setHeader(true);// 将单元格设置为表头
            cell3 = new Cell(new Paragraph("电话", FontChinese)); // 创建单元格
            cell3.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置横向居中对齐
            cell3.setVerticalAlignment(Element.ALIGN_CENTER);// 设置垂直居中对齐
            cell3.setBackgroundColor(Color.GRAY);// 设置背景颜色
            cell3.setHeader(true);// 将单元格设置为表头
            // 向表格添加单元格
            table.addCell(cell0);
            table.addCell(cell1);
            table.addCell(cell2);
            table.addCell(cell3);
            table.setPadding(4);// 设置内容与单元格间距
            for (int i = 1; i <= 3; i++) {// 向表格的单元格添加内容
                table.addCell(new Paragraph("95**0" + i));
                table.addCell(new Paragraph("李*辉", FontChinese));
                table.addCell(new Paragraph("30"));
                table.addCell(new Paragraph("0431-2222****"));
            }
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例455  设置单元格所占的列数
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置单元格所占的列数.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 10, Font.NORMAL, Color.red);// 实例化字体
            Table table = new Table(5);// 定义表格
            table.addCell("1,1");// 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("2,1");
            Cell cell = new Cell(new Paragraph("我占据2列", FontChinese));// 定义一个表格单元
            cell.setColspan(2);// 设置表格列跨度(合并两个单元格)
            table.addCell(cell); // 将单元加入到表格
            table.addCell("2,1");// 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("2,2");
            table.addCell("3,2");
            table.addCell("1,3");
            table.addCell("2,3");
            table.addCell("3,3");
            Cell cell2 = new Cell(new Paragraph("我占据4列 ", FontChinese));// 定义一个表格单元
            cell2.setColspan(4);// 设置表格列跨度(合并4个单元格)
            table.addCell(cell2); // 将单元加入到表格
            table.addCell("3,1"); // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("2,1");
            table.addCell("2,2");
            table.addCell("3,2");
            table.addCell("1,3");
            table.addCell("3,3");
            table.addCell("1,3");
            Cell cell3 = new Cell(new Paragraph("我占据3列 ", FontChinese));// 定义一个表格单元
            cell3.setColspan(3);// 设置表格列跨度(合并3个单元格)
            table.addCell(cell3); // 将单元加入到表格
            table.addCell("2,3");
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例456  设置单元格所占的行数
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置单元格所占的行数.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 10, Font.NORMAL, Color.red);// 实例化字体
            Table table = new Table(5);// 定义表格
            table.addCell("1.1");// 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("2.1");
            Cell cell = new Cell(new Paragraph("我占据4行", FontChinese));// 定义一个表格单元
            cell.setRowspan(4);// 设置表格行跨度(合并4个单元格)
            table.addCell(cell); // 将单元加入到表格
            table.addCell("2.1"); // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("2.2");
            table.addCell("3.2");
            table.addCell("1.3");
            table.addCell("2.3");
            table.addCell("3.3");
            Cell cell2 = new Cell(new Paragraph("我占据3行 ", FontChinese));// 定义一个表格单元
            cell2.setRowspan(3);// 设置表格行跨度(合并3个单元格)
            table.addCell(cell2); // 将单元加入到表格
            table.addCell("3.1"); // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("2.1");
            table.addCell("2.2");
            table.addCell("3.2");
            table.addCell("1.3");
            table.addCell("2.3");
            table.addCell("3.3");
            table.addCell("1.3");
            table.addCell("2.3");
            table.addCell("3.3");
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例457  设置单元格的背景色
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置单元格的背景色.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 12, Font.NORMAL);// 实例化字体
            document
                    .add(new Paragraph("                 为单元格填充颜色", FontChinese));
            Table table = new Table(5);// 定义表格
            table.addCell("1.1");// 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("2.1");
            table.addCell("3.1");
            table.addCell("2.1");
            table.addCell("2.2");
            Cell cell = new Cell();// 创建单元格
            cell.setBackgroundColor(Color.yellow);// 为单元格填充背景色
            table.addCell(cell); // 将单元格填入到表格
            table.addCell("1.3");
            table.addCell("2.3");
            Cell cell2 = new Cell();// 创建单元格
            cell2.setBackgroundColor(Color.red);// 为单元格填充背景色
            table.addCell(cell2);
            table.addCell("3.0");
            table.addCell("3.1");
            table.addCell("2.1");
            Cell cell3 = new Cell();// 创建单元格
            cell3.setBackgroundColor(Color.green);// 为单元格填充背景色
            table.addCell(cell3);
            table.addCell("3.2");
            table.addCell("1.3");
            table.addCell("2.3");
            Cell cell4 = new Cell();// 创建单元格
            cell4.setBackgroundColor(Color.red);// 为单元格填充背景色
            table.addCell(cell4); // 将单元格填入到表格
            table.addCell("2.1");
            table.addCell("2.2");
            Cell cell5 = new Cell();// 创建单元格
            cell5.setBackgroundColor(Color.blue);// 为单元格填充背景色
            table.addCell(cell5); // 将单元格填入到表格
            table.addCell("1.3");
            table.addCell("2.3");
            table.addCell("3.3");
            table.addCell("3.0");
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例458  嵌套表格
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\嵌套表格.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 10, Font.BOLDITALIC,
                    Color.BLUE);// 实例化字体
            Font font = new Font(Chinese, 10, Font.NORMAL);
            Table table1 = new Table(3);// 创建表格
            Cell cell = new Cell(new Paragraph("嵌入的表一", FontChinese));// 创建单元格
            cell.setColspan(3);// 设置列跨度
            // 单元格添入到表格行满自动换行
            table1.addCell(cell);
            table1.addCell(new Paragraph("表一 0.0", FontChinese));
            table1.addCell(new Paragraph("表一 0.1", FontChinese));
            table1.addCell(new Paragraph("表一 0.2", FontChinese));
            table1.addCell(new Paragraph("表一 1.0", FontChinese));
            table1.addCell(new Paragraph("表一 1.1", FontChinese));
            table1.addCell(new Paragraph("表一 1.2", FontChinese));
            Table table2 = new Table(2);// 创建表格
            // 单元格添入到表格,行满自动换行
            table2.addCell(new Paragraph("表二 0.0", FontChinese));
            table2.addCell(new Paragraph("表二0.1", FontChinese));
            table2.addCell(new Paragraph("表二 1.0", FontChinese));
            table2.addCell(new Paragraph("表二 1.1", FontChinese));
            Cell tableCell = new Cell(new Paragraph("使用Cell嵌入的表二", FontChinese));// 创建一个单元格
            tableCell.add(table2);// 将表格添加到单元格
            Table table3 = new Table(5, 5);// 创建5行5列的原表
            table3.insertTable(table1); // 将第一个表格嵌入到原表中第一列
            // 单元格添入到表格行满自动换行
            table3.addCell(new Paragraph("原表1.1", font));
            table3.addCell(new Paragraph("原表1.2", font));
            table3.addCell(new Paragraph("原表1.3", font));
            table3.setPadding(5);// 设置填充值为5
            table3.addCell(tableCell);// 添加单元格,实现第二个表格的嵌入
            document.add(table3);// 向文档中添加原表
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例459  偏移表格
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\偏移表格.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 10, Font.NORMAL);// 实例化字体
            Table table = new Table(3);// 创建表格
            table.setBorderWidth(1);// 设置表格边框宽度
            table.setBorderColor(Color.blue);// 设置表格边框颜色
            table.setSpacing(5);// 设置表格与单元格的间距
            table.setPadding(5);// 设置单元格与内容的间距
            table.addCell("1.1");// 添加单元格
            table.addCell("1.2");
            table.addCell("1.3");
            document
                    .add(new Paragraph("                     原表格。", FontChinese));// 向文档添加内容
            document.add(table);// 向文档添加表格
            document.add(new Paragraph("                     默认的距离。",
                    FontChinese));
            document.add(table);
            document.add(new Paragraph("                     设置表格偏移值为0的距离。",
                    FontChinese));
            table.setOffset(0);// 设置表格偏移数值
            document.add(table);
            document.add(new Paragraph("                     设置表格偏移值为-15的距离。",
                    FontChinese));
            table.setOffset(-15);// 设置表格偏移数值
            document.add(table);
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

15.2  PdfPTable表格
实例460  创建表格
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\创建表格.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 12, Font.NORMAL);// 实例化字体
            PdfPTable table = new PdfPTable(3);// 创建表格
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("1.1");
            table.addCell("1.2");
            table.addCell("1.3");
            table.addCell("2.1");
            table.addCell("2.2");
            table.addCell("2.3");
            table.addCell("3.1");
            table.addCell("3.2");
            table.addCell("3.3");
            document.add(new Paragraph("                    这是一个3行3列的表格\n.",
                    FontChinese));// 向文档添加内容
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例461  设置表格宽度
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置表格宽度.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            float[] widths = { 0.05f, 0.10f, 0.30f, 0.55f };// 设置列宽相关比率为5%,10%,30%,55%
            PdfPTable table = new PdfPTable(widths);// 创建表格关联列宽
            table.setWidthPercentage(60);// 为表格设置百分比宽度
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("5%");
            table.addCell("10%");
            table.addCell("30%");
            table.addCell("55%");
            table.addCell("w");
            table.addCell("1");
            table.addCell("2");
            table.addCell("3");
            table.addCell("h");
            table.addCell("1");
            table.addCell("2");
            table.addCell("3");
            table.addCell("s");
            table.addCell("1");
            table.addCell("2");
            table.addCell("3");
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例462  设置表格对齐方式
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置表格对齐方式.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 10, Font.BOLD);// 实例化字体
            PdfPTable table = new PdfPTable(3);// 定义表格
            table.setTotalWidth(200);// 设置表格宽度为200
            table.setLockedWidth(true);
            PdfPCell cell = new PdfPCell(new Paragraph("new table colspan 3"));// 定义一个表格单元
            cell.setColspan(3);// 设置表格跨度
            table.addCell(cell);// 将单元加入到表格
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell("1.1");
            table.addCell("2.1");
            table.addCell("3.1");
            table.setHorizontalAlignment(Element.ALIGN_LEFT);// 设置水平对齐方式 居左
            
            PdfPTable table1 = new PdfPTable(3);// 定义表格
            table1.setTotalWidth(200);// 设置表格宽度为200
            table1.setLockedWidth(true);
            PdfPCell cell2 = new PdfPCell(new Paragraph("new table colspan 3"));// 定义一个表格单元
            cell2.setColspan(3);// 设置表格跨度
            table1.addCell(cell2);// 将单元加入到表格
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table1.addCell("1.1");
            table1.addCell("2.1");
            table1.addCell("3.1");
            table1.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置水平对齐方式 居中
            PdfPTable table2 = new PdfPTable(3);// 定义表格
            table2.setTotalWidth(200);// 设置表格宽度为200
            table2.setLockedWidth(true);
            PdfPCell cell3 = new PdfPCell(new Paragraph("new table colspan 3"));// 定义一个表格单元
            cell3.setColspan(3);// 设置表格跨度
            table2.addCell(cell2);// 将单元加入到表格
            // 将单元格顺次的加入到表格,当一行充满时自动换行
            table2.addCell("1.1");
            table2.addCell("2.1");
            table2.addCell("3.1");
            table2.setHorizontalAlignment(Element.ALIGN_RIGHT);// 设置水平对齐方式 居右
            Paragraph p = new Paragraph("表格居左对齐\n\n", FontChinese);
            p.setAlignment(Element.ALIGN_LEFT);
            document.add(p);// 向文档添加内容
            document.add(table);// 将表格添加到文档
            Paragraph p2 = new Paragraph("表格居中对齐\n\n", FontChinese);
            p2.setAlignment(Element.ALIGN_CENTER);
            document.add(p2);// 向文档添加内容
            document.add(table1);// 将表格添加到文档
            Paragraph p3 = new Paragraph("表格居右对齐\n\n", FontChinese);
            p3.setAlignment(Element.ALIGN_RIGHT);
            document.add(p3);// 向文档添加内容
            document.add(table2);// 将表格添加到文档
            
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例463  设置表格的列宽
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置表格的列宽.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 10, Font.NORMAL,
                    new BaseColor(90, 90, 90));// 实例化字体
            float[] widths = { 0.05f, 0.10f, 0.30f, 0.55f };// 设置列宽相对比例为
                                                            // 5%,10%,30%,55%
            PdfPTable table = new PdfPTable(widths);// 创建表格关联列宽
            table.addCell(new Paragraph("列宽为5%", FontChinese));// 将单元格顺次的加入到表格,当一行充满时自动换行
            table.addCell(new Paragraph("列宽为10%", FontChinese));
            table.addCell(new Paragraph("列宽为30%", FontChinese));
            table.addCell(new Paragraph("列宽为55%", FontChinese));
            table.addCell("w");
            table.addCell("1");
            table.addCell("2");
            table.addCell("3");
            table.addCell("h");
            table.addCell("1");
            table.addCell("2");
            table.addCell("3");
            table.addCell("s");
            table.addCell("1");
            table.addCell("2");
            table.addCell("3");
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例464  设置绝对宽度
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置绝对宽度.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font FontChinese = new Font(Chinese, 10, Font.NORMAL);// 实例化字体
            PdfPTable table1 = new PdfPTable(3);// 定义表格
            PdfPCell cell1 = new PdfPCell(new Paragraph("new table colspan 3"));// 定义一个表格单元
            cell1.setColspan(3);// 设置表格跨度
            table1.addCell(cell1);// 将单元加入到表格
            table1.addCell("1.1");// 将单元格顺次的加入到表格,当一行充满时自动换行
            table1.addCell("2.1");
            table1.addCell("3.1");
            table1.addCell("1.2");
            table1.addCell("2.2");
            table1.addCell("3.2");
            table1.addCell("1.3");
            table1.addCell("2.3");
            table1.addCell("3.3");
            PdfPTable table2 = new PdfPTable(3);// 定义表格
            PdfPCell cell2 = new PdfPCell(new Paragraph("new table colspan 3"));// 定义一个表格单元
            cell2.setColspan(3);// 设置表格跨度
            table2.addCell(cell2);// 将单元加入到表格
            table2.addCell("1.1");// 将单元格顺次的加入到表格,当一行充满时自动换行
            table2.addCell("2.1");
            table2.addCell("3.1");
            table2.addCell("1.2");
            table2.addCell("2.2");
            table2.addCell("3.2");
            table2.addCell("1.3");
            table2.addCell("2.3");
            table2.addCell("3.3");
            table2.setTotalWidth(200);// 设置表格宽度为200
            table2.setLockedWidth(true);// 锁定宽度
            document.add(new Paragraph("                  默认的表格\n\n", FontChinese));
            document.add(table1);// 将表格添加到文档
            document.add(new Paragraph("                  设置表格宽度200",
                    FontChinese));
            document.add(table2);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例465  嵌套表格
    public static void main(String[] args) {
        
        try {
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream(
                    "c:\\Pdf嵌套表格.pdf"));
            document.open();// 打开文档
            PdfPTable table = new PdfPTable(4);// 创建表格对象
            PdfPTable table1 = new PdfPTable(2);// 创建表格对象
            table1.addCell("1.1");// 添加单元格内容
            table1.addCell("1.2");// 添加单元格内容
            PdfPTable table2 = new PdfPTable(1);// 创建表格对象
            table2.addCell("2.1");// 添加单元格内容
            table2.addCell("2.2");// 添加单元格内容
            table.addCell("table1");// 添加单元格内容
            table.addCell("table2");// 添加单元格内容
            table.addCell("text");// 添加单元格内容
            table.addCell("text");// 添加单元格内容
            table.addCell(table1);// 添加嵌套的表格
            table.addCell(table2);// 添加嵌套的表格
            table.addCell("cell");// 添加单元格内容
            table.addCell("cell");// 添加单元格内容
            document.add(table);// 将表格添加到文档中
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例466  在表格中添加图片
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\在表格中添加图片.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            Image image = Image.getInstance("image/picture.jpg");// 创建图像对象
            PdfPTable table = new PdfPTable(3);// 定义表格
            table.addCell("Text");// 添加单元格内容
            table.addCell("Picture");// 添加单元格内容
            table.addCell("Text");// 添加单元格内容
            table.addCell("This is a cell.");// 添加单元格内容
            table.addCell(image);// 向单元格中添加图像对象
            table.addCell("This is a cell.");// 添加单元格内容
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例467  设置单元格的高度
    public static void main(String[] args) {
        
        try {
            Font font = FontFactory.getFont("COURIER", 10, Font.BOLD);// 定义一个字体
            Font xfont = FontFactory.getFont("HELVETICA", 10, Font.BOLD);// 定义一个字体
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置单元格的高度.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfPTable table = new PdfPTable(2);// 定义表格
            table.getDefaultCell().setBackgroundColor(BaseColor.ORANGE);
            table.addCell(new Paragraph("default height", xfont));// 向表格添加单元格
            PdfPCell cell = new PdfPCell(new Paragraph("AAA", font));// 定义一个表格单元
            table.addCell(cell);// 向表格添加单元格
            table.addCell(new Paragraph("set height", xfont));
            PdfPCell cell2 = new PdfPCell(new Paragraph("ABC", font));// 定义单元格
            cell2.setFixedHeight(60);// 设置单元格高度为60
            table.addCell(cell2);// 将单元加入到表格
            table.addCell(new Paragraph("minimum height", xfont));
            PdfPCell cell3 = new PdfPCell(new Paragraph(
                    "A cat may look at a king.", font));// 定义单元格
            cell3.setMinimumHeight(40);// 设置单元格高度为40
            table.addCell(cell3);// 将单元加入到表格
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例468  设置单元格的对齐方式
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置单元格的对齐方式.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfPTable table = new PdfPTable(2);// 定义表格
            Paragraph p = new Paragraph("I think Bale will win");// 定义段落和内容
            table.addCell("alignment left");// 向单元格添加内容
            PdfPCell cell = new PdfPCell(p);// 定义单元格
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);// 设置单元格水平向左对齐
            table.addCell(cell);
            table.addCell("alignment right");// 向单元格添加内容
            PdfPCell cell1 = new PdfPCell(p);// 定义单元格
            cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);// 设置单元格水平向右对齐
            table.addCell(cell1);
            table.addCell("alignment justified");// 向单元格添加内容
            PdfPCell cell2 = new PdfPCell(p);// 定义单元格
            cell2.setHorizontalAlignment(Element.ALIGN_JUSTIFIED);// 设置单元格为合理的对齐方式
            table.addCell(cell2);
            table.addCell("alignment center");// 向单元格添加内容
            PdfPCell cell3 = new PdfPCell(p);// 定义单元格
            cell3.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置单元格水平向中间对齐
            table.addCell(cell3);
            document.add(table);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例469  设置单元格的填充和行间距
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\设置单元格的填充和行间距.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            PdfPTable table = new PdfPTable(2);// 定义表格
            table.addCell("no Padding");// 向单元格添加内容
            table.addCell("MingRiCompany MingRi MingRiCompany");// 单元格填充前内容
            table.addCell("Set Padding");// 向单元格添加内容
            table.getDefaultCell().setPadding(24);// 向单元格设置填充24
            table.addCell("MingRi MingRiCompany");// 单元格填充后内容
            document.add(table);// 将表格添加到文档
            PdfPTable table1 = new PdfPTable(2);// 定义表格
            table1.addCell("no Leading");// 向单元格添加内容
            table1
                    .addCell("MingRi MingRi MingRiCompanyMingRiCompany MingRiCompany");// 添加行间距前内容
            table1.getDefaultCell().setLeading(12, 1);// 添加行间距
            table1.addCell("Set Leading");// 向单元格添加内容
            table1
                    .addCell("MingRi MingRi MingRiCompanyMingRiCompany MingRiCompany");// 添加行间距后内容
            document.add(table1);// 将表格添加到文档
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例470  行优先分页
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter.getInstance(document, new FileOutputStream(
                    "C:\\行优先分页.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            String[] data = { "C033010", "MX", "980", "350", "800", "999",
                    "655", "800", "23", "860" };// 定义数据信息
            PdfPTable table = new PdfPTable(10);// 定义表格
            int columnwidths[] = { 8, 3, 11, 10, 8, 6, 8, 12, 3, 6 };// 定义列宽
            table.setWidths(columnwidths);// 向表格添加列宽
            table.setWidthPercentage(100);// 向表格添加绝对宽度
            table.getDefaultCell().setPadding(3);// 设置单元格填充为3
            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);// 设置单元格居中对齐
            table.addCell("Number");// 将单元格内容顺次的加入到表格,当一行充满时自动换行
            table.addCell("Name");
            table.addCell("aggression");
            table.addCell("defend");
            table.addCell("reaction");
            table.addCell("shoot");
            table.addCell("header");
            table.addCell("bodybalance");
            table.addCell("age");
            table.addCell("speed");
            table.setHeaderRows(1);// 为表格每一页设置表头
            for (int i = 1; i < 100; i++) {// 循环向表格中添加100条记录
                if (i % 2 == 1) {
                    table.getDefaultCell().setBackgroundColor(
                            BaseColor.LIGHT_GRAY);// 填充颜色
                } else {
                    table.getDefaultCell().setBackgroundColor(BaseColor.WHITE);// 填充颜色
                }
                for (int x = 0; x < 10; x++) {
                    String var = data[x];// 获得数组中的数据
                    for (int y = 0; y < i; y++) {
                        var += "\n" + y;// 连接字符串生成单元格内容
                    }
                    table.addCell(var);// 为单元格添加内容
                }
            }
            document.add(table);// 向文档添加表格
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        
    }

实例471  页优先分页
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\页优先分页.pdf"));// 关联文档对象与输出流    
            document.open();// 打开文档
            String[] data = { "C033010", "MX", "980", "350", "800", "999",
                    "655", "800", "23", "860" };// 定义数据信息
            PdfPTable table = new PdfPTable(10);// 定义表格
            int columnwidths[] = { 8, 3, 11, 10, 8, 6, 8, 12, 3, 6 };// 定义列宽
            table.setWidths(columnwidths);// 向表格添加列宽
            table.setWidthPercentage(100);// 向表格添加绝对宽度
            table.getDefaultCell().setPadding(3);// 设置单元格填充为3
            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);// 设置单元格居中对齐
            table.addCell("Number");// 将单元格内容顺次的加入到表格,当一行充满时自动换行
            table.addCell("Name");
            table.addCell("aggression");
            table.addCell("defend");
            table.addCell("reaction");
            table.addCell("shoot");
            table.addCell("header");
            table.addCell("bodybalance");
            table.addCell("age");
            table.addCell("speed");
            table.setHeaderRows(1);// 为表格每一页设置表头
            for (int i = 1; i < 100; i++) {// 循环向表格中添加100条记录
                if (i % 2 == 1) {
                    table.getDefaultCell().setBackgroundColor(
                            BaseColor.LIGHT_GRAY);// 填充颜色
                } else {
                    table.getDefaultCell().setBackgroundColor(BaseColor.WHITE);// 填充颜色
                }
                for (int x = 0; x < 10; x++) {
                    String var = data[x];// 获得数组中的数据
                    for (int y = 0; y < i; y++) {
                        var += "\n" + y;// 连接字符串生成单元格内容
                    }
                    table.addCell(var);// 为单元格添加内容
                }
            }
             table.setSplitLate(false);// 设置表格行以页优先的方式显示
             document.add(table);// 向文档添加表格
             document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        
    }

实例472  强行在一页显示
    public static void main(String[] args) {
        
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream("C:\\强行在一页显示(可能会丢失数据).pdf"));// 关联文档对象与输出流    
            document.open();// 打开文档
            String[] data = { "C033010", "MX", "980", "350", "800", "999",
                    "655", "800", "23", "860" };// 定义数据信息
            PdfPTable table = new PdfPTable(10);// 定义表格
            int columnwidths[] = { 8, 3, 11, 10, 8, 6, 8, 12, 3, 6 };// 定义列宽
            table.setWidths(columnwidths);// 向表格添加列宽
            table.setWidthPercentage(100);// 向表格添加绝对宽度
            table.getDefaultCell().setPadding(3);// 设置单元格填充为3
            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);// 设置单元格居中对齐
            table.addCell("Number");// 将单元格内容顺次的加入到表格,当一行充满时自动换行
            table.addCell("Name");
            table.addCell("aggression");
            table.addCell("defend");
            table.addCell("reaction");
            table.addCell("shoot");
            table.addCell("header");
            table.addCell("bodybalance");
            table.addCell("age");
            table.addCell("speed");
            table.setHeaderRows(1);// 为表格每一页设置表头
            for (int i = 1; i < 100; i++) {// 循环向表格中添加100条记录
                if (i % 2 == 1) {
                    table.getDefaultCell().setBackgroundColor(
                            BaseColor.LIGHT_GRAY);// 填充颜色
                } else {
                    table.getDefaultCell().setBackgroundColor(BaseColor.WHITE);// 填充颜色
                }
                for (int x = 0; x < 10; x++) {
                    String var = data[x];// 获得数组中的数据
                    for (int y = 0; y < i; y++) {
                        var += "\n" + y;// 连接字符串生成单元格内容
                    }
                    table.addCell(var);// 为单元格添加内容
                }
            }
             table.setSplitRows(false);// 使行强行在一页显示,但是可能会丢失数据
             document.add(table);// 向文档添加表格
             document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        
    }

实例473  绝对定位表格
    public static void main(String[] args) {
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("c:\\绝对定位表格.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            float[] columnSize = { 21F, 21F, 21F };// 设置列宽
            PdfPTable table = null;
            PdfPCell cell = null;
            table = new PdfPTable(columnSize);// 定义新表格
            table.getDefaultCell().setBorder(1);// 设置表格边框宽度
            table.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置居中对齐
            table.setTotalWidth(500); // 设置总宽度500
            table.setLockedWidth(true); // 解锁
            cell = new PdfPCell(new Phrase("Add table"));// 定义单元格
            cell.setColspan(3);// 设置单元格跨度3
            table.addCell(cell);// 向表格添加单元格
            table.addCell(new PdfPCell(new Phrase("Add 001")));// 向表格添加内容
            table.addCell(new PdfPCell(new Phrase("Add 002")));// 向表格添加内容
            table.addCell(new PdfPCell(new Phrase("Add 003")));// 向表格添加内容
            document.add(table);// 向文档添加表格
            table = new PdfPTable(columnSize);
            // 定义新表格
            table.getDefaultCell().setBorder(1);// 设置表格边框宽度
            table.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置居中对齐
            table.setTotalWidth(500);// 设置总宽度500
            table.setLockedWidth(true);// 解锁
            cell = new PdfPCell(new Phrase("Table writeSelectedRows"));// 定义单元格
            cell.setColspan(columnSize.length);// 设置单元格跨度3
            table.addCell(cell); // 向表格添加单元格
            table.addCell(new PdfPCell(new Phrase("Add 004")));// 向表格添加内容
            table.addCell(new PdfPCell(new Phrase("Add 005")));// 向表格添加内容
            table.addCell(new PdfPCell(new Phrase("Add 006")));// 向表格添加内容
            table.writeSelectedRows(0, 2, 50, 750, writer.getDirectContent());// 在指定位置添加表格内容
            document.close();// 关闭文档
        } catch (DocumentException de) {
        } catch (IOException ioe) {
            
        }
    }

实例474  大表格的内存处理
    public static void main(String args[]) {
        int bigtablesize = 5;
        Document document = new Document();// 创建文档对象
        try {
            PdfWriter.getInstance(document, new FileOutputStream(
                    "c:\\大表格的内存处理.pdf"));// 关联文档对象与输出流
            document.open();// 打开文档
            
            BaseFont chinese = BaseFont.createFont("STSong-Light",
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体
            Font fontChinese1 = new Font(chinese, 10, Font.NORMAL,
                    new BaseColor(90, 90, 90));// 实例化字体类与设置字体大小属性
            Font fontChinese2 = new Font(chinese, 15, Font.NORMAL,
                    BaseColor.BLUE);// 实例化字体类与设置字体大小属性
            document.add(new Paragraph("大表格的内存管理\n\n", fontChinese2));
            float[] hw = { 0.1f, 0.2f, 0.1f, 0.2f, 0.1f, 0.3f };// 设置列宽
            PdfPTable table = new PdfPTable(hw);// 创建表格
            table.setHeaderRows(2);// 设置头排
            table.addCell("10%");// 将单元格内容顺次的加入到表格,当一行充满时自动换行
            table.addCell("20%");
            table.addCell("10%");
            table.addCell("20%");
            table.addCell("10%");
            table.addCell("30%");
            for (int i = 1; i <= 500; i++) {// 循环向表格中添加500条记录
                if (i % bigtablesize == 4) {// 求余
                    document.add(table);// 向文档添加表格
                    table.deleteBodyRows();// 删除多余行
                    table.setSkipFirstHeader(true);// 使表头始终保持在首行
                }
                PdfPCell cell0 = new PdfPCell(new Paragraph(String.valueOf(i),
                        fontChinese1));// 向单元格添加内容
                table.addCell(cell0);// 向表格添加单元格
                PdfPCell cell1 = new PdfPCell(new Paragraph("明日科技",
                        fontChinese1));// 向单元格添加内容
                table.addCell(cell1);// 向表格添加单元格
                PdfPCell cell2 = new PdfPCell(new Paragraph(String.valueOf(i),
                        fontChinese1));// 向单元格添加内容
                table.addCell(cell2);// 向表格添加单元格
                PdfPCell cell3 = new PdfPCell(new Paragraph("明日科技",
                        fontChinese1));// 向单元格添加内容
                table.addCell(cell3);// 向表格添加单元格
            }
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

第16章  设置阅读器参数
16.1  设置页面参数
实例475  只显示一个页面
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\只显示一个页面.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageLayoutSinglePage);// 设置阅读器只显示一个页面
            document.open();// 打开文档
            document.add(new Paragraph("PageLayoutSinglePage 1"));// 向文档中添加内容
            document.newPage();// 添加新页
            document.add(new Paragraph("PageLayoutSinglePage 2"));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }        
    }

实例476  单列显示
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\单列显示.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageLayoutOneColumn); // 设置阅读器单列显示
            document.open();// 打开文档
            document.add(new Paragraph("ShowOneColumn Page 1."));// 向文档中添加内容
            document.newPage();// 增加新页
            document.add(new Paragraph("ShowOneColumn Page 2."));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        
    }

实例477  双列显示奇页在左
    public static void main(String args[]) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\双列显示奇页在左.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft);// 设置阅读器双列显示奇页在左
            document.open();// 打开文档
            document.add(new Paragraph("This is Odd Page 1"));// 向文档中添加内容
            document.newPage();// 新增第二页
            document.add(new Paragraph("this is Even Page 2"));// 向文档中添加内容
            document.newPage();// 新增第三页
            document.add(new Paragraph("This is Odd Page 3"));// 向文档中添加内容
            document.newPage();// 新增第四页
            document.add(new Paragraph("This is Even Page 4"));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例478  双列显示奇页在右
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\双列显示奇页在右.pdf"));// 关联文档与输出流
            writer.setViewerPreferences(PdfWriter.PageLayoutTwoColumnRight);// 设置阅读器双列显示奇页在左
            document.open();// 打开文档
            document.add(new Paragraph("This is Odd Page 1"));// 向文档中添加内容
            document.newPage();// 新增第二页
            document.add(new Paragraph("this is Even Page 2"));// 向文档中添加内容
            document.newPage();// 新增第三页
            document.add(new Paragraph("This is Odd Page 3"));// 向文档中添加内容
            document.newPage();// 新增第四页
            document.add(new Paragraph("This is Even Page 4"));// 向文档中添加内容
            document.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }        
    }

实例479  显示大纲
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\显示大纲.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);// 设置阅读器显示大纲
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节一",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            paragraph = new Paragraph("小节二",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }        
    }

实例480  显示缩略图
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\显示缩略图.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageModeUseThumbs);// 设置阅读器显示缩略图
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节一",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            paragraph = new Paragraph("小节二",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }        
    }

实例481  不显示大纲和缩略图
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\不显示大纲和缩略图.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageModeUseNone);// 设置阅读器不显示大纲和缩略图
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节一",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            paragraph = new Paragraph("小节二",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }        
    }

实例482  全屏显示
    public static void main(String args[]) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\全屏显示.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageModeFullScreen);// 设置阅读器以全屏模式显示
            document.open();// 打开文档
            document.add(new Paragraph("PageModelFullScreen."));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

16.2  设置工具栏和全屏模式参数
实例483  显示和隐藏工具栏
    public static void main(String args[]) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\显示和隐藏工具栏.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.HideToolbar);// 设置阅读器隐藏工具栏
            document.open();// 打开文档
            document.add(new Paragraph("HideToolbar."));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例484  显示和隐藏菜单
    public static void main(String args[]) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\显示和隐藏菜单.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.HideMenubar);// 设置阅读器隐藏菜单
            document.open();// 打开文档
            document.add(new Paragraph("HideMenubar."));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例485  显示和隐藏页面元素
    public static void main(String args[]) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\显示和隐藏页面元素.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.HideWindowUI);// 设置阅读器隐藏界面元素
            document.open();// 打开文档
            for (int i = 1; i <= 100; i++) {
                document.add(new Paragraph("HideWindowUI Row " + i));// 向文档中添加段落内容
            }
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例486  使文档窗口适合显示第一页
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\使文档窗口适合显示第一页.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.FitWindow);// 设置阅读器适合显示第一页
            document.open();// 打开文档
            for (int i = 1; i <= 100; i++) {
                document.add(new Paragraph("Fit show Page 1. row " + i));// 向文档中添加段落内容
            }
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

实例487  在屏幕中央显示文档窗口
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\在屏幕中央显示文档窗口.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.CenterWindow);// 设置阅读器在屏幕中央显示
            document.open();// 打开文档
            document.add(new Paragraph("ShowCenterWindow"));// 向文档中添加内容
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }        
    }

实例488  全屏模式下显示大纲
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\全屏模式下显示大纲.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageModeFullScreen);// 设置为全屏模式
            writer
                    .setViewerPreferences(PdfWriter.NonFullScreenPageModeUseOutlines);// 设置阅读器在全屏模式下显示大纲
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节一",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            paragraph = new Paragraph("小节二",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }        
    }

实例489  全屏模式下显示缩略图
    public static void main(String args[]) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\全屏模式下显示缩略图.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageModeFullScreen);// 设置为全屏模式
            writer
                    .setViewerPreferences(PdfWriter.NonFullScreenPageModeUseThumbs);// 设置阅读器在全屏模式下显示缩略图
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节一",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            paragraph = new Paragraph("小节二",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实例490  全屏模式下不显示大纲和缩略图
    public static void main(String[] args) {
        
        try {
            Document document = new Document();// 创建文档对象
            PdfWriter writer = PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\全屏模式下不显示大纲和缩略图.pdf"));// 关联文档对象与输出流
            writer.setViewerPreferences(PdfWriter.PageModeFullScreen);// 设置为全屏模式
            writer.setViewerPreferences(PdfWriter.NonFullScreenPageModeUseNone);// 设置全屏模式下阅读器不显示大纲和缩略图
            document.open();// 打开文档
            BaseFont Chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 定义基础字体   
            Font fontChinese1 = new Font(Chinese, 18, Font.BOLDITALIC,BaseColor.RED);// 实例化字体类、设置字体大小和颜色
            Font fontChinese2 = new Font(Chinese, 15, Font.BOLDITALIC,BaseColor.BLUE);// 实例化字体类、设置字体大小和颜色
            Paragraph paragraph = new Paragraph("章节",fontChinese1);// 创建段落对象
            Chapter chapter = new Chapter(paragraph,1);// 创建章节对象
            paragraph = new Paragraph("小节一",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            paragraph = new Paragraph("小节二",fontChinese2);// 创建段落对象
            chapter.addSection(paragraph);// 添加小节
            document.add(chapter);// 向文档添加章节
            document.close();// 关闭文档
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 

转载于:https://my.oschina.net/MoreYoungGavin/blog/1083426

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Web开发实例大全提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。 全书分为723章,包括流行组件应用、数据库应用、图表统计、Ajax框架应用、流行框架、网站安全与架构模式、综合应用等。重点内容有操作XML文件、发送与接收邮件、数据库操作技术、SQL语句应用技术、复杂查询技术、数据库高级应用、JFreeChart绘图基础、基础图表技术、扩展图表技术、基于Cewolf组件的图表编程、Prototype框架、jQuery框架、Dojo框架、Struts2框架应用、Struts2框架标签应用、Hibernate框架基础、Hibernate高级话题、Spring框架基础、Spring的 Web MVC 框架、网站性能优化与安全策略、设计模式与架构、网站设计与网页配色、Java Web典型项目开发案例等。配书光盘附带了实例的源程序。 《Java Web开发实例大全提高卷)》既适合Java Web程序员参考和查阅,也适合Java Web初学者,如高校学生、软件开发培训学员及相关求职人员学习、练习、速查使用。 目录 第1 流行组件应用 第1章 操作XML文件 第2章 发送与接收邮件 第2 数据库应用 第3章 数据库操作技术 第4章 SQL语句应用技术 第5章 复杂查询技术 第6章 数据库高级应用 第3 图表统计 第7章 JFreeChart绘图基础 第8章 基础图表技术 第9章 扩展图表技术 第10章 基于Cewolf组件的图表编程 第4 Ajax框架应用 第11章 Prototype框架 第12章 jQuery框架 第13章 Dojo框架 第5 流行框架 第14章 Struts2框架应用 第15章 Struts2框架标签应用 第16章 Hibernate框架基础 第17章 Hibernate高级话题 第18章 Spring框架基础 第19章 Spring的Web MVC框架 第6 网站安全与架构模式 第20章 网站性能优化与安全策略 第21章 设计模式与架构 第7 综合应用 第22章 网站设计与网页配色 第23章 Java Web典型项目开发案例
第1 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑运算符 14 实例8 位运算符 15 实例9 移位运算符 16 实例10 转型运算符 17 2.3 其他形式 18 实例11 常量与变量 18 实例12 各种进制的转换 19 实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列出素数 29 实例18 Java中的递归 31 实例19 男生女生各多少人 32 实例20 求水仙花数 34 实例21 求任意一个正数的阶乘 35 实例22 求n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 38 3.3 while语句 39 实例25 求1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出100之间的所有偶数 41 实例28 如何判断回文数字 42 3.4 do…while语句 43 实例29 输出100之间的所有奇数 44 实例30 求最大的随机数 44 3.5 switch语句 45 实例31 判断字母分类 46 实例32 优良及差 47 实例33 打印任意一年日历 48 实例34 一年四季的划分 51 第2 Java数据处理 第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实例35 除0发生的算术异常(ArithmeticException) 54 实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37 数组元素类型不匹配异常(ArrayStoreException) 56 实例38 强制类型转换异常(ClassCastException) 56 实例39 索引越界异常(IndexOutOfBoundsException) 57 实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch捕获异常 65 实例46 try…catch捕获异常的实例 66 实例47 try…catch…finally捕获异常的实例 67 实例48 try…catch嵌套捕获异常的实例 68 4.4 throws声明异常 69 实例49 throws声明异常实例一 69 实例50 throws声明异常实例二 70 4.5 throw抛出异常 72 实例51 throw抛出异常实例一 72 实例52 throw抛出异常实例二 73 4.6 自定义异常 74 实例53 自定义异常实例一 74 实例54 自定义异常实例二 75 第5章 数组(教学视频:98分钟) 78 5.1 一维数组 78 实例55 一维数组的创建与使用 78 实例56 按相反的顺序输出 79 实例57 奇偶分组 80 实例58 找宝 81 实例59 寻找最小数 82 实例60 我的位置在哪里 83 实例61 复制数组 85 实例62 插入新元素 86 实例63 数组的合并 87 实例64 去除重复元素 88 实例65 数组求和计算 90 实例66 求最大值、最小值和平均值 91 5.2 二维数组 92 实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 快递报价单 99 5.3 数组的排序 101 实例74 冒泡排序法 102 实例75 数
第1 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑运算符 14 实例8 位运算符 15 实例9 移位运算符 16 实例10 转型运算符 17 2.3 其他形式 18 实例11 常量与变量 18 实例12 各种进制的转换 19 实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列出素数 29 实例18 Java中的递归 31 实例19 男生女生各多少人 32 实例20 求水仙花数 34 实例21 求任意一个正数的阶乘 35 实例22 求n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 38 3.3 while语句 39 实例25 求1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出100之间的所有偶数 41 实例28 如何判断回文数字 42 3.4 do…while语句 43 实例29 输出100之间的所有奇数 44 实例30 求最大的随机数 44 3.5 switch语句 45 实例31 判断字母分类 46 实例32 优良及差 47 实例33 打印任意一年日历 48 实例34 一年四季的划分 51 第2 Java数据处理 第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实例35 除0发生的算术异常(ArithmeticException) 54 实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37 数组元素类型不匹配异常(ArrayStoreException) 56 实例38 强制类型转换异常(ClassCastException) 56 实例39 索引越界异常(IndexOutOfBoundsException) 57 实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch捕获异常 65 实例46 try…catch捕获异常的实例 66 实例47 try…catch…finally捕获异常的实例 67 实例48 try…catch嵌套捕获异常的实例 68 4.4 throws声明异常 69 实例49 throws声明异常实例一 69 实例50 throws声明异常实例二 70 4.5 throw抛出异常 72 实例51 throw抛出异常实例一 72 实例52 throw抛出异常实例二 73 4.6 自定义异常 74 实例53 自定义异常实例一 74 实例54 自定义异常实例二 75 第5章 数组(教学视频:98分钟) 78 5.1 一维数组 78 实例55 一维数组的创建与使用 78 实例56 按相反的顺序输出 79 实例57 奇偶分组 80 实例58 找宝 81 实例59 寻找最小数 82 实例60 我的位置在哪里 83 实例61 复制数组 85 实例62 插入新元素 86 实例63 数组的合并 87 实例64 去除重复元素 88 实例65 数组求和计算 90 实例66 求最大值、最小值和平均值 91 5.2 二维数组 92 实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 快递报价单 99 5.3 数组的排序 101 实例74 冒泡排序法 102 实例75 数组递增排序 103 实例76 部分数组递增排序 103 实例77 选择排序法 104 实例78 快速排序法 106 第6章 字符串(教学视频:138分钟) 108 6.1 字符串类String 108 实例79 创建字符串类 108 实例80 如何使用charAt()方法计算重复字符 109 实例81 按字母顺序比较大小 110 实例82 首尾相连 111 实例83 字符串间的比较 112 实例84 字符集的解码方法 113 实例85 寻找指定字符第一次出现的位置 114 实例86 寻找指定字符最后出现的位置 115 实例87 我究竟有多长 116 实例88 替换指定的字符 117 实例89 分割字符串 117 实例90 如何使用substring()方法截取子串 118 实例91 分解字符串 119 实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 125 实例99 大小写互换 127 实例100 输出指定范围的素数 128 实例101 我出现了几次 129 实例102 算术表达式求值器 129 实例103 字符串对齐调整器 137 实例104 字符串的加密 139 实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的字符串 146 实例111 获取字符串的子串 147 实例112 删除指定的字符 148 实例113 倒置字符串 149 实例114 去除重复字符 149 实例115 检查是否是回文 151 第7章 输入/输出流(教学视频:116分钟) 152 7.1 文件和目录 152 实例116 显示文件的基本信息 152 实例117 显示目录的基本信息 153 实例118 在指定的目录下创建单个文件 156 实例119 在指定的目录下创建多个临时文件 158 实例120 删除指定目录下的文件 160 实例121 移动指定目录下的文件 163 实例122 文件搜索引挚 167 7.2 字节流 169 实例123 复制指定目录下的文件 170 实例124 显示文件中的内容 173 实例125 将数据保存到指定的文件中 175 实例126 将由键盘中录入的信息保存到文件中 176 实例127 一个文件变成多个小文件 178 实例128 多个小文件合成一个文件 181 实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel文件中的内容 198 实例136 生成PDF文件 199 实例137 读取PDF文件中的内容 203 实例138 用iText生成Word文件 205 实例139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实例140 按顺序创建文件 210 实例141 按顺序读取文件 211 实例142 追加文件内容 211 实例143 只显示文件中指定的字符 214 实例144 读取jar包文件 215 实例145 文件的加密/解密操作 217 实例146 复制图片 219 实例147 随机读写Java类文件 221 第3 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 226 实例149 简单的长度单位转换类 227 实例150 卡车和卡车司机之间的关系 229 实例151 双色球 231 8.2 成员变量和方法 236 实例152 使用类作为成员变量 236 实例153 构造方法 237 实例154 使用静态成员变量计算内存中实例化的对象数目 239 实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 实例158 同学聚会(工厂方法模式) 244 实例159 图书展(抽象工厂模式) 246 实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 实例163 使用抽象方法实现的支票夹 254 9.2 封装 257 实例164 世界小姐参赛资格 257 实例165 自定义复数类 261 9.3 继承 264 实例166 轿车与本田的关系 264 实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 一张考试成绩单 275 实例172 银行自动存取一体机 278 9.4 多态 284 实例173 饮食文化 284 实例174 使用构造方法的重载计算课程的GPA值 287 第10章 内部类与接口(教学视频:41分钟) 290 10.1 成员内部类 290 实例175 成员内部类的使用规范 290 实例176 猜谜 292 10.2 方法内部类 294 实例177 局部内部类的使用规范 294 实例178 奖学金的评分标准 295 10.3 匿名内部类 297 实例179 匿名内部类的使用规范 297 实例180 电话与移动电话 299 10.4 静态内部类 300 实例181 静态内部类的使用规范 300 实例182 苹果的来历 302 10.5 接口 303 实例183 求n的幂数与倍数 304 实例184 商品订单 306 实例185 多功能排序 310 第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实例186 求圆周率∏值 315 实例187 求对数值 316 实例188 使用取整函数 317 11.2 Random类的使用 318 实例189 随机数 319 实例190 验证码 322 11.3 Date类和Calendar类 324 实例191 使用Date类获取系统的当前时间 324 实例192 使用DateFormat类获取系统的当前时间 325 实例193 使用GregorianCalendar类获取系统的当前时间 326 实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 Formatter类的使用 347 实例199 时间格式转换符的使用 347 实例200 数据格式转换符的使用 349 11.5 System类的使用 351 实例201 记录程序执行的时间 351 实例202 程序的退出 352 实例203 获取程序运行环境的信息 353 第4 Java高级开发技术 第12章 集合(教学视频:45分钟) 358 12.1 Set 358 实例204 利用HashSet删除学生 358 实例205 不重复的随机数序列 360 实例206 运用映射的相关类(Map) 363 实例207 运用集的相关类(Set) 365 12.2 List 368 实例208 增加所需的元素 368 实例209 Iterator迭代器的使用 370 实例210 谁是幸运儿 371 实例211 自定义Queue队列 373 实例212 List、Set与Array之间的相互转换 375 实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector 397 实例221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程的五种基本状态 405 实例222 启动线程 405 实例223 参赛者的比赛生活(线程休眠唤醒) 407 实例224 资源搜索并下载(线程等待和通报) 410 实例225 模拟淘宝购物买卖双方交易问题 412 实例226 携子之手 与子偕老(join) 415 实例227 线程让步(Yield) 417 实例228 会走动的钟(多线程) 419 实例229 变形金刚中的守护神(守护线程) 424 实例230 查看JVM中所有的线程的活动状况 426 实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) 444 实例236 门锁终于被打开了(解决死锁) 446 实例237 一个死锁的例子 448 13.3 线程的优先级 451 实例238 排座位(线程优先级) 451 实例239 赛车 454 13.4 定时器 458 实例240 定时器(Timer) 458 实例241 数字定时器 459 13.5 线程连接池 462 实例242 手术任务(线程池) 462 实例243 模拟人工服务台(线程连接池) 466 13.6 线程应用实例 471 实例244 下雪的村庄 472 实例245 小飞侠 474 实例246 飞流直下 477 实例247 多线程断点续传 479 实例248 滚动的珠子 485 实例249 余额查询 489 实例250 滚动的文字 492 实例251 漂浮效果 495 实例252 监视内存的使用情况 499 实例253 璀璨的星空 501 实例254 银行和超市业务的模拟 505 第14章 泛型(教学视频:43分钟) 511 14.1 泛型基础 511 实例255 一个关于泛型的简单例子 511 实例256 带两个类型参数的泛型 513 实例257 有界类型程序示例 514 实例258 通配符使用示例 515 实例259 泛型方法使用示例 516 实例260 泛型接口示例 518 实例261 泛型实现坐标打印 519 14.2 泛型类的继承 521 实例262 继承泛型类示例 521 实例263 继承非泛型类示例 522 实例264 泛型类的类型识别示例 523 实例265 强制类型转换示例 525 14.3 擦拭 526 实例266 无限界的擦拭 526 实例267 有限界的擦拭 527 14.4 集合泛型类 528 实例268 Hashtable的泛型化 528 实例269 多功能画笔 529 第15章 网络编程(教学视频:52分钟) 534 15.1 IP地址 534 实例270 获取计算机名与IP地址 534 实例271 获取网址的IP地址 535 实例272 判断两个网址的主机名是否一样 536 实例273 测试IP的类型 537 实例274 查找主机 538 实例275 主机所支持的协议 539 15.2 URL类的使用 540 实例276 使用URL访问网页 540 实例277 URL的组成部分 541 实例278 通过指定的URL可以获取网页的源代码 542 实例279 一对多通信模式 544 实例280 自制浏览器 549 实例281 扫描TCP端口 551 实例282 TCP协议服务器 552 实例283 TCP协议客户机 553 实例284 Socket连接信息 555 实例285 Echo服务的客户端是如何实现的? 556 实例286 检测本机的服务端口 558 实例287 下载的页面不丢失链接 559 实例288 如何对网页进行重新定向 560 实例289 在Internet上搜索对象 560 实例290 LAN使用代理服务器 562 实例291 BBS论坛服务器端 567 实例292 UDP报文的发送与接收 579 第16章 数据库技术(教学视频:38分钟) 583 实例293 加载JDBC驱动程序 583 实例294 通过JDBC对数据库进行查询 584 实例295 数据库更新 585 实例296 获取数据库的基本信息 586 实例297 获取数据库对SQL支持的信息 589 实例298 处理访问数据库出现的常见异常情况 591 实例299 在Servlet中连接数据库 593 实例300 数据分页显示 595 实例301 批处理 601 实例302 事物处理 604 实例303 调用存储过程 608 实例304 连接ODBC数据库 611 实例305 数据库中图片文件的存取 614 第17章 界面设计--Swing(教学视频:88分钟) 618 17.1 Swing组件介绍及应用 618 实例306 JFrame框架的应用 618 实例307 Border的使用 619 实例308 使用Icon组件显示一张图片 620 实例309 Icon接口的应用 621 实例310 JLabel组件 622 实例311 Icon应用到JLabel中 623 实例312 JButton的使用 624 实例313 在JButton上设置快捷键 625 实例314 设置默认按钮 626 实例315 使用JCheckBox组件 627 实例316 JCheckBox事件处理 629 实例317 JRadioButton的使用 630 实例318 JComboBox的使用 632 实例319 利用ComboModel构造JComboBox 633 实例320 DefaultComboBoxModel的使用 635 实例321 建立有图像的JComboBox 636 实例322 建立可自行输入的JComboBox 637 实例323 JComboBox的事件处理 638 实例324 JTextField组件的使用 640 实例325 使用JTextArea组件 641 17.2 页面布局及事件监听 642 实例326 BorderLayout版面布局 643 实例327 FlowLayout布局管理 644 实例328 应用GridLayout设计版面 645 实例329 如何使用BoxLayout布局管理器 647 实例330 使用ActionEvent监听组件 648 实例331 使用WindowAdapter实现鼠标事件 649 实例332 使用MouseMotionListener监听鼠标 650 实例333 使用KeyListener监听键盘 652 17.3 组件的综合应用 654 实例334 计算器 654 实例335 创建树菜单 657 实例336 在节点中显示详细信息 658 第18章 Applet小应用程序(教学视频:39分钟) 662 实例337 不断变大的文字 662 实例338 灯光扫描的效果 664 实例339 字体逐渐展开的效果 666 实例340 飞舞的气球 668 实例341 逐渐浮现的图片 671 实例342 火焰边框的特效 674 实例343 局部放大效果 677 实例344 水波荡漾的效果 679 实例345 漫天飞花 682 实例346 动感影集 685 实例347 彩虹字 688 实例348 多功能按键 690 第19章 多媒体与图像处理(教学视频:51分钟) 694 19.1 多媒体 694 实例349 测试音频播放器 694 实例350 测试视频播放器 696 实例351 视频反色效果 698 实例352 实现一个录音机 703 实例353 建立一个调色板 707 19.2 图像处理 710 实例354 在计算机内存中创建一个图像 710 实例355 会移动的图像 712 实例356 将图片进行180度旋转 714 实例357 处理图像的明暗度 716 实例358 如何将彩色图转化为灰度图 721 实例359 锐化和模糊图像 724 实例360 显示一个图像的轮廓 727 实例361 如何放大及拉伸图像 730 第20章 JSP开发技术(教学视频:62分钟) 735 20.1 JSP基础 735 实例362 网页版的9×9乘法口诀 735 实例363 Java Servlet小程序 737 实例364 Servlet对表单的处理过程 738 实例365 获取/修改JavaBeans中的内容 741 20.2 JSP程序设计 743 实例366 喜连大三元 743 实例367 运气对对碰 748 实例368 文字样式统计器 752 实例369 图形统计器 754 20.3 垃圾信息投诉站 756 实例370 创建投诉表单 756 实例371 保存投诉的内容 760 实例372 实现投诉站的后台操作 762 实例373 取消投诉内容 764 实例374 站内信 767 20.4 网站在线评估系统 769 实例375 创建评估问卷 769 实例376 实现评估的后台操作 771 实例377 查看评估结果 773 第5 Java综合案例 第21章 模拟服务器与客户端之间的通信(教学视频:13分钟) 778 21.1 实例介绍 778 21.2 框架设计 779 21.2.1 项目的总体结构 779 21.2.2 搭建开发环境 779 21.2.3 确定项目工程目录 779 21.3 公用模块设计 780 21.4 客户端程序 780 21.4.1 客户端的工作流程 780 21.4.2 编写客户端的源程序 781 21.4.3 客户端源的程序解读 783 21.5 服务器端程序 785 21.5.1 服务器端的工作流程 785 21.5.2 编写服务器端的源程序 785 21.5.3 服务器端的源程序解读 788 21.6 小结 790 第22章 书店管理系统(教学视频:56分钟) 791 22.1 实例分析 791 22.2 系统设计 792 22.2.1 结构分析 792 22.2.2 搭建环境 792 22.2.3 创建目录 793 22.3 数据库设计 793 22.4 公用模块设计 795 22.4.1 data包中的类 795 22.4.2 util包中的类 798 22.5 用户登录模块 800 22.6 系统主界面 802 22.7 基础维护模块 804 22.7.1 图书维护 804 22.7.2 用户维护 811 22.8 借还管理模块 818 22.8.1 借书 818 22.8.2 还书 821 22.9 查询管理模块 824 22.9.1 图书查询 824 22.9.2 用户查询 826 22.10 系统管理模块 829 22.11 小结 831
Java范例开发大全(全书源程序),目录如下: 第1  Java编程基础 第1章  Java开发环境的搭建(教学视频:9分钟) 2 1.1  理解Java 2 1.2  搭建Java所需环境 3 1.2.1  下载JDK 3 1.2.2  安装JDK 4 1.2.3  配置环境 5 1.2.4  测试JDK配置是否成功 7 实例1  开发第一个Java程序 7 第2章  Java基础类型与运算符 实例2  自动提升 9 实例3  自动转换 10 实例4  常用基础类型之强制转换 11 2.2  运算符 12 实例5  算术运算符 12 实例6  关系运算符 13 实例7  逻辑运算符 14 实例8  位运算符 15 实例9  移位运算符 16 实例10  转型运算符 17 2.3  其他形式 18 实例11  常量与变量 18 实例12  各种进制的转换 19 实例13  Java中的进制与移位运算符 22 第3章  条件控制语句(教学视频:75分钟) 26 3.1  if控制语句 26 实例14  判断输入的年份是否为闰年 26 实例15  抽奖活动 27 3.2  for语句 28 实例16  小九九乘法表 28 实例17  如何列出素数 29 实例18  Java中的递归 31 实例19  男生女生各多少人 32 实例20  求水仙花数 34 实例21  求任意一个正数的阶乘 35 实例22  求n的n次方 35 实例23  利用for循环输出几何图形 36 实例24  杨辉三角 38 3.3  while语句 39 实例25  求1到100之间的和 39 实例26  存上100元需要多少天 40 实例27  输出100之间的所有偶数 41 实例28  如何判断回文数字 42 3.4  do…while语句 43 实例29  输出100之间的所有奇数 44 实例30  求最大的随机数 44 3.5  switch语句 45 实例31  判断字母分类 46 实例32  优良及差 47 实例33  打印任意一年日历 48 实例34  一年四季的划分 51 第2  Java数据处理 第4章  异常处理(教学视频:62分钟) 54 4.1  编译时异常 54 实例35  除0发生的算术异常(ArithmeticException) 54 实例36  数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37  数组元素类型不匹配异常(ArrayStoreException) 56 实例38  强制类型转换异常(ClassCastException) 56 实例39  索引越界异常(IndexOutOfBoundsException) 57 实例40  空指针异常(NullPointerException) 58 实例41  数字格式转换异常(NumberFornatException) 59 实例42  字符串索引越界异常(StringIndexOutBounds) 60 实例43  操作错误(UnsupportedOperationException) 60 4.2  运行时异常 61 实例44  找不到指定类时发生的异常(ClassNotFoundException) 62 实例45  请求的方法不存在(NoSuchMethodException) 63 4.3  try…catch捕获异常 65 实例46  try…catch捕获异常的实例 66 实例47  try…catch…finally捕获异常的实例 67 实例48  try…catch嵌套捕获异常的实例 68 4.4  throws声明异常 69 实例49  throws声明异常实例一 69 实例50  throws声明异常实例二 70 4.5  throw抛出异常 72 实例51  throw抛出异常实例一 72 实例52  throw抛出异常实例二 73 4.6  自定义异常 74 实例53  自定义异常实例一 74 实例54  自定义异常实例二 75 第5章  数组(教学视频:98分钟) 78 5.1  一维数组 78 实例55  一维数组的创建与使用 78 实例56  按相反的顺序输出 79 实例57  奇偶分组 80 实例58  找宝 81 实例59  寻找最小数 82 实例60  我的位置在哪里 83 实例61  复制数组 85 实例62  插入新元素 86 实例63  数组的合并 87 实例64  去除重复元素 88 实例65  数组求和计算 90 实例66  求最大值、最小值和平均值 91 5.2  二维数组 92 实例67  二维数组的创建与使用 92 实例68  矩阵转置 93 实例69  奇数阶幻
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值