本节内容:
1:从数据库里查出数据,并利用iText组件,将其显示在pdf上;
开发环境:
linux平台,
MyEclipse 7.1,
mysql5.0,
所需jar包:
iText-2.0.8.jar(本来想用5.0的,但是目前的自学的资料上有些功能不支持,所有换个稳定点的);
mysql-connector-java-5.0.8-bin.jar(看附件);
首先回顾下创建数据库连接的代码:
package com.keith.DB.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBConnection {
private Connection conn = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
public DBConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/iTextTest", "root", "111111");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
/***
* 增删改 用此方法
*
* @param sql
* @param obj
* @return
* @throws SQLException
*/
public int executeUpdate(String sql, Object[] obj) throws SQLException {
ps = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
ps.setObject(i + 1, obj[i]);
}
int ri = ps.executeUpdate();
return ri;
}
/***
* 查询调用此方法
*
* @param sql
* @param obj
* @return
* @throws SQLException
*/
public ResultSet executeQuery(String sql, Object[] obj) throws SQLException {
ps = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
ps.setObject(i + 1, obj[i]);
}
rs = ps.executeQuery();
return rs;
}
/***
* 关闭数据库
*
* @throws SQLException
*/
public void close() throws SQLException {
if (conn != null) {
conn.close();
}
if (ps != null) {
ps.close();
}
if (rs != null) {
rs.close();
}
}
}
当然连接数据库有很多种写法,哪位朋友觉得自己写的比较好,最好也发表出来吧!
一个简单的数据库和表:
create database iTextTest;
use iTextTest;
create table user(
id int not null,
name varchar not null,
birthday date not null
)
insert into user values(1,"keith",1990-09-06);
下面看:如何通过Itext来获取查询后的结果(我的这个方法很笨,且目前只能支持string 类型的内容):
希望大家也能帮我如何实现其他类型的结果,或者共享下更好的方法:
package com.keith.DB;
import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.keith.DB.util.DBConnection;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class ITextDB {
public static final String URI = "/home/core/Desktop/itext_test/iTextDB.pdf";
public static void main(String[] args) throws SQLException {
Document document = new Document();
try {
PdfWriter.getInstance(document, new FileOutputStream(URI));
document.open();
// 实例化连接数据库对象
DBConnection dbc = new DBConnection();
ResultSet rs = dbc.executeQuery("select * from user",
new Object[] {});
while (rs.next()) {
String name = rs.getString("name");
document.add(new Paragraph(name));
document.close();
}
dbc.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
运行代码,看结果!
分享到:
相关推荐
在使用iText生成PDF目录时,要注意几点: - 确保每个书签都有一个对应的目标位置,否则在PDF中点击书签可能无法正确跳转。 - 避免内存泄漏,尤其是在处理大量书签时,要及时释放资源。 - 书签层次不宜过深,以免影响...
iText生成pdf解决中文不显示字库,pdf凉字不显示,由于生成iText插件生成pdf的时候中文会显示不出来,遇到过的是"凉"字,查到是字体库的原因,网上下载字体库msyh.ttc,生成的时候指定字体库,就可以解决了,小bug一...
在Android平台上,生成和读取PDF文件是一项常见的需求,特别是在数据导出、报告生成或文档共享等场景。iText是一个强大的开源库,它允许开发者在Java和.NET环境中创建、编辑和处理PDF文档。在这个场景中,我们将探讨...
总的来说,iText为开发者提供了一个全面的工具集,使得在Java中生成PDF变得简单高效。通过理解和熟练运用上述知识点,你可以创建满足各种需求的PDF文档。在实际开发中,还可以结合iText的其他高级特性,如书签、...
PDF是一种通用的文件格式,能够保留文档的原始格式和布局,方便在各种设备和操作系统上查看。IText提供了丰富的API,允许开发者生成、修改和解析PDF文档。以下是一个简单的示例,演示如何使用IText创建一个包含文本...
这篇博客 "freemarker+itext生成PDF" 可能详细介绍了如何结合这两者来生成PDF文件,这在报表生成、发票打印或任何需要静态化输出的场景中非常有用。 首先,让我们了解FreeMarker。FreeMarker是一个基于模板的语言,...
在IT行业中,生成PDF文档是常见的需求,尤其当需要将图片转换为便于分享和打印的格式时。`iText`是一个强大的Java库,专门用于创建、编辑和处理PDF文档。本教程将详细介绍如何使用`iText`将图片转换为高清PDF,并...
本教程将探讨如何利用iText库在Spring Boot应用中从HTML页面生成PDF,并进行一系列的定制化操作,如添加页眉、页码、水印、目录以及二维码。 首先,iText是一个强大的Java库,专门用于创建和编辑PDF文档。它提供了...
在IT行业中,生成PDF文档是常见的需求,尤其是在Java开发中。Itext是一个广泛使用的库,它允许开发者方便地创建和编辑PDF文档。然而,在处理中文文本时,可能会遇到一个问题:中文字符不换行,这会给PDF的排版带来...
在IT行业中,PDF文档的生成和安全签署是常见的需求,特别是在法律、金融和政府等领域。本文将详细探讨如何使用iText库生成PDF并利用证书进行签章,确保文档的完整性和不可篡改性。 首先,iText是一个强大的开源Java...
用itext方法生成 与Word一样的目录
Android iText生成和读取PDF文件 博客地址: http://blog.csdn.net/xuwenneng/article/details/52995392 博客上有github地址啊。
iText 是一个强大的 Java 库,用于生成和编辑 PDF 文档。在 Java 开发中,iText 提供了丰富的 API,使得开发者可以方便地在代码中创建 PDF 文件、添加文本、图像、表格、链接等元素,甚至进行数字签名和表单处理。在...
iText还支持添加水印,通过PdfCanvas或者PdfFormXObject可以在PDF上绘制文本或图像作为水印。可以调整透明度、角度、位置等属性,使其满足需求。 8. **性能优化**: 为了处理大数据量,可以使用低内存模式...
在Android平台上,生成PDF文档是常见的需求,尤其是在开发企业级应用时。iText是一个流行的Java库,用于创建和处理PDF文档。然而,由于版权和字符集的问题,原版的iText库在默认情况下可能无法正确地显示中文字符。...
【Itext生成PDF详解】 Itext是一个用于生成PDF文档的Java库,对于.NET环境,有对应的iTextSharp库。在创建PDF文档时,通常需要经过五个步骤,这在描述中已有详细阐述。以下是对这些步骤的详细解释: 1. **创建...
在实际应用中,通常会从数据库或其他数据源动态生成表格内容。这可能涉及到遍历数据集,然后对每个数据项调用`addCell()`方法。此外,还可以使用`PdfPCell`的构造函数接收一个`Paragraph`对象,这样可以在单元格中...
<artifactId>itextpdf <version>5.5.13 ``` 对于Gradle项目,可以在build.gradle文件中加入: ```groovy implementation 'com.itextpdf:itextpdf:5.5.13' ``` 一旦导入了IText库,就可以开始编写代码生成PDF了...
这段代码首先读取源PDF文件,然后创建一个`PdfStamper`对象,该对象允许我们在原始PDF上添加内容。通过`showTextAligned`方法,我们可以将水印文本居中放置在每一页上。字体大小、颜色和角度可以根据需求调整。 ...