Java生成PDF文档(表格、列表、添加图片等)
需要的两个包及下载地址:
(1)iText.jar:http://download.csdn.net/source/296416
(2)iTextAsian.jar(用来进行中文的转换):http://download.csdn.net/source/172399
代码如下:
import java.awt.Color;
import java.io.FileOutputStream;
import com.lowagie.text.Cell;
import com.lowagie.text.Chapter;
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.List;
import com.lowagie.text.ListItem;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Section;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;
public class ITextDemo {
public boolean iTextTest() {
try {
/** 实例化文档对象 */
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
/** 创建 PdfWriter 对象 */
PdfWriter.getInstance(document,// 文档对象的引用
new FileOutputStream("d://ITextTest.pdf"));//文件的输出路径+文件的实际名称
document.open();// 打开文档
/** pdf文档中中文字体的设置,注意一定要添加iTextAsian.jar包 */
BaseFont bfChinese = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);//加入document:
/** 向文档中添加内容,创建段落对象 */
document.add(new Paragraph("First page of the document."));// Paragraph添加文本
document.add(new Paragraph("我们是害虫", FontChinese));
/** 创建章节对象 */
Paragraph title1 = new Paragraph("第一章", FontChinese);
Chapter chapter1 = new Chapter(title1, 1);
chapter1.setNumberDepth(0);
/** 创建章节中的小节 */
Paragraph title11 = new Paragraph("表格的添加", FontChinese);
Section section1 = chapter1.addSection(title11);
/** 创建段落并添加到小节中 */
Paragraph someSectionText = new Paragraph("下面展示的为3 X 2 表格.",
FontChinese);
section1.add(someSectionText);
/** 创建表格对象(包含行列矩阵的表格) */
Table t = new Table(3, 2);// 2行3列
t.setBorderColor(new Color(220, 255, 100));
t.setPadding(5);
t.setSpacing(5);
t.setBorderWidth(1);
Cell c1 = new Cell(new Paragraph("第一格", FontChinese));
t.addCell(c1);
c1 = new Cell("Header2");
t.addCell(c1);
c1 = new Cell("Header3");
t.addCell(c1);
// 第二行开始不需要new Cell()
t.addCell("1.1");
t.addCell("1.2");
t.addCell("1.3");
section1.add(t);
/** 创建章节中的小节 */
Paragraph title13 = new Paragraph("列表的添加", FontChinese);
Section section3 = chapter1.addSection(title13);
/** 创建段落并添加到小节中 */
Paragraph someSectionText3 = new Paragraph("下面展示的为列表.", FontChinese);
section3.add(someSectionText3);
/** 创建列表并添加到pdf文档中 */
List l = new List(true, true, 10);// 第一个参数为true,则创建一个要自行编号的列表,
// 如果为false则不进行自行编号
l.add(new ListItem("First item of list"));
l.add(new ListItem("第二个列表", FontChinese));
section3.add(l);
document.add(chapter1);
/** 创建章节对象 */
Paragraph title2 = new Paragraph("第二章", FontChinese);
Chapter chapter2 = new Chapter(title2, 1);
chapter2.setNumberDepth(0);
/** 创建章节中的小节 */
Paragraph title12 = new Paragraph("png图片添加", FontChinese);
Section section2 = chapter2.addSection(title12);
/** 添加图片 */
section2.add(new Paragraph("图片添加: 饼图", FontChinese));
Image png = Image.getInstance("D:/pie.png");//图片的地址
section2.add(png);
document.add(chapter2);
document.close();
return true;
} catch (Exception e2) {
System.out.println(e2.getMessage());
}
return false;
}
public static void main(String args[]) {
System.out.println(new ITextDemo().iTextTest());
}
}
如果发现中文无法显示的时候,可以在你需要显示中文的地方先new Paragraph("",FontChinese);
FontChinese:为中文字体的设置,见代码中。
Java生成PDF文档(表格、列表、添加图片等)的更多相关文章
- Java 设置PDF文档背景——单色背景、图片背景
一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括2种设置方法: 设置纯色背景色 设置图 ...
- 关于根据模板生成pdf文档,差入图片和加密
import com.alibaba.fastjson.JSONObject; import com.aliyun.oss.OSSClient; import com.itextpdf.text.pd ...
- 手把手教你使用 Java 在线生成 pdf 文档
一.介绍 在实际的业务开发的时候,研发人员往往会碰到很多这样的一些场景,需要提供相关的电子凭证信息给用户,例如网银/支付宝/微信购物支付的电子发票.订单的库存打印单.各种电子签署合同等等,以方便用户查 ...
- 利用Java动态生成 PDF 文档
利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...
- Aspose.Words操作word生成PDF文档
Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...
- 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器
置顶2017年11月06日 14:41:04 阅读数:2311 这几天,任务中有一个难点是把一个打印页面自动给生成PDF文档,并且上传至服务器,然而公司框架只有手动上传文档,打印时可以保存为PDF在本 ...
- 使用PHP生成PDF文档
原文:使用PHP生成PDF文档 实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快 ...
- DocFX生成PDF文档
使用DocFX生成PDF文档,将在线文档转换为PDF离线文档. 关于DocFX的简单介绍使用DocFX生成文档 使用docfx 命令 1.下载 https://github.com/dotnet/do ...
- ireport图形化界面生成pdf文档
一.ireport软件安装 1.下载软件的官网 https://community.jaspersoft.com/project/ireport-designer/releases 2.安装软件 ...
随机推荐
- python 异常处理函数--raise
Python 异常处理--raise函数用法 在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称.异常名称标识出具体的类: Python异常处理是那些类的对象 ...
- SS报错的解决
SS报错 AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: 解决方案: EVP_CIPHER_ ...
- ES6 class的继承-学习笔记
1.简介 Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多. 子类必须在constructor方法中调用super方法,否则新建实例时会报错. ...
- Makefile 中 ifeq ifneq 等用法
(1)ifeq的用法 ifeq ($(变量名), 变量值 ) ........ else ifeq ($(..), ..) ......... else ......... endif (2)最近在学 ...
- 【转】IPV6的地址类型
http://blog.sina.com.cn/s/blog_8d795a0f01018hiz.html <IPV6的地址类型>IPV6的地址类型 可分为三大类: 1.单播地址 2.组播地 ...
- Python之路,第七篇:Python入门与基础7
python3 元组 (tuple) 元组是不可改变的序列, 同list 一样, 元组可以存放任意的值: 表示方法: 用小括号()括起来: 单个元素括起来后加逗号(,)区分单个对象还是元组: 创建空 ...
- c#网站文件下载次数统计
参考:http://q.cnblogs.com/q/17954/ 项目中需要准确记录文件的下载次数,和帖子的要求差不多. 参考了帖子中推荐的链接,问题得到了有效控制. 大概方法:逐字节(大小可以自己控 ...
- 在django中进行MySQL入库
在django中进行mysql 入库 需要导入 : from django.db import models 在添加主键时,需要使用: primary_key=True id = models. ...
- lesson2-cnn-fastai
%mkdir的做法glob('.jpg')np.random.permutation(图片)np.random.rename(,)#save_array:utils中,连接每个btch得到的数组#ke ...
- 自定义bootbox:dialog方法
<script src="static/ace/js/bootbox.js"></script>bootbox.dialog({ message: '< ...