java使用iText生成pdf表格

转载地址:http://www.open-open.com/code/view/1424011530749

首先需要你自己下载itext相关的jar包并添加引用,或者在maven中添加如下引用配置:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<dependency>

    <groupId>com.lowagie</groupId>

    <artifactId>iText</artifactId>

    <version>2.1.5</version>

</dependency>      

<!--itext生成word文档,需要下面dependency-->

<dependency>

    <groupId>com.lowagie</groupId>

    <artifactId>iText-rtf</artifactId>

    <version>2.1.4</version>

</dependency>  

<dependency>

    <groupId>com.lowagie</groupId>

    <artifactId>iTextAsian</artifactId>

    <version>2.1.4</version>

</dependency>

如下代码:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

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();

        }

    }

}

时间: 2024-10-09 19:37:08

java使用iText生成pdf表格的相关文章

Java 使用itext生成pdf以及下载

使用方法: 1.需要两个jar包: iText-5.0.6.jar    //必须使用该版本,否则缺少相关的方法 TextAsian.jar //是为了文档中正常显示中文所必须引用的包 TextAsian.jar使用时并不是单纯的引入就可以了,还需要进一步处理该jar包,否则无法显示 (无奈当时没有保存那个解决方法的链接,所以以后要用正确的包的话,就去毕设项目下找该包) 2以下是一个完整的例子. 一.要生成pdf的jsp页面 <%@ page language="java" im

Java Itext 生成PDF文件

利用Java Itext生成PDF文件并导出,实现效果如下: PDFUtil.java package com.jeeplus.modules.order.util; import java.io.OutputStream; import java.math.BigDecimal; import java.net.URL; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Arr

MVC 生成PDf表格并插入图片

最近做的项目中有一个功能,将最终的个人信息生成PDF表格,并插入图片.对于没接触过的程序员来说回一片茫然,网上有多种生成PDf的方法,我给大家介绍一下我认为比较简单,好操作的一种. iTextSharp组件 使用方法. 1,引入itextsharp.dll 2,  引入命名空间 ? 1 2 3 using iTextSharp; using iTextSharp.text; using iTextSharp.text.pdf; ? 1 2 3 4 5 6 7 8 9 10 11 12     D

itext生成PDF文件报错“Font &#39;STSong-Light&#39; with &#39;UniGB-UCS2-H&#39; is not recognized.”

最近需要写一个抽取表结构的工具,类似于powerdesigner中的表图,其中有一步用到了itext这个第三方jar包来生成pdf文件,碰到了一个问题,记录于此. 问题描述: 工程使用maven构建,pom.xml中对于jar包的定义如下: <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</vers

新知识:Java 利用itext填写pdf模板并导出(昨天奋战到深夜四点,知道今天两点终于弄懂)

废话少说,不懂itext干啥用的直接去百度吧. ***************制作模板******************* 1.先用word做出界面 2.再转换成pdf格式 3.用Adobe Acrobat 打开你刚刚用word转换成的pdf 会出现如下界面 下一步 点击浏览,选择刚才你转换好的pdf 下一步 4.打开后它会自动侦测并命名表单域,右键表单域,点击属性,出现文本域属性对话框,有的人说要改成中文字体,可是我没有改一样成功啦 5.一般情况下不需要修改什么东西,至少我没有修改哦 6.直

java调用wkhtmltopdf生成pdf文件,美观,省事

最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多东西,样式,字体等等,好麻烦,毕竟博主这么懒的人,哈哈.-------jstarseven 言归正传: java生成pdf文件,方式很多,以上提到的哪几种方式具体可以参考这篇文章<讲解很详细>:http://blog.csdn.net/ouyhong123/article/details/2640

利用itext生成pdf的简单例子

一.itext简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转化为PDF文件. iText的安装非常方便,在http://www.lowagie.com/iText/download.html网站上下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了 二 .生成简单的pdf文件 1

itext 生成pdf文件添加页眉页脚

原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpdf是itext的升级版本,并且itextpdf-5.5.jar以上版本算总页数不需要-1,之前版本必须-1: jfinal.jar只能用2.0版本,用3.0的会报版本过高:希望能帮到有需要的人 itextpdf-5.5.13.jar 下载地址:http://central.maven.org/mav

Freemarker+IText生成pdf文件

最近项目中遇到要用html生成pdf文件的需求,一开始研究了下前端插件jspdf,使用h5 canvas绘图生成图片,再把图片生成pdf文件,遇到了各种各样的问题,生成的pdf文件达到20多M,height超过5000浏览器就崩溃,有兴趣的童鞋可以尝试一下,该方案LZ最终放弃了. 接着开始尝试服务端生成,使用freemaker模板生成静态html文件,通过iext生成pdf,网上很多关于renderer.setDocument(dom,null)的用法,LZ尝试后发现效率奇低,最后放弃了,直接使