itext 生成pdf ----hello world

2023-07-29,,

 

iText是Java中用于创建和操作PDF文件的开源库。它是由Bruno Lowagie、Paulo Soares等人编写的。Ohloh报告称2001年以来[2],26个不同的贡献者进行了1万多次提交,超过100多万行代码。[3]iText具有一个由大型开发团队维护的完善的、成熟的、活跃度同比持平的代码库。[4]利用COCOMO模型,花了大约250人年的努力后,2000年11月iText项目开始了第一次提交。[5]

5.0.0版(2009年12月7日发布)后的iText是在Affero通用公共许可证第3版下分发的。之前版本的iText(Java版的至4.2.1版,和C#版的至4.1.6版)是在Mozilla公共许可证或LGPL下分发的。iText同时由iText软件公司通过一个专有许可证进行分发。iText是1T3XT BVBA的注册商标

iText已经以iTextSharp的名义移植到.NET Framework下。iTextSharp是用C#编写的,它有一个独立于iText的代码库,但与iText的版本同步。

在2013年中,iText(Java)和iTextSharp(.NET)仅在SourceForge就有超过500万次的下载量。2013年10月,iText在SourceForge上每周约有3000次下载[6],而iTextSharp每周约有4000次下载[7]

开发者可以用iText来:

从XML文件或数据库来动态生成PDF文档
为浏览器生成PDF文档
利用PDF的许多互动功能
添加书签、页码、水印、条形码等
分割、拼接和处理PDF页面
自动填写PDF表单
给PDF文件添加数字签名

通常情况下,在具有下列情况之一的项目中会使用iText:

内容不是提前准备好的:它基于用户输入或数据库的实时信息来计算、处理。
内容太多,PDF文件无法手动生成。
在批处理过程中,文档需要在无人值守模式下创建。
需要对内容进行定制或个性化。例如,最终用户的名字需要被印在多个页面上。

iText是一个非常著名的能够快速产生PDF文件的Java类库。支持文本,表格,图形的操作,可以方便的跟 Servlet 进行结合

iText的更新变化很大,早期版本在PDF样式上可能会有瑕疵,所有我使用的最新的5.5.12包,文字包用的5.2.0版本

了解了Itext能干什么,我们第一步来用itext写一个Hello world。

1.添加Maven依赖

itext核心包 和xmlworder字体包

            <dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.12</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.12</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>

2.创建main方法测试,用itext生成pdf的Hello world

import java.io.FileOutputStream;
import java.io.IOException; import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;
/**
* PDF工具类
*/
public class PdfUtils { public static void main(String[] args) throws DocumentException, IOException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream("D:/iTextDemo/hello_word.pdf"));
// 打开文档
document.open();
// 写入内容
document.add(new Paragraph("Hello World"));
// 写入结束
document.close();
}
}

3.有很多人试过了上面demo,把文字换成中文,哎哟,发现中文没有写入成功,下面用一种最简单的设置中文的方式,IText设置中文的方式很多,因为时间原因,我就只展示最简单的一种。

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter; import java.io.FileOutputStream;
import java.io.IOException; /**
* PDF工具类
*/
public class Pdf1Utils { public static void main(String[] args) throws DocumentException, IOException {
// 新建文档
Document document = new Document(PageSize.A4);
// 如果输出中文,需要设置中文字体
BaseFont chineseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font font = new Font(chineseFont, 12, Font.NORMAL);
PdfWriter.getInstance(document, new FileOutputStream("D:/iTextDemo/hello.pdf"));
// 打开文档
document.open();
// 写入内容
Paragraph paragraph = new Paragraph("你好,JAVA蓝猫。", font);
document.add(paragraph);
// 关闭文档
document.close();
}
}

如果想进一步了解学习IText,建议还是看官方文档。

官方链接:https://itextpdf.com/en

官方文档链接:https://itextpdf.com/en/resources/api-documentation/itext-7-java

itext 生成pdf ----hello world的相关教程结束。

《itext 生成pdf ----hello world.doc》

下载本文的Word格式文档,以方便收藏与打印。