iText 帮助文档

Kilin

贡献于2012-03-01

字数:21301 关键词: PDF工具包

iText帮助文档 什么是iText 如果你在需要创建PDF的一系列操作,你将使用像Adobe Acrobat 或者Adobe InDesign这样的桌面图形设计工具去手动或者半自动的创建一个文档。 另一种情况, PDF文档是利用软件应用提供的API自动创建的、不需要或者最小化地依赖人工介入。有一些场景是文档先被创建成一些其他的格式、例如:html、xml,然后再转换成PDF.这些不同方式的需求可能需要不同的软件工具。类似的情况发生在操作PDF,你可能用Adobe Acrobat更新PDF,但是也有工具可以使你将数据库形式的数据去增加内容。 iText 就是一个专注于自动化方面的工具。 iText是一个PDF的类库 iText是提供了一组API,允许开发人员做一下的事情:(不仅仅局限以下、还有更多可以做的) · 从xml或者数据库生成文档或者报表。 · 制作绘图和书籍,开拓很多PDF中的交互特性 · 在现有的PDF中增加书签,页码,水印,和其他特性 · 切分或者整合存在的PDF文件 · 填写互动表格 · 在WEB浏览器中提供动态生成和操作PDF的服务 iText 不是最终用户的工具.你必须将iText搭建在你自己的应用中,这样你可以进行PDF的一系列操作了. 功能预览 下图罗列出了你可以用iText进行的操作: iText支持的功能 iText部分支持的功能 iText主要的作用是创建和操作PDF文档 1) 几个基础的类的含义 名称 解释 PdfWriter 书写器、用于往document中写入信息。 Document 一个PDF文档组件。 Chunk 文本块、这是可以写入文档的最小的组件。 Phrase 短语、由一系列Chunk组成。 paragraph 段落、有一系列的Phrase或者Chunk组成。 TableWrapper 表格、处理简单表格的组件 PdfPTable 表格、处理复杂表格的组件 Image 图形处理组件 Rectangle 代表几何图形组件、可以通过此组件设置背景色、边框等样式,类似html里的Box BaseColor 定义颜色组件、预装了很多常用颜色 iText版本为2.1.4 文本实例1 : 设置Pdf页面大小 左右边距 import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; public class Test { public static void main(String args[]){ Document document = new Document(PageSize.A4); // Rectangle pagesize = new Rectangle(200f, 800f); //设置页面 200*800 单位是用户显示单元,默认是1/72英寸。 // Document document = new Document(pagesize, 20f, 20f ,20f ,20f); //页边距,顺序是左右上下。 // Rectangle rectPageSize = new Rectangle(PageSize.A4); // 定义A4页面大小 // Document document = new Document(rectPageSize,50,50,50,50); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\PdfText1.pdf")); //文档输出路径 document.open(); document.add(new Paragraph("Hello World!")); //内容 document.close(); }catch(Exception e){ e.printStackTrace(); } } } 文本实例2 : 设置Pdf页面背景颜色、文档属性 import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.PdfWriter; public class pdfText2 { public static void main(String args[]){ Rectangle rect = new Rectangle(PageSize.A4); //定义一个A4大小的矩形组件 rect.setBackgroundColor(Color.LIGHT_GRAY); //设置背景色为浅灰色 rect.setBorder(Rectangle.BOX); //设置border类型为box(四周都有) rect.setBorderColor(Color.DARK_GRAY); //设置border颜色为深灰色 rect.setBorderWidth(5); //设置border宽度为5 Document document=new Document(rect); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\pdfText2.pdf")); document.addTitle("标题"); //设置文档信息 document.addAuthor("作者"); document.addCreationDate(); document.addCreator("创建者"); document.addSubject("Subject"); document.addKeywords("KeyWords"); document.addHeader("Expires", "0"); document.open(); document.add(new Paragraph("Hello World!")); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 文本实例3 : 一个简单的输出中文的实例、设置字体、所在位置等 import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; public class PdfText4 { public static void main(String args[]){ Document document=new Document(PageSize.A4); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\PdfText4.pdf")); //输出pdf文件的路径 document.open(); BaseFont bfChinese=BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); Font FontChinese=new Font(bfChinese,16,Font.NORMAL); //设置中文字体 Font.加字体 document.add(new Paragraph("Hello World,Hello PDF Come On!!adf")); Paragraph paragraph=new Paragraph("这里是中文",FontChinese); paragraph.setAlignment(Element.ALIGN_CENTER); //居中显示 ALIGN_RIGHT,ALIGN_LEFT // paragraph.setIndentationLeft(50f); //文本距左侧的绝对位置 document.add(paragraph); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 文本实例4 : 实现外部链接 import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.pdf.PdfWriter; public class PdfText5 { public static void main(String args[]){ Document document=new Document(PageSize.A4); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\PdfText5.pdf")); //输出pdf文件的路径 document.open(); Chunk chunk = new Chunk("Quick brown fox jumps over the lazy dog."); //连接的内容 chunk.setAnchor("http://www.baidu.com"); //连接地址 document.add(chunk); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 文本实例5 : 实现内部链接 import java.io.FileOutputStream; import com.lowagie.text.Anchor; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; public class PdfText6 { public static void main(String args[]){ Document document = new Document(PageSize.A4); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\PdfText6.pdf")); //文档输出路径 document.open(); Paragraph paragraph=new Paragraph("Quick brown"); Anchor foxReference=new Anchor("fox"); foxReference.setReference("#fox"); //设置点击什么实现跳转 paragraph.add(foxReference); paragraph.add("jumps over the lazy dog."); document.add(paragraph); document.newPage(); //新建一个页 Anchor foxName=new Anchor("This is the FOX."); foxName.setName("fox"); //必须和实现跳转的单词一样 document.add(foxName); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 文本实例6 : 跳转到另一个Pdf文件 import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; public class PdfText7 { public static void main(String args[]){ Document document=new Document(PageSize.A4); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\PdfText7.pdf")); //文档输出路径 document.open(); Paragraph p1 = new Paragraph("The quick brown fox wants to"); Chunk chunk = new Chunk(" jump over "); chunk.setRemoteGoto("F:\\itext.pdf", "jump"); //可以连接其他的pdf文档 p1.add(chunk); p1.add(" the lazy dog."); document.add(p1); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 设置阅读器参数的一些静态变量含义 类型 静态变量名 作用 页面 布局 PdfWriter.PageLayoutSinglePage 同时只显示一个页面 PdfWriter.PageLayoutOneColumn 单列显示 PdfWriter.PageLayoutTwoColumnLeft 双列显示,奇数页在左 PdfWriter.PageLayoutTwoColumnRight 双列显示,奇数页在右 页面 模式 PdfWriter.PageModeUseNone 既不显示大钢也不显示缩略图 PdfWriter.PageModeUseOutlines 显示大纲 PdfWriter.PageModeUseThumbs 显示缩略图 PdfWriter.PageModeFullScreen 全屏模式,没有菜单、windows控件或者其他任何windows可见控件 PdfWriter.HideToolbar 当文档激活时,是否隐藏阅读程序(如Adobe Reader)的工具条 PdfWriter.HideMenubar 当文档激活时,是否隐藏阅读程序的菜单 PdfWriter.HideWindowUI 当文档激活时,是否隐藏阅读程序的界面元素,如滚动条、导航条等,而仅仅保留文档显示 PdfWriter.FitWindow 是否调整文档窗口尺寸以适合显示第一页 PdfWriter.CenterWindow 是否将文档窗口放到屏幕中央 全屏模式下页面布局 PdfWriter.NonFullScreenPageModeUseNone 既不显示大钢也不显示缩略图 PdfWriter.NonFullScreenPageModeUseOutlines 显示大钢 PdfWriter.NonFullScreenPageModeUseThumbs 显示缩略图 说明: 基于第一个例子代码基础上、设置文档的密码和权限 注意若需要加密则必须导入bcprov-jdk16-1.44.jar这个包下载地址为: http://mirrors.ibiblio.org/pub/mirrors/maven2/org/bouncycastle/bcprov-jdk16/1.44/bcprov-jdk16-1.44.jar Code: 1.新建Class EncryptionItext、在main方法中: ------------------------------------------------------------------------------------------ Document document = new Document(); try { PdfWriter pdf = PdfWriter.getInstance(document,new FileOutputStream("D:\\helloworld.pdf")); /** * 第一个参数是设置userPassword为123 * 第二个参数是设置ownerPassword为1234 * 第三个参数设置user的权限可以复制、可以打印 * 第四个参数设置加密类型 */ pdf.setEncryption(new byte[]{'1','2','3'},new byte[]{'1','2','3','4'},PdfWriter.ALLOW_COPY|PdfWriter.ALLOW_PRINTING , PdfWriter.STANDARD_ENCRYPTION_40); document.open(); document.add(new Paragraph("hello world!")); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); }finally{ document.close(); } 运行-输出: 打开helloworld.pdf 弹出窗口要求输入口令,输入123 打开PDF后、查看文档属性: 可以看出只有打印和内容复制是被允许操作的 设置文档权限相关静态变量含义 下列表列出了文档许可参数设置的含义,不过要注意,如果你用40bit进行加密,那么标注为128bit的会自动的被禁止,如果你想要取消这些许可,你必须用128bit进行加密,显而易见,用128bit进行加密提供了更高的安全级别。 静态变量名 作用 标注 PdfWriter. ALLOW_ASSEMBLY 插入、删除、旋转页面、加入书签的允许。内容不能被改变、除非PdfWriter. ALLOW_MODIFY_CONTENTS设置了许可 128bit PdfWriter. ALLOW_COPY 拷贝或者提取文本或者图像的许可 PdfWriter. ALLOW_DEGRADED_PRINTING Printing the document, but not with the quality offered by PdfWriter.Allow-Printing. 128bit PdfWriter. ALLOW_FILL_IN 填充表单域许可 128bit PdfWriter. ALLOW_MODIFY_ANNOTATIONS 填写注释许可 PdfWriter. ALLOW_MODIFY_CONTENTS 修改内容许可,比如改变页面内容、或者插入删除页面 PdfWriter. ALLOW_PRINTING 允许打印文档 PdfWriter. ALLOW_SCREENREADERS Extracting text and graphics for use by accessibility devices. 128bit 文本实例7 : 文档小标题 import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.List; import com.lowagie.text.ListItem; import com.lowagie.text.PageSize; import com.lowagie.text.RomanList; import com.lowagie.text.pdf.PdfWriter; public class PdfText8 { public static void main(String args[]){ Document document=new Document(PageSize.A4); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\PdfText8.pdf")); //文档输出路径 document.open(); List list1 = new List(List.ORDERED, 20); //有序的 20为字与符号之间的距离 list1.add(new ListItem("the lazy dog")); document.add(list1); List list2 = new List(List.UNORDERED, 10); //无序的 list2.add("the lazy cat"); document.add(list2); List list3 = new List(List.ORDERED, List.ALPHABETICAL, 20); //设置特殊符号 这个是字母 有序 list3.add(new ListItem("the fence1")); list3.add(new ListItem("the fence2")); list3.add(new ListItem("the fence3")); document.add(list3); List list4 = new List(List.UNORDERED, 30); //设置特殊符号-----> list4.setListSymbol("----->"); list4.setIndentationLeft(10); //缩进多少 list4.add("the lazy dog"); document.add(list4); List list5 = new List(List.ORDERED, 20); list5.setFirst(11); //以11开始 12,13,14... list5.add(new ListItem("the lazy cat")); document.add(list5); List list = new List(List.UNORDERED, 10); list.setListSymbol(new Chunk('*')); list.add(list1); list.add(list3); list.add(list5); document.add(list); RomanList romanlist = new RomanList(20); romanlist.add(new ListItem("the lazy dog")); romanlist.add(new ListItem("the lazy dog")); document.add(romanlist); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 表格实例1 : 简单的表格及表格边框颜色 import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfWriter; public class PdfTable1 { public static void main(String[] args){ Document document=new Document(PageSize.A4); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\itextTable1.pdf")); document.open(); PdfPTable table = new PdfPTable(3); //列数 PdfPCell cell = new PdfPCell(new Paragraph("header with colspan 3")); //表头信息 cell.setColspan(3); //表头列数 table.addCell(cell); table.addCell("1.1"); table.addCell("2.1"); table.addCell("3.1"); table.addCell("1.2"); table.addCell("2.2"); table.addCell("3.2"); table.addCell("1.3"); table.addCell("2.3"); cell=new PdfPCell(new Paragraph("1.3")); cell.setBorderColor(Color.red); //设置边框颜色 /*cell.setBorderWidthLeft(6f); //设置表格边框样式和颜色 cell.setBorderWidthBottom(5f); cell.setBorderWidthRight(4f); cell.setBorderWidthTop(2f); cell.setBorderColorLeft(Color.red); cell.setBorderColorBottom(Color.orange); cell.setBorderColorRight(Color.yellow); cell.setBorderColorTop(Color.green);*/ table.addCell(cell); document.add(table); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 表格实例2 : 表的边框颜色表格列大小设置 import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfWriter; public class PdfTable2 { public static void main(String[] args){ Document document = new Document(PageSize.A4,50,50,50,50); try { PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\itextTable2.pdf")); document.open(); PdfPTable table = new PdfPTable(3); PdfPCell cell = new PdfPCell(new Paragraph("header with colspan 3")); cell.setColspan(3); cell.setHorizontalAlignment(Element.ALIGN_CENTER); //设置表头居中显示 table.addCell(cell); table.addCell("1.1"); table.addCell("2.1"); table.addCell("3.1"); table.addCell("1.2"); table.addCell("2.2"); table.addCell("3.2"); float[] widths = {0.3f, 0.3f, 0.1f}; //设置列的宽度 百分比的形式 table.setWidths(widths); document.add(table); table.setWidthPercentage(100); //页面的百分比 document.add(table); table.setWidthPercentage(50); table.setHorizontalAlignment(Element.ALIGN_RIGHT); //右对齐 document.add(table); table.setHorizontalAlignment(Element.ALIGN_LEFT); //左对齐 document.add(table); table.setSpacingBefore(15f); //设置表格与表格之间的距离 table.setSpacingAfter(10f); table.setTotalWidth(400); //设置表的绝对宽度 table.setLockedWidth(true); document.add(table); } catch (Exception de) { de.printStackTrace(); } document.close(); } } 表格实例3 : 嵌套表 import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfWriter; public class PdfTable4 { //嵌套表 public static void main(String args[]){ Document document = new Document(PageSize.A4.rotate(), 10, 10, 10, 10); try { PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\itextTable4.pdf")); document.open(); PdfPTable table = new PdfPTable(4); PdfPTable nested1 = new PdfPTable(2); nested1.addCell("1.1"); nested1.addCell("1.2"); PdfPTable nested2 = new PdfPTable(1); nested2.addCell("2.1"); nested2.addCell("2.2"); for (int k = 0; k < 24; ++k) { if (k == 1) { table.addCell(nested1); //两列 } else if (k == 20) { table.addCell(nested2); //一列 } else { table.addCell("cell " + k); } } document.add(table); document.close(); } catch (Exception de) { de.printStackTrace(); } document.close(); } } 表格实例4 : 合并单元格实例 import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfWriter; public class PdfTable5 { //嵌套表 没有重复边框 public static void main(String args[]){ Document document = new Document(PageSize.A4, 36, 36, 36, 36); try { PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\itextTable5.pdf")); document.open(); PdfPTable table = new PdfPTable(4); // 最外层table float[] wid = {80f, 100f, 80f, 60f}; table.setTotalWidth(wid); table.setLockedWidth(true); PdfPCell cell = null; // 最外层table的cell PdfPTable iTable = null; // 嵌套的table PdfPCell iCell = null; // 嵌套的table的cell iTable = new PdfPTable(3); float[] iWid = {80f, 100f, 80f}; iTable.setTotalWidth(iWid); iTable.setLockedWidth(true); iCell = new PdfPCell(new Paragraph("column 1")); iCell.setFixedHeight(30); iTable.addCell(iCell); iCell.setColspan(2); iTable.addCell(iCell); iCell = new PdfPCell(new Paragraph("column 2")); iCell.setFixedHeight(30); iTable.addCell(iCell); iTable.addCell(iCell); iTable.addCell(iCell); iCell = new PdfPCell(new Paragraph("column 3")); iCell.setFixedHeight(30); iTable.addCell(iCell); iTable.addCell(iCell); iTable.addCell(iCell); cell = new PdfPCell(iTable); // 用这个table初始外层table的cell cell.setColspan(3); // 设置它跨3列 // cell.setFixedHeight(10*10); // 设置它的高度 table.addCell(cell); // 将这个cell加入table中 iTable = new PdfPTable(1); float[] iWid2 = {60f}; iTable.setTotalWidth(iWid2); iTable.setLockedWidth(true); iCell = new PdfPCell(new Paragraph("i am here")); iTable.addCell(iCell); cell = new PdfPCell(iTable); // cell.setFixedHeight(3*30); // 跨3列了 table.addCell(cell); document.add(table); } catch (Exception e) { e.printStackTrace(); } document.close(); } } 表格实例5 : 单元格内数据显示实例 import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfWriter; public class PdfTable6 { public static void main(String[] args) { Document document=new Document(PageSize.A4); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\itextTable6.pdf")); document.open(); PdfPTable table = new PdfPTable(2); //列数 PdfPCell cell = new PdfPCell(new Paragraph("header with colspan 3")); //表头信息 cell.setColspan(3); //表头列数 table.addCell(cell); Paragraph p = new Paragraph("Quick brown fox jumps over the lazy dog asd fadsfasd faew fawe fawef " + "awe fawea awe af aw efaw efae fae faw efaew fa wef aef."); table.addCell("default alignment"); cell = new PdfPCell(p); table.addCell(p); table.addCell("centered alignment"); cell = new PdfPCell(p); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); table.addCell("right alignment"); cell = new PdfPCell(p); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); table.addCell(cell); table.addCell("lelt alignment"); cell = new PdfPCell(p); cell.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL); table.addCell(cell); table.addCell("blah\nblah\nblah\nblah\nblah\nblah\nblah\nblah\nblah\n"); table.getDefaultCell().setVerticalAlignment(Element.ALIGN_BOTTOM); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell("bottom"); //middle top document.add(table); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 图片实例1 : 简单的图片显示 import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Image; import com.lowagie.text.PageSize; import com.lowagie.text.pdf.PdfWriter; public class PdfImg1 { public static void main(String[] args) { Document document=new Document(PageSize.A4); try{ PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\itextTable7.pdf")); document.open(); Image img1 = Image.getInstance("F:\\foxdog.jpg"); img1.setIndentationLeft(100f); //设置绝对位置 document.add(img1); document.close(); }catch(Exception e){ e.printStackTrace(); } } } 综合应用实例1 : import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfWriter; public class PdfDemo1 { public static void main(String args[]){ Document document = new Document(PageSize.A4,10,10,36,36); try { PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("F:\\PdfDemo1.pdf")); document.open(); BaseFont bfChinese=BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); Font FontChinese=new Font(bfChinese,18,Font.BOLD); //设置字体 Font FontData=new Font(bfChinese,12,Font.UNDEFINED); Font FontTable=new Font(bfChinese,10,Font.NORMAL); Font FontTableHeader=new Font(bfChinese,8,Font.BOLD); Paragraph title=new Paragraph("客户报价单",FontChinese); title.setAlignment(Element.ALIGN_CENTER); document.add(title); PdfPTable tableHeader = new PdfPTable(2); PdfPCell cell=new PdfPCell(new Paragraph("客户编号: "+"03160564603216613",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableHeader.addCell(cell); cell=new PdfPCell(new Paragraph("报价单编号: "+"03160564603216613",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableHeader.addCell(cell); cell=new PdfPCell(new Paragraph("客户名称: "+"北京龙辉鞋业",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableHeader.addCell(cell); cell=new PdfPCell(new Paragraph(" 销售隶属: "+"03160564603216613",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableHeader.addCell(cell); cell=new PdfPCell(new Paragraph(" 电话: "+"024-265469846",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableHeader.addCell(cell); cell=new PdfPCell(new Paragraph(" 订单时间: "+"2010-10-13",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableHeader.setSpacingBefore(30f); //设置表上边的距离 tableHeader.addCell(cell); float[] widths = {0.5f,0.5f}; //设置列的宽度 百分比的形式 tableHeader.setWidths(widths); tableHeader.setSpacingBefore(15f); document.add(tableHeader); PdfPTable table = new PdfPTable(7); cell=new PdfPCell(new Paragraph("商品编号",FontTableHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); //居中显示 table.addCell(cell); cell=new PdfPCell(new Paragraph("商品名称",FontTableHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); cell=new PdfPCell(new Paragraph("数量",FontTableHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); cell=new PdfPCell(new Paragraph("单位",FontTableHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); cell=new PdfPCell(new Paragraph("单价(元)",FontTableHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); cell=new PdfPCell(new Paragraph("折扣(%)",FontTableHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); cell=new PdfPCell(new Paragraph("公式",FontTableHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); cell.setFixedHeight(20f); for(int i=0;i<=100;i++){ cell=new PdfPCell(new Paragraph("205464616543165",FontTable)); table.addCell(cell); cell=new PdfPCell(new Paragraph("笔记本电脑",FontTable)); table.addCell(cell); cell=new PdfPCell(new Paragraph("234",FontTable)); table.addCell(cell); cell=new PdfPCell(new Paragraph("台",FontTable)); table.addCell(cell); cell=new PdfPCell(new Paragraph("5000",FontTable)); table.addCell(cell); cell=new PdfPCell(new Paragraph("80%",FontTable)); table.addCell(cell); cell=new PdfPCell(new Paragraph("aefwa",FontTable)); table.addCell(cell); table.setHeaderRows(1); //每页都设置表头 } float[] width = {0.2f, 0.2f, 0.1f,0.1f,0.1f,0.1f,0.2f}; //设置列的宽度 百分比的形式 table.setWidths(width); table.setSpacingBefore(15f); //设置表上边的距离 document.add(table); PdfPTable tableBottom = new PdfPTable(2); cell=new PdfPCell(new Paragraph("销售人: "+"王萍",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableBottom.addCell(cell); cell=new PdfPCell(new Paragraph("销售编号: "+"03160564603216613",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableBottom.addCell(cell); cell=new PdfPCell(new Paragraph("最近修改人: "+"王萍",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableBottom.addCell(cell); cell=new PdfPCell(new Paragraph("客户类型: "+"服务",FontData)); cell.setBorder(Rectangle.NO_BORDER); tableBottom.addCell(cell); cell=new PdfPCell(new Paragraph("业务归属人: "+"王萍",FontData)); cell.setBorder(Rectangle.NO_BORDER); cell.setColspan(2); tableBottom.addCell(cell); cell=new PdfPCell(new Paragraph("备注:"+ " 相信自己,就是要‘自信’,就是面对困难、挫折和新的挑战不要折服,不要胆怯。面对困难、挫折、挑战只要你肯相信自" + "己,不断努力的付出,哪怕你现在的人生是从零开始,你都可以做得到。",FontData)); cell.setBorder(Rectangle.NO_BORDER); cell.setColspan(2); tableBottom.addCell(cell); tableBottom.setSpacingBefore(15f); //设置表上边的距离 document.add(tableBottom); document.close(); }catch(Exception e){ e.printStackTrace(); } } }

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享文档获得金币 ]
13 人已下载

下载文档

相关文档