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.安装软件 ...
随机推荐
- tp5 生成缩略图片
我先说下我的思路,先把正常图片存到服务器,再通过代码将服务器上的大图压缩,生成新的小图替代大图 下面上代码 前台HTML代码 <div class="upload-btn"& ...
- certbot自动在ubuntu16.04的nginx上部署let's encrypt免费ssl证书
终结CA收费时代,让互联网更安全 Install On Ubuntu systems, the Certbot team maintains a PPA. Once you add it to you ...
- vim3
使用vim编辑多个文件 编辑多个文件有两种形式,一种是在进入vim前使用的参数就是多个文件.另一种是在进入vim后再编辑其他文件. 1. vim 1.txt 2.txt 在命令行模式下输入:n编辑2. ...
- busybox 安装问题解决
直接编译错误 1.loginutils/passwd.c:93:16: error: storage size of ‘rlimit_fsize’ isn’t known 解决方法:在busybox根 ...
- php 怎样将有范围的ip转化为整型范围
php中将IP转换成整型的函数ip2long()容易出现问题,在IP比较大的情况下,会变成负数.如下: <?php $ip = "192.168.1.2"; $ip_n = ...
- Dalvik源码阅读笔记(一)
dalvik 虚拟机启动入口在 JNI_CreateJavaVM(), 在进行完 JNIEnv 等环境设置后,调用 dvmStartup() 函数进行真正的 DVM 初始化. jint JNI_Cre ...
- Android ADT 工具下载地址
/********************************************************************************* * Android ADT 工具下 ...
- ImportError: No module named 'xml'
/********************************************************************************* * ImportError: No ...
- [LeetCode&Python] Problem 653. Two Sum IV - Input is a BST
Given a Binary Search Tree and a target number, return true if there exist two elements in the BST s ...
- C#语法-虚方法详解 Virtual 虚函数
虚方法 / Virtual 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...