环境需求: iText-2.1.7.jar iTextAsian.jar 示例代码: package com.iText.create; import java.awt.Color; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import com.lowagie.text.Cell; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.HeaderFooter; import com.lowagie.text.Image; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.Table; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; /** */ /** * 功能描述:使用Itext组件创建pdf文档<br> * 创建时间:2010-07-01 * @author sxyx2008 * */ public class CreatePdf { public CreatePdf() throws Exception { // 创建一个文档对象纸张大小为A4 Document doc = new Document(PageSize.A4, 50 , 50 , 50 , 50 ); // 设置要输出到磁盘上的文件名称 PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream( new File( " 徐熙媛.pdf " ))); // 设置作者信息 doc.addAuthor( " sxyx2008 " ); // 设置文档创建日期 doc.addCreationDate(); // 设置标题 doc.addTitle( " iText测试 " ); // 设置值主题 doc.addSubject( " iText " ); // 构建页脚 HeaderFooter footer = new HeaderFooter( new Phrase(), true ); // 设置页脚是否有边框 // 0表示无 // 1上边框 // 2下边框 // 3上下边框都有 默认都有 // 设置页脚是否有边框 footer.setBorder( 0 ); // footer.setBorder(1); // footer.setBorder(2); // footer.setBorder(3); // 设置页脚的对齐方式 footer.setAlignment(Element.ALIGN_CENTER); // 将页脚添加到文档中 doc.setFooter(footer); // 打开文档开始写内容 doc.open(); // Paragraph par1=new Paragraph("Hello,Welcome You"); // Paragraph par2=new Paragraph("你好,中文测试",ChineseFont()); /**/ /* par1.setAlignment(Element.ALIGN_CENTER); doc.add(par1); */ // par2.setAlignment(Element.ALIGN_CENTER); // doc.add(par2); // 构建一段落 Paragraph par3 = new Paragraph( " 客户信息表 " ,ChineseFont()); // 设置局中对齐 par3.setAlignment(Element.ALIGN_CENTER); // 添加到文档 doc.add(par3); // 创建一个四列的表格 Table table = new Table( 4 ); // 设置边框 table.setBorder( 1 ); // 创建表头 Cell cell1 = new Cell( new Phrase( " 编号 " ,ChineseFont())); cell1.setHorizontalAlignment(Element.ALIGN_CENTER); cell1.setVerticalAlignment(Element.ALIGN_CENTER); cell1.setHeader( true ); cell1.setBackgroundColor(Color.RED); Cell cell2 = new Cell( new Phrase( " 姓名 " ,ChineseFont())); cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setVerticalAlignment(Element.ALIGN_CENTER); cell2.setHeader( true ); cell2.setBackgroundColor(Color.RED); Cell cell3 = new Cell( new Phrase( " 性别 " ,ChineseFont())); cell3.setHorizontalAlignment(Element.ALIGN_CENTER); cell3.setVerticalAlignment(Element.ALIGN_CENTER); cell3.setHeader( true ); cell3.setBackgroundColor(Color.RED); Cell cell4 = new Cell( new Phrase( " 备注 " ,ChineseFont())); cell4.setHorizontalAlignment(Element.ALIGN_CENTER); cell4.setVerticalAlignment(Element.ALIGN_CENTER); cell4.setHeader( true ); cell4.setBackgroundColor(Color.RED); table.addCell(cell1); table.addCell(cell2); table.addCell(cell3); table.addCell(cell4); // 添加此代码后每页都会显示表头 table.endHeaders(); // 循环向表格中添加100条记录 100行4列的表格 // 以下代码的作用是创建100行数据,其中每行有四列,列依次为 编号 姓名 性别 备注 for ( int i = 1 ; i <= 100 ; i ++ ) { // 设置编号单元格 Cell cell11 = new Cell(i + "" ); // 设置姓名单元格 Cell cell22 = new Cell( new Phrase( " 徐熙媛 " ,ChineseFont())); // 设置性别单元格 Cell cell33 = new Cell( new Phrase( " 女 " ,ChineseFont())); // 设置备注单元格 Cell cell44 = new Cell( new Phrase( " 好姑娘 " ,ChineseFont())); // 单元格水平对齐方式 cell11.setHorizontalAlignment(Element.ALIGN_CENTER); // 单元格垂直对齐方式 cell11.setVerticalAlignment(Element.ALIGN_CENTER); cell22.setHorizontalAlignment(Element.ALIGN_CENTER); cell22.setVerticalAlignment(Element.ALIGN_CENTER); cell33.setHorizontalAlignment(Element.ALIGN_CENTER); cell33.setVerticalAlignment(Element.ALIGN_CENTER); cell44.setHorizontalAlignment(Element.ALIGN_CENTER); cell44.setVerticalAlignment(Element.ALIGN_CENTER); table.addCell(cell11); table.addCell(cell22); table.addCell(cell33); table.addCell(cell44); } // 将表格添加到新的文档 doc.add(table); // 创建新的一页 doc.newPage(); // 添加图片 Image image = Image.getInstance( " D:\\Program Files\\myeclipseworkspace\\6.5\\iText\\src\\5.jpg " ); // 添加到文档 doc.add(image); // 设置对象方式 image.setAlignment(Element.ALIGN_CENTER); doc.close(); writer.close(); } // pdf文档中文字符处理 public static Font ChineseFont() { BaseFont baseFont = null ; try { baseFont = BaseFont.createFont( " STSong-Light " , " UniGB-UCS2-H " , true ); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Font chineseFont = new Font(baseFont, 8 ,Font.NORMAL,Color.BLUE); return chineseFont; } public static void main(String[] args) { try { new CreatePdf(); } catch (Exception e) { e.printStackTrace(); } } } 效果图: