Java生成PDF文档(表格、列表、添加图片等)

需要的两个包及下载地址:

(1)iText.jar:http://download.csdn.net/source/296416

(2)iTextAsian.jar(用来进行中文的转换):http://download.csdn.net/source/172399

代码如下:

 1 import java.awt.Color;
 2 import java.io.FileOutputStream;
 3 import com.lowagie.text.Cell;
 4 import com.lowagie.text.Chapter;
 5 import com.lowagie.text.Document;
 6 import com.lowagie.text.Font;
 7 import com.lowagie.text.Image;
 8 import com.lowagie.text.List;
 9 import com.lowagie.text.ListItem;
10 import com.lowagie.text.PageSize;
11 import com.lowagie.text.Paragraph;
12 import com.lowagie.text.Section;
13 import com.lowagie.text.Table;
14 import com.lowagie.text.pdf.BaseFont;
15 import com.lowagie.text.pdf.PdfWriter;
16 public class ITextDemo {
17     public boolean iTextTest() {
18         try {
19             /** 实例化文档对象 */
20             Document document = new Document(PageSize.A4, 50, 50, 50, 50);
21             /** 创建 PdfWriter 对象 */
22             PdfWriter.getInstance(document,// 文档对象的引用
23                     new FileOutputStream("d://ITextTest.pdf"));//文件的输出路径+文件的实际名称
24             document.open();// 打开文档
25             /** pdf文档中中文字体的设置,注意一定要添加iTextAsian.jar包 */
26             BaseFont bfChinese = BaseFont.createFont("STSong-Light",
27                     "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
28             Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);//加入document:
29             /** 向文档中添加内容,创建段落对象 */
30             document.add(new Paragraph("First page of the document."));// Paragraph添加文本
31             document.add(new Paragraph("我们是害虫", FontChinese));
32             /** 创建章节对象 */
33             Paragraph title1 = new Paragraph("第一章", FontChinese);
34             Chapter chapter1 = new Chapter(title1, 1);
35             chapter1.setNumberDepth(0);
36             /** 创建章节中的小节 */
37             Paragraph title11 = new Paragraph("表格的添加", FontChinese);
38             Section section1 = chapter1.addSection(title11);
39             /** 创建段落并添加到小节中 */
40             Paragraph someSectionText = new Paragraph("下面展示的为3 X 2 表格.",
41                     FontChinese);
42             section1.add(someSectionText);
43             /** 创建表格对象(包含行列矩阵的表格) */
44             Table t = new Table(3, 2);// 2行3列
45             t.setBorderColor(new Color(220, 255, 100));
46             t.setPadding(5);
47             t.setSpacing(5);
48             t.setBorderWidth(1);
49             Cell c1 = new Cell(new Paragraph("第一格", FontChinese));
50             t.addCell(c1);
51             c1 = new Cell("Header2");
52             t.addCell(c1);
53             c1 = new Cell("Header3");
54             t.addCell(c1);
55             // 第二行开始不需要new Cell()
56             t.addCell("1.1");
57             t.addCell("1.2");
58             t.addCell("1.3");
59             section1.add(t);
60             /** 创建章节中的小节 */
61             Paragraph title13 = new Paragraph("列表的添加", FontChinese);
62             Section section3 = chapter1.addSection(title13);
63             /** 创建段落并添加到小节中 */
64             Paragraph someSectionText3 = new Paragraph("下面展示的为列表.", FontChinese);
65             section3.add(someSectionText3);
66             /** 创建列表并添加到pdf文档中 */
67             List l = new List(true, true, 10);// 第一个参数为true,则创建一个要自行编号的列表,
68             // 如果为false则不进行自行编号
69             l.add(new ListItem("First item of list"));
70             l.add(new ListItem("第二个列表", FontChinese));
71             section3.add(l);
72             document.add(chapter1);
73             /** 创建章节对象 */
74             Paragraph title2 = new Paragraph("第二章", FontChinese);
75             Chapter chapter2 = new Chapter(title2, 1);
76             chapter2.setNumberDepth(0);
77             /** 创建章节中的小节 */
78             Paragraph title12 = new Paragraph("png图片添加", FontChinese);
79             Section section2 = chapter2.addSection(title12);
80             /** 添加图片 */
81             section2.add(new Paragraph("图片添加: 饼图", FontChinese));
82             Image png = Image.getInstance("D:/pie.png");//图片的地址
83             section2.add(png);
84             document.add(chapter2);
85             document.close();
86             return true;
87         } catch (Exception e2) {
88             System.out.println(e2.getMessage());
89         }
90         return false;
91     }
92     public static void main(String args[]) {
93         System.out.println(new ITextDemo().iTextTest());
94     }
95 }

如果发现中文无法显示的时候,可以在你需要显示中文的地方先new Paragraph("",FontChinese);

FontChinese:为中文字体的设置,见代码中。

时间: 2024-10-09 20:23:56

Java生成PDF文档(表格、列表、添加图片等)的相关文章

java生成PDF文档

依赖jar包:iText-2.1.7.jar.iTextAsian.jar.itext-rtf-2.1.7.jar 代码如下: package com.servlet; import java.awt.Color; import java.io.FileOutputStream; import java.text.DecimalFormat; import java.util.Arrays; import java.util.HashSet; import java.util.List; imp

Java iText使用PDF模板生成PDF文档

我们系统需要生成一个可以打印的PDF文档,老板给了我一个Word文档,按照这个Word文档的格式生成PDF文档. 第一步:下载AdobeAcrobat DC,必须使用这个来制作from域. 第二步:使用AdobeAcrobat DC将Word导成PDF文档. 第三步:由于还要加水印的效果,所以还是使用AdobeAcrobat DC来添加水印,非常方便: 添加水印的方法:使用AdobeAcrobat DC打开PDF文档,"工具"->"编辑PDF"->&qu

利用Java动态生成 PDF 文档

利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那么目前最佳的解决方案,你可能会想到 iText ,对没错... iText+(Velocity / Freemarker)可以实现.不过据我熟悉,iText本身提供的HTML解析器还是不够强大,许多HTML标签和属性无法识别,更悲催的是简单的CSS它不认识,排版调整样式会让你头大的.不要失望,接下来

自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器

置顶2017年11月06日 14:41:04 阅读数:2311 这几天,任务中有一个难点是把一个打印页面自动给生成PDF文档,并且上传至服务器,然而公司框架只有手动上传文档,打印时可以保存为PDF在本地吧,所以感到很头疼,刚开始没有方向,所以只有surf the Internet了,网上看了很多资料,渐渐的从一点方向也不懂,到慢慢开始了解怎么着手去做,废话就不说了, 我看网上大概介绍了三种方式:Jasper Report . iText . flying sauser jasper report

使用PHP生成PDF文档

原文:使用PHP生成PDF文档 实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快速生成PDF文件的PHP5函数包.TCPDF基于FPDF进行扩展和改进,增强了实用功能. 使用PHP生成PDF文档 实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快速生成PDF文件

利用PDFLib生成PDF文档

本文代码生成的PDF文档效果图 一.PDF介绍 PDF是Portable Document Format的缩写,PDF文件格式是国际通用的电子文档交换事实标准,被许多国家采用作为电子文档交换.PDF文件可以在各种平台下阅读.编辑.发布.该文件格式支持字体.图像.甚至任何附件的嵌入.您可以通过免费的Adobe Acrobat Reader来阅读.编辑PDF文档. 二.PDFLib介绍 PDFLib是用于创建PDF文档的开发库,提供了简单易用的API,隐藏了创建PDF的复杂细节且不需要第3方软件的支

使用PDFLib生成PDF文档教程

一.PDF介绍PDF是Portable Document Format的缩写,PDF文件格式是国际通用的电子文档交换事实标准,被许多国家采用作为电子文档交换.PDF文件可以在各种平台下阅读.编辑.发布.该文件格式支持字体.图像.甚至任何附件的嵌入.您可以通过免费的Adobe Acrobat Reader来阅读.编辑PDF文档. 二.PDFLib介绍PDFLib是用于创建PDF文档的开发库,提供了简单易用的API,隐藏了创建PDF的复杂细节且不需要第3方软件的支持.PDFLib库对于个人是免费的,

java读取pdf文档

import java.io.*;import org.pdfbox.pdmodel.PDDocument;import org.pdfbox.pdfparser.PDFParser;import org.pdfbox.util.PDFTextStripper; public class PDFReader {  public static String file_path = "F:/pdf/网易技术部的MySQL中文资料.pdf"; // 获取PDF内纯文本信息 public St

java导出pdf文档

java导出pdf文档,多是iText实现的,可以创建pdf文档,并向文档写入内容. 1 导入包:itext-2.0.6.jar       itext必须使用的包. iTextAsian.jar      向pdf写入中文必须的包. 2 代码: package com.exp.pdf; import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowa