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 ...
随机推荐
- Vue学习day1
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- 转 oracle 无法使用sys用户登录 connection as SYS should be as SYSDBA OR SYSOPER
转自: https://blog.csdn.net/u012004128/article/details/80781979 安装Oracle11g后,为了测试安装是否成功,通过cmd命令打开了sql ...
- 帝国CMS 登录后跳转ecmsadmin.php 白页 多个解决方案
帝国CMS 6.6 版本, 运维的网站查询除了问题, 把网站数据库和整体网站拷贝到本地服务器, 配置好 e/config/config.php 和 e/class/config.php 两个目录 ...
- Python之路径处理
路径处理,需导入 os包 1 import os # 导入 os 包 2 3 """获取运行脚本文件夹的路径""" 4 current_di ...
- Oracle入门- 数据库操作相关脚本
1. 创建表 1 CREATE TABLE SYS_NOTICE 2 ( 3 GUID CHAR(32) NOT NULL, 4 TITLE VARCHAR2(128) NOT NULL 5 ); 6 ...
- Unity ContentSizeFitter组件
Content Size Fitter组件,它可以动态改变物体的宽高,但它有一个非常需要注意的点就是,它不是即时刷新,是帧末刷新,这个特性如果没注意会出现一个问题 就是你拿到加了这个组件的宽高本不是你 ...
- 经典面试题:UDP和TCP的区别?
相信测试这行的同道朋友们,经常会被问到这个问题,这里我用自己的语言总结了几点: UDP 和 TCP的区别: 连接方面:tcp面向连接,三次握手,四次挥手 udp无连接,即发送数据之前不需要建立连接 安 ...
- unlua
安装 复制 Plugins 目录到你的UE工程根目录. 重新启动你的UE工程 注意点 新建工程后,必须重新拷贝插件,重新编译.不能从老项目中拷贝,会崩溃~ 加载c++类和蓝图类 -- c++类 loc ...
- Sitecore 应用与介绍
前言 因为工作需要,开始了 sitecore 之旅,在使用之中碰到了许多问题,后续开始写一下关于 sitecore 的文章. sitecore 官网:https://www.sitecore.com/ ...
- Spring设计模式——单例模式
单例模式 单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点. 单例模式是创建型模式. 饿汉单例模式 饿汉单例模式在类的加载时候就立即初始 ...