源代码请从这里下载:

http://download.csdn.net/source/2984395

使用的是JSP编程

‍ 这是导出后的效果

这是数据库中的内容

‍ 部分代码:

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>

<%@ page import="com.jwy.dao.*" %>

<%@ page import="com.lowagie.text.pdf.*" %>

<%@ page import="com.lowagie.text.*" %>

<%@ page import="java.io.*" %>

<html>

<head>

<title>'index.jsp'</title>

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<body>

<%

out.clear();

out = pageContext.pushBody();

response.setHeader("Content-Disposition","attachment;filename=stuInfo.pdf");

response.setContentType("application/x-download; charset=utf-8");

java.util.List<String[]> list = new StuInfoDao().findByAll();

//创建一个对中文字符集支持的基础字体

BaseFont bfChinese = BaseFont.createFont("STSong-Light",

"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

//使用基础字体对象创建新字体对像,粗体12号红色字

Font font = new Font(bfChinese, 12, Font.BOLD);

Document document = new Document(PageSize.A4);//创建document对象

PdfWriter.getInstance(document, response.getOutputStream());//创建书写器

document.open();//打开文档

String title = "学生信息表"; //文档标题

Paragraph paragraph = new Paragraph(title, font); //创建段落,并设置字体

paragraph.setAlignment(Paragraph.ALIGN_CENTER);//设置段落居中

document.add(paragraph);//将段落添加到文档中

PdfPTable table = new PdfPTable(5);//建立一个5列的空白表格对象

table.setSpacingBefore(30f);//设置表格上面空白宽度

String[] tableTitle = { "学号", "姓名", "性别", "出生日期", "联系电话" };//表头

for (int i = 0; i < tableTitle.length; i++) {//循环写入表头

paragraph = new Paragraph(tableTitle[i], new Font(bfChinese, 10,Font.BOLD));

PdfPCell cell = new PdfPCell(paragraph);//建立一个单元格

cell.setHorizontalAlignment(Element.ALIGN_CENTER);//设置内容水平居中显示

cell.setVerticalAlignment(Element.ALIGN_MIDDLE);//设置垂直居中

table.addCell(cell);//将单元格加入表格

}

for(int i=0;i<list.size();i++){//循环写入表文

String[] stuInfo = list.get(i);

for(int j=1;j<stuInfo.length;j++){

PdfPCell cell = new PdfPCell(new Paragraph(stuInfo[j],

new Font(bfChinese, 10)));//建立一个单元格

cell.setHorizontalAlignment(Element.ALIGN_CENTER);//设置内容水平居中显示

cell.setVerticalAlignment(Element.ALIGN_MIDDLE);//设置垂直居中

table.addCell(cell);//将单元格加入表格

}

}

document.add(table);//将表格加入文档中

document.close();//关闭文档

%>

</body>

</html>

PDF的更多相关文章

  1. 【实战Java高并发程序设计 7】让线程之间互相帮助--SynchronousQueue的实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  2. 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  3. 【实战Java高并发程序设计 5】让普通变量也享受原子操作

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  4. 【实战Java高并发程序设计 4】数组也能无锁:AtomicIntegerArray

    除了提供基本数据类型外,JDK还为我们准备了数组等复合结构.当前可用的原子数组有:AtomicIntegerArray.AtomicLongArray和AtomicReferenceArray,分别表 ...

  5. 【实战Java高并发程序设计 3】带有时间戳的对象引用:AtomicStampedReference

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference AtomicReference无法解决上述问题的根 ...

  6. 【实战Java高并发程序设计 1】Java中的指针:Unsafe类

    是<实战Java高并发程序设计>第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...

  7. 《实战java高并发程序设计》源码整理及读书笔记

    日常啰嗦 不要被标题吓到,虽然书籍是<实战java高并发程序设计>,但是这篇文章不会讲高并发.线程安全.锁啊这些比较恼人的知识点,甚至都不会谈相关的技术,只是写一写本人的一点读书感受,顺便 ...

  8. 《实战Java高并发程序设计》读书笔记

    文章目录 第二章 Java并行程序基础 2.1 线程的基本操作 2.1.1 线程中断 2.1.2 等待(wait)和通知(notify) 2.1.3 等待线程结束(join)和谦让(yield) 2. ...

  9. 《实战Java高并发程序设计》读书笔记三

    第三章 JDK并发包 1.同步控制 重入锁:重入锁使用java.util.concurrent.locks.ReentrantLock类来实现,这种锁可以反复使用所以叫重入锁. 重入锁和synchro ...

  10. 《实战Java高并发程序设计》读书笔记二

    第二章  Java并行程序基础 1.线程的基本操作 线程:进程是线程的容器,线程是轻量级进程,是程序执行的最小单位,使用多线程而不用多进程去进行并发程序设计是因为线程间的切换和调度的成本远远的小于进程 ...

随机推荐

  1. treap树模板

    ///treap树模板 typedef struct Node ///节点的结构体 { Node *l,*r; int val,pri; ///节点的值和优先级 int sz; ///节点子树的节点数 ...

  2. VSS 的修复和扫描

    关闭所有连接到VSS的客户端如:VSS客户端及VS开发工具,在命令行模式下,运行这个方法: "C:\Program Files (x86)\Microsoft Visual SourceSa ...

  3. maven学习(5)-maven中常见错误

    maven报错非法字符:\65279 错误 开发中一个项目很早就报这个错,maven报错非法字符:\ 错误, 开发过程中偶尔会遇到,今天终于下决心要解决这个问题 编译java 文件的时候,有些java ...

  4. 为何jquery动态添加的input value无法提交到数据库?【坑】

    有两个输入框,我想让第一个输入框失去焦点以后,第二个输入框自动获取第一个输入框的value为默认值,jquery代码如下,可以正常显示,但是用PHP提交数据,并插入数据库的时候确实空值,尚未查找到原因 ...

  5. 【Mail】JavaMail发送带附件的邮件(二)

    上一篇讲了使用JavaMail发送普通邮件([Mail]JavaMail介绍及发送邮件(一)),本例讲发送复杂的邮件(带有附件的邮件) 生成一封复杂的邮件 新建一个JavaWeb的Maven工程,引入 ...

  6. c语言打印空心菱形

    ***算法:把菱形的中心看成坐标的原点(,),由此可以知道,如果|x| + |y| <= n;则打印输出"*"号,否则打印输出" " int mai(){ ...

  7. oracle数据库下的关系(库,实例,用户,表)

    一.数据库数据库顾名思义是数据的集合,而Oracle则是管理这些数据集合的软件系统,它是一个对象关系型的数据库管理系统.     二.表空间表空间是Oracle对物理数据库上相关数据的逻辑映射.一个数 ...

  8. 验证radio 是否被选中

    var radioType=document.getElementsByName("radioType");    var isCheckRadio=false;    for(v ...

  9. C语言编写的简单的电话本管理系统

    #include<stdio.h> #include <string.h> #include<stdlib.h> ; struct person {]; ]; ]; ...

  10. 安安视频网anan.video为您提供免费高清视频

    安安视频网anan.video为您提供免费高清视频,最新电影,电视剧,动漫,微电影,纪录片,音乐MV在线观看(高清):安安视频网,一个干净的视频在线播放网站,百万高清影视,视频在线观看. 安安视频网整 ...