1、 表格存成 pdf 填满页面篇一:如何把 PDF 中的表格数据转化为 word 中的表格如何把 PDF 中的表格数据转化为 word 中的表格1、 首先保证你的 PDF 文档可复制粘贴数据:如 pdf 格式的:复制文本。2、 然后新建文本文档,将复制的数据粘贴在文本文档中,如图:3、 将文本文档中的数据成行成列排列,如图:4、 新建 excel 表格:(1)2003 版:数据导入外部数据导入数据,接着如图:点击打开。可自定义线的方位。下一步下一步完成确认。自己再进行基础的表格操作,修改下即可!(2)WPS版:数据导入数据,出现:下一步,即:打开,选择“Windows(默认)”即:下一步,再出现
2、的对话框里选择(固定宽度) ,即:篇二:生成 pdf 文件方法针对生成 pdf 文件二中的方法一、前言在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成 PDF 报表的 Java 组件-iText。通过在服务器端使用 Jsp 或 JavaBean 生成 PDF 报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了 B/S 系统的报表处理问题。二、iText 简介iText 是著名的开放源码的站点 sourceforge 一个项目,是用于生成 PDF 文档的一个 java 类库。通过 iText 不仅可以生成 PDF 或 rtf 的文档,而且可以将 XML、Ht
3、ml 文件转化为 PDF 文件。iText 的安装非常方便,在/iText/download.html - download 网站上下载 iText.jar 文件后,只需要在系统的CLASSPATH 中加入 iText.jar 的路径,在程序中就可以使用iText 类库了。三、建立第一个 PDF 文档用 iText 生成 PDF 文档需要 5 个步骤:建立 com.lowagie.text.Document 对象的实例。Document document = new Document();建立一个书写器(Writer)与 document 对象关联,通过书写器(Writer)可以将文档写入到磁
4、盘中。PDFWriter.getInstance(document, new FileOutputStream(Helloworld.PDF);打开文档。document.open();向文档中添加内容。document.add(new Paragraph(Hello World);关闭文档。document.close();通过上面的 5 个步骤,就能产生一个 Helloworld.PDF的文件,文件内容为Hello World。建立 com.lowagie.text.Document 对象的实例com.lowagie.text.Document 对象的构建函数有三个,分别是:public
5、Document();public Document(Rectangle pageSize);public Document(Rectangle pageSize,int marginLeft,int marginRight,int marginTop, int marginBottom);构建函数的参数 pageSize 是文档页面的大小,对于第一个构建函数,页面的大小为 A4,同Document(PageSize.A4)的效果一样;对于第三个构建函数,参数marginLeft、marginRight、marginTop、marginBottom 分别为左、右、上、下的页边距。通过参数 pa
6、geSize 可以设定页面大小、面背景色、以及页面横向/纵向等属性。iText 定义了 A0-A10、AL、LETTER、HALFLETTER、_11x17、LEDGER、NOTE、B0-B5、ARCH_A-ARCH_E、FLSA 和 FLSE 等纸张类型,也可以通过 Rectangle pageSize = new Rectangle(144, 720);自定义纸张。通过 Rectangle 方法 rotate()可以将页面设置成横向。书写器(Writer)对象一旦文档(document)对象建立好之后,需要建立一个或多个书写器(Writer)对象与之关联。通过书写器(Writer)对象可以
7、将具体文档存盘成需要的格式,如com.lowagie.text.PDF.PDFWriter 可以将文档存成 PDF文件,com.lowagie.text.html.HtmlWriter 可以将文档存成 html 文件。 设定文档属性在文档打开之前,可以设定文档的标题、主题、作者、关键字、装订方式、创建者、生产者、创建日期等属性,调用的方法分别是:public boolean addTitle(String title)public boolean addSubject(String subject)public boolean addKeywords(String keywords)publi
8、c boolean addAuthor(String author)public boolean addCreator(String creator)public boolean addProducer()public boolean addCreationDate() public boolean addHeader(String name, String content)其中方法 addHeader 对于 PDF 文档无效,addHeader 仅对 html 文档有效,用于添加文档的头信息。当新的页面产生之前,可以设定页面的大小、书签、脚注(HeaderFooter)等信息,调用的方法是:
9、public boolean setPageSize(Rectangle pageSize)public boolean add(Watermark watermark)public void removeWatermark()public void setHeader(HeaderFooter header)public void resetHeader()public void setFooter(HeaderFooter footer)public void resetFooter()public void resetPageCount() public void setPageCoun
10、t(int pageN)如果要设定第一页的页面属性,这些方法必须在文档打开之前调用。对于 PDF 文档,iText 还提供了文档的显示属性,通过调用书写器的setViewerPreferences 方法可以控制文档打开时Acrobat Reader 的显示属性,如是否单页显示、是否全屏显示、是否隐藏状态条等属性。方法,可以设定文档的用户口令、只读、可打印等属性。添加文档内容所有向文档添加的内容都是以对象为单位的,如Phrase、Paragraph、Table、Graphic 对象等。比较常用的是段落(Paragraph)对象,用于向文档中添加一段文字。四、文本处理iText 中用文本块(Chu
11、nk)、短语(Phrase)和段落(paragraph)处理文本。文本块(Chunk)是处理文本的最小单位,有一串带格式(包括字体、颜色、大小)的字符串组成。如以下代码就是产生一个字体为 HELVETICA、大小为 10、带下划线的字符串:Chunk chunk1 = new Chunk(This text is underlined, FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE);短语(Phrase)由一个或多个文本块(Chunk)组成,短语(Phrase)也可以设定字体,但对于其中以设定过字体的文本块(Chun
12、k)无效。通过短语(Phrase)成员函数 add 可以将一个文本块(Chunk)加到短语(Phrase)中,如:phrase6.add(chunk);段落(paragraph)由一个或多个文本块(Chunk)或短语(Phrase)组成,相当于 WORD 文档中的段落概念,同样可以设定段落的字体大小、颜色等属性。另外也可以设定段落的首行缩进、对齐方式(左对齐、右对齐、居中对齐) 。通过函数 setAlignment 可以设定段落的对齐方式,setAlignment 的参数 1 为居中对齐、2 为右对齐、3 为左对齐,默认为左对齐。五、表格处理iText 中处理表格的类为:com.lowagie
13、.text.Table和 com.lowagie.text.PDF.PDFPTable,对于比较简单的表格处理可以用 com.lowagie.text.Table,但是如果要处理复杂的表格,这就需要 com.lowagie.text.PDF.PDFPTable进行处理。这里就类 com.lowagie.text.Table 进行说明。类 com.lowagie.text.Table 的构造函数有三个:Table (int columns)Table(Properties attributes) 参数columns、rows、attributes 分别为表格的列数、行数、表格属性。创建表格时必须
14、指定表格的列数,而对于行数可以不用指定。建立表格之后,可以设定表格的属性,如:边框宽度、边框颜色、衬距(padding space 即单元格之间的间距)大小等属性。下面通过一个简单的例子说明如何使用表格,代码如下:1:Table table = new Table(3);2:table.setBorderWidth(1);3:table.setBorderColor(new Color(0, 0, 255);4:table.setPadding(5);5:table.setSpacing(5);6:Cell cell = new Cell(header); 7:cell.setHeader(t
15、rue);8:cell.setColspan(3);9:table.addCell(cell); 10:table.endHeaders();11:cell = new Cell(example cell with colspan 1 and rowspan 2);12:cell.setRowspan(2);13:cell.setBorderColor(new Color(255, 0, 0);14:table.addCell(cell);15:table.addCell(1.1);16:table.addCell(2.1);17:table.addCell(1.2);18:table.add
16、Cell(2.2);19:table.addCell(cell test1);20:cell = new Cell(big cell);21:cell.setRowspan(2);22:cell.setColspan(2);23:table.addCell(cell);24:table.addCell(cell test2);运行结果如下:header cell test2篇三:java 在 pdf 中生成表格的方法java 在 pdf 中生成表格的方法这篇文章主要介绍了 java 在 pdf 中生成表格的方法,需要的朋友可以参考下1、目标在 pdf 中生成一个可变表头的表格,并向其中填充数据
17、。通过泛型动态的生成表头,通过反射动态获取实体类(我这里是 User)的 get 方法动态获得数据,从而达到动态生成表格。每天生成一个文件夹存储生成的 pdf 文件(文件夹的命名是年月日时间戳) ,如:20151110生成的文件可能在毫秒级别,故文件的命名规则是到毫秒的时间戳-uuid,如:20151110100245690-ece540e5-7737-4ab7-b2d6-87bc23917c8c.pdf通过读取 properties 文件动态获取文件存储的跟目录。2、所需的 jar这里通过 itex 插件进行 pdf 的生成,需要的 jar 包括以下几个3、编码实现1) 、实体类packag
18、e com.zcr.until;public class Userprivate String name;private int age ;private float height;private String adress;private String sex;private String jj;public String getJj()return jj;public void setJj(String jj)this.jj = jj;public User()public User(String name,int age,float height,String adress,String
19、 sex,String jj) this.name = name;this.age = age;this.height = height;this.adress = adress;this.sex = sex;this.jj = jj;public String getAdress()return adress;public void setAdress(String adress)this.adress = adress;public String getSex()return sex;public void setSex(String sex)this.sex = sex;public S
20、tring getName() return name;public void setName(String name) this.name = name;public int getAge() return age;public void setAge(int age) this.age = age;public float getHeight() return height;public void setHeight(float height) this.height = height;2) 、properties 文件pdfPath=E:/appDataPdf3)、读取 properti
21、es 文件,获取 pdf 存储的路径package com.zcr.until;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class GetFilePlace/* 读取文件,获取 excel 保存的根目录* return excel 保存的根目录*/public String getFile
22、Path()String dir = System.getProperty(user.dir); /获得tomcat 所在的工作路径/获取到存储了文件存储位置的 filedir.properties 文件路径 -java Project 的文件路径String realDir = dir + File.separator + src + File.separator +META-INF + File.separator + filedir.properties;/Web project 存储路径/*String realDir = dir.substring(0, dir.length()-4
23、) + File.separator +webapps + File.separator + generateExcels+ File.separator + classes + File.separator + META-INF + File.separator + config + File.separator + filedir.properties;*/return realDir;/* 获取 filePath 路径【properities 文件】中 key 对应的值,* param filePath properities 文件路径【包含properities 文件】* param
24、key 要查找的 key 值* return key 对应的 value*/public String GetValueByKey(String filePath, String key)Properties pps = new Properties();try InputStream in = new BufferedInputStream (new FileInputStream(filePath);pps.load(in);String value = pps.getProperty(key);in.close();return value;catch (IOException e) e
25、.printStackTrace();return null;/* 查询 properities 文件中可以对应的存储地点* param key 查询主键* return key 对应的存储地址*/public String getFileDirFromProperties(String key)return GetValueByKey(getFilePath(),key);4) 、获取当天存在的文件路径,不存在则生成一个新的文件夹package com.zcr.service;import java.io.File;import java.text.SimpleDateFormat;impo
26、rt java.util.Calendar;public class GenerateFold/* 查询当前生成的 excel 需要存在在哪个路径,如果存在则存储在相应的位置,否则生成改目录, 每天生成一个文件夹,文件夹的命名规则为 年月日的时间戳* param foldName 生成 excel 保存路径* return 现在的 excel 需要保存路径*/public String getFold(String foldName)SimpleDateFormat format = new SimpleDateFormat(yyyyMMdd);String todayStr = format
27、.format(Calendar.getInstance().getTime();String foldPath = foldName + File.separator + todayStr;File file = new File(foldPath);if(!file.exists() !file.isDirectory()System.out.println(不存在);file.mkdirs();elseSystem.out.println(存在);return foldPath;5) 、生成文件的名字package com.zcr.until;import java.io.File;im
28、port java.text.SimpleDateFormat;import java.util.Calendar;import java.util.UUID;/* 生成文件名字* author zcr*/public class GenerateFileName/* 根据文件类别生成文件的名字,文件的命名规则是:文件目录/生成时间-uuid(全球唯一编码).文件类别* param fileDir 文件的存储路径* param fileType 文件的类别* return 文件的名字*/public String generateFileName(String fileDir,String f
29、ileType)String saveFileName = ;SimpleDateFormat format = new SimpleDateFormat(yyyyMMddHHmmssSS);saveFileName += format.format(Calendar.getInstance().getTime();UUID uuid = UUID.randomUUID(); /全球唯一编码saveFileName += - + uuid.toString();saveFileName += . + fileType;saveFileName = fileDir + File.separato
30、r + saveFileName;return saveFileName;6) 、生成 pdfpackage com.zcr.service;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.List;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.Phrase;