java 生成pdf文件(转,测试…
2013-10-30 11:55
375 查看
package com.testPdf;
import java.awt.Color;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Date;
import com.lowagie.text.Document;
import
com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfCell;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPRow;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
//import
com.sun.java_cup.internal.internal_error;
public class CreatePdf{
Document document = new
Document();// 建立一个Document对象
private static Font
headfont ;// 设置字体大小
private static Font
keyfont;// 设置字体大小
private static Font
textfont;// 设置字体大小
static{
BaseFont bfChinese;
try {
//bfChinese =
BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
bfChinese
=
BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
headfont =
new Font(bfChinese, 10, Font.BOLD);//
设置字体大小
keyfont =
new Font(bfChinese, 8, Font.BOLD);// 设置字体大小
textfont =
new Font(bfChinese, 8, Font.NORMAL);//
设置字体大小
} catch (Exception e) {
e.printStackTrace();
}
}
public CreatePdf(File
file) {
document.setPageSize(PageSize.A4);//
设置页面大小
try {
PdfWriter.getInstance(document,new
FileOutputStream(file));
document.open();
} catch (Exception e) {
e.printStackTrace();
}
}
int maxWidth =
520;
public
PdfPCell createCell(String value,com.lowagie.text.Font font,int
align){
PdfPCell cell = new
PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setPhrase(new
Phrase(value,font));
return cell;
}
public
PdfPCell createCell(String value,com.lowagie.text.Font
font){
PdfPCell cell = new
PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setPhrase(new
Phrase(value,font));
return cell;
}
public
PdfPCell createCell(String value,com.lowagie.text.Font font,int
align,int colspan){
PdfPCell cell = new
PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setPhrase(new
Phrase(value,font));
return cell;
}
public PdfPCell
createCell(String value,com.lowagie.text.Font font,int align,int
colspan,boolean boderFlag){
PdfPCell cell = new
PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setPhrase(new
Phrase(value,font));
cell.setPadding(3.0f);
if(!boderFlag){
cell.setBorder(0);
cell.setPaddingTop(15.0f);
cell.setPaddingBottom(8.0f);
}
return cell;
}
public
PdfPTable createTable(int colNumber){
PdfPTable table = new
PdfPTable(colNumber);
try{
table.setTotalWidth(maxWidth);
table.setLockedWidth(true);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setBorder(1);
}catch(Exception e){
e.printStackTrace();
}
return table;
}
public
PdfPTable createTable(float[] widths){
PdfPTable
table = new PdfPTable(widths);
try{
table.setTotalWidth(maxWidth);
table.setLockedWidth(true);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setBorder(1);
}catch(Exception e){
e.printStackTrace();
}
return
table;
}
public
PdfPTable createBlankTable(){
PdfPTable table = new
PdfPTable(1);
table.getDefaultCell().setBorder(0);
table.addCell(createCell("",
keyfont));
table.setSpacingAfter(20.0f);
table.setSpacingBefore(20.0f);
return
table;
}
public
void generatePDF() throws Exception{
PdfPTable table =
createTable(4);
table.addCell(createCell("学生信息列表:",
keyfont,Element.ALIGN_LEFT,4,false));
table.addCell(createCell("姓名", keyfont,
Element.ALIGN_CENTER));
table.addCell(createCell("年龄", keyfont,
Element.ALIGN_CENTER));
table.addCell(createCell("性别", keyfont,
Element.ALIGN_CENTER));
table.addCell(createCell("住址", keyfont,
Element.ALIGN_CENTER));
for(int
i=0;i<5;i++){
table.addCell(createCell("姓名"+i,
textfont));
table.addCell(createCell(i+15+"",
textfont));
table.addCell(createCell((i%2==0)?"男":"女",
textfont));
table.addCell(createCell("地址"+i,
textfont));
}
document.add(table);
document.close();
}
public
static void main(String[] args) throws Exception
{
System.out.println("begin");
File file = new
File("e:\\text.pdf");
file.createNewFile();
new CreatePdf(file).generatePDF();
System.out.println("end");
}
}
import java.awt.Color;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Date;
import com.lowagie.text.Document;
import
com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfCell;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPRow;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
//import
com.sun.java_cup.internal.internal_error;
public class CreatePdf{
Document document = new
Document();// 建立一个Document对象
private static Font
headfont ;// 设置字体大小
private static Font
keyfont;// 设置字体大小
private static Font
textfont;// 设置字体大小
static{
BaseFont bfChinese;
try {
//bfChinese =
BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
bfChinese
=
BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
headfont =
new Font(bfChinese, 10, Font.BOLD);//
设置字体大小
keyfont =
new Font(bfChinese, 8, Font.BOLD);// 设置字体大小
textfont =
new Font(bfChinese, 8, Font.NORMAL);//
设置字体大小
} catch (Exception e) {
e.printStackTrace();
}
}
public CreatePdf(File
file) {
document.setPageSize(PageSize.A4);//
设置页面大小
try {
PdfWriter.getInstance(document,new
FileOutputStream(file));
document.open();
} catch (Exception e) {
e.printStackTrace();
}
}
int maxWidth =
520;
public
PdfPCell createCell(String value,com.lowagie.text.Font font,int
align){
PdfPCell cell = new
PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setPhrase(new
Phrase(value,font));
return cell;
}
public
PdfPCell createCell(String value,com.lowagie.text.Font
font){
PdfPCell cell = new
PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setPhrase(new
Phrase(value,font));
return cell;
}
public
PdfPCell createCell(String value,com.lowagie.text.Font font,int
align,int colspan){
PdfPCell cell = new
PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setPhrase(new
Phrase(value,font));
return cell;
}
public PdfPCell
createCell(String value,com.lowagie.text.Font font,int align,int
colspan,boolean boderFlag){
PdfPCell cell = new
PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setPhrase(new
Phrase(value,font));
cell.setPadding(3.0f);
if(!boderFlag){
cell.setBorder(0);
cell.setPaddingTop(15.0f);
cell.setPaddingBottom(8.0f);
}
return cell;
}
public
PdfPTable createTable(int colNumber){
PdfPTable table = new
PdfPTable(colNumber);
try{
table.setTotalWidth(maxWidth);
table.setLockedWidth(true);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setBorder(1);
}catch(Exception e){
e.printStackTrace();
}
return table;
}
public
PdfPTable createTable(float[] widths){
PdfPTable
table = new PdfPTable(widths);
try{
table.setTotalWidth(maxWidth);
table.setLockedWidth(true);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setBorder(1);
}catch(Exception e){
e.printStackTrace();
}
return
table;
}
public
PdfPTable createBlankTable(){
PdfPTable table = new
PdfPTable(1);
table.getDefaultCell().setBorder(0);
table.addCell(createCell("",
keyfont));
table.setSpacingAfter(20.0f);
table.setSpacingBefore(20.0f);
return
table;
}
public
void generatePDF() throws Exception{
PdfPTable table =
createTable(4);
table.addCell(createCell("学生信息列表:",
keyfont,Element.ALIGN_LEFT,4,false));
table.addCell(createCell("姓名", keyfont,
Element.ALIGN_CENTER));
table.addCell(createCell("年龄", keyfont,
Element.ALIGN_CENTER));
table.addCell(createCell("性别", keyfont,
Element.ALIGN_CENTER));
table.addCell(createCell("住址", keyfont,
Element.ALIGN_CENTER));
for(int
i=0;i<5;i++){
table.addCell(createCell("姓名"+i,
textfont));
table.addCell(createCell(i+15+"",
textfont));
table.addCell(createCell((i%2==0)?"男":"女",
textfont));
table.addCell(createCell("地址"+i,
textfont));
}
document.add(table);
document.close();
}
public
static void main(String[] args) throws Exception
{
System.out.println("begin");
File file = new
File("e:\\text.pdf");
file.createNewFile();
new CreatePdf(file).generatePDF();
System.out.println("end");
}
}
相关文章推荐
- java读取excel文件获取数据
- java 生成excel文件,并进行操作
- java邮件开发问题(转,全)
- Java编码易疏忽的十个问题(…
- java 读取xml文件并输出
- java 生成xml文件
- java时区问题
- Java应用:编写高级JavaScri…
- java邮件开发(转)
- java 中的 加密
- java 中 路径的获取 (转)
- java 正则式
- Eclipse 设置(转)
- java xml文件操作(转)
- java 获取 系统时间 Calendar
- 读取数据库中的数据到xml java
- java.lang.OutOfMemoryError处理错误
- Eclipse 插件开发
- java 邮件开发(转)
- 使用 Eclipse 开发 J2EE 应用(转)