itext 生成pdf ----hello world
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/resources/api-documentation/itext-7-java
itext 生成pdf ----hello world的更多相关文章
- 在linux环境下使用itext生成pdf
转载请注明出处 https://www.cnblogs.com/majianming/p/9537173.html 项目中需要对订单生成pdf文件,在不断的尝试之后,终于生成了比较满意的pdf文档. ...
- Java Itext 生成PDF文件
利用Java Itext生成PDF文件并导出,实现效果如下: PDFUtil.java package com.jeeplus.modules.order.util; import java.io.O ...
- 用itext生成PDF报错:Font 'STSong-Light1' with 'UniGB-UCS2-H' is not recognized.
用itext生成PDF报错,加上try catch捕获到异常是 BaseFont bFont = BaseFont.createFont("STSong-Light1", &quo ...
- 【Java】使用iText生成PDF文件
iText介绍 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...
- 【PDF】java使用Itext生成pdf文档--详解
[API接口] 一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/ ...
- java使用iText生成pdf表格
转载地址:http://www.open-open.com/code/view/1424011530749 首先需要你自己下载itext相关的jar包并添加引用,或者在maven中添加如下引用配置: ...
- Itext生成pdf文件
来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...
- 利用itext生成pdf的简单例子
一.itext简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文 ...
- itext 生成pdf文件添加页眉页脚
原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...
- iText生成PDF 格式报表
1.导包 <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artif ...
随机推荐
- Spring Boot 配置文件加载位置及优先级
内容摘自http://c.biancheng.net/spring_boot/config-order.html 说明如下: /myBoot:表示 JAR 包所在目录,目录名称自定义: /childD ...
- canal对接阿里云kafka
一.前提条件 已经有mysql实例 自建或者云上都可以 已经在阿里云的kakfa创建topic 默认不自动创建topic 二.配置要监控的instance 先修改example的配置文件 conf/e ...
- k8s集群跨namespace访问服务
场景:自己有一个java应用部署在test命名空间下,但是一直无法访问到middleware命名空间下的mysql服务 查找资料发现下面所说的问题 我们通常会把mysql,redis,rabbitmq ...
- DNS CNAME limitations cname 在哪些情况下不能配置
https://www.rfc-editor.org/rfc/rfc1912.html https://www.rfc-editor.org/rfc/rfc2181.html 说明: domain n ...
- [Unity热更新]Addressables
参考链接: https://linxinfa.blog.csdn.net/article/details/122390621?spm=1001.2014.3001.5502 总结: 1.
- 30天帮你一步步学会Python的开源项目
最近发现一个不错的免费开源学习项目:30天学会Python 如果您最近有学习Python的打算,不妨看看这个是否适合你? 项目地址:https://github.com/Asabeneh/30-Day ...
- FastCorrect:语音识别快速纠错模型丨RTC Dev Meetup
前言 「语音处理」是实时互动领域中非常重要的一个场景,在声网发起的「RTC Dev Meetup丨语音处理在实时互动领域的技术实践和应用」活动中,来自百度.寰宇科技和依图的技术专家,围绕该话题进行了相 ...
- RTC 科普视频丨聊聊空间音频的原理与其背后的声学原理
在现在很多的线上实时互动场景中,我们重视的不仅仅是互动体验,还要提升沉浸感.而在很多场景中,仅凭空间音频技术,就可以带来如临其境的体验.空间音频技术的原理是怎样的呢? 看过我们新一期的 RTC 科普视 ...
- 被冰封的 Bug:Fishhook Crash 修复纪实
作者:郝连福,业界资深计算机技术专家,现任声网Agora 首席前端架构师.先后担任过 Principal Engineer/Engineering Director(UTStarcom).Sr. ar ...
- RTC月度小报5月丨教育aPaaS灵动课堂升级、抢先体验VUE版 Agora Web SDK、声网Agora与HTC达成合作
本月亮点速览 产品与技术: 声网Agora 教育 aPaaS 灵动课堂升级 视频通话/语音通话/互动直播 Native SDK 升级上线 3.4.2 版本 视频通话/语音通话/互动直播 Web SDK ...