利用itext生成pdf的简单例子

Java使用IText根据pdf模板创建pdf文件 【代码】Java使用IText根据pdf模板创建pdf文件。 阅读详情

一、itext简介

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。

iText的安装非常方便,在http://www.lowagie.com/iText/download.html网站上下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了

声明:本博客用到iText版本为7.0.2版本。

二 、生成简单的pdf文件

1.先生成一个文档的文件

//其中fileName为所要创建pdf文件的路径。

public static OutputStream createFile(String fileName) {

File file = new File(fileName);

//创建一个文件之前判断他的父路径的文件夹是否存在,不存在需要创建

if (!new File(file.getParent()).exists())

new File(file.getParent()).mkdirs();

try {

//创建该文件夹
file.createNewFile();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

 

//获取所要创建pdf的文件的输出流

OutputStream os = null;
try {
os = new FileOutputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return os;

}

2.创建一个document的文档对象.

 2.1 

②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。  

  PdfWriter pdfWriter=new PdfWriter(createFile("你所要创建的pdf文件路径"));

2.2创建pdfDocument的对象与Writer的对象关联

  PdfDocument pdfDocument = new PdfDocument(pdfWriter);

2.3设定创建pdf的纸张大小

  PageSize pageSize = PageSize.A4;

2.4创建Document的对象

  Document document = new Document(pdfDocument, pageSize);

 

三、添加内容

// 设定标题居中显示

float w = pageSize.getWidth() - document.getLeftMargin() - document.getRightMargin();
List<TabStop> tabstops = new ArrayList();
tabstops.add(new TabStop(w / 2, TabAlignment.CENTER));
tabstops.add(new TabStop(w, TabAlignment.LEFT));

// 段落
Paragraph p = new Paragraph();
p.addTabStops(tabstops);
p.add(new Tab()).add("Text in the middle").add(new Tab());
p.add(new Tab()).add("How To Create An PDF File?").add(new Tab());

document.add(p);

document.flush();

//关闭document

document.close();

三、对中文的处理

1.对于中文的处理需要我添加一个itext-asian-5.2.0.jar包,可以对中文进行处理。而你可能下载不能是这个版本,可能会引起错误的。

一下是对之前版本的处理:

假如你加入的iTextAsian.jar的版本为5.0.6;会 出现异常 Font 'STSong-Light' with 'UniGB-UCS2-H'

  我使用的是iText 5.0.6 加入了iTextAsian.jar就报错.

  com.itextpdf.text.DocumentException: Font 'STSongStd-Light' with 'UniGB-UCS2-H' is not recognized.

  参考博客:x

  找的原因和解决方法:

  原因:iText5以上就改了命名空间了.是 com/itextpdf/text/pdf/fonts/

  但是iTextAsian还没有改.他的命名空间是 com/lowagie /text/pdf/fonts/

  所以报错..

  解决方法.:

  1.用winrar解压iTextAsian.jar

  2. 将com文件夹下面的lowagie 修改为itextpdf .

  3.进入cmd . 切换到iTextAsian目录.

  4.执行命令 jar cvf iTextAsian.jar com/itextpdf/text/pdf/fonts/*

  5.将生成的iTextAsian.jar文件替换原来的.

  问题解决.

 

 //解决中文的代码:

PdfFont font = null;
try {
font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", false);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

然后在段落中设定pdf字体

// 段落
Paragraph p = new Paragraph();
p.setFont(font);
p.addTabStops(tabstops);
p.add(new Tab()).add("我们很好的快来的").add(new Tab());
p.add("您好!");

Java中利用IText7生成PDF 通过Java生成PDF报告,集成iText7插件,本文介绍PDF生成的各种样式 阅读详情

相关推荐

itext5 生成pdf 使用总结

ITEXT5

欢迎来到我的博客 2万+

Java使用itextpdf生成PDF文件

iText是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF文档,而且可以将Html文件转化为PDF文件。

培根芝士的专栏 7788

Java 利用iText生成pdf并导出

前言   项目中需要导出pdf文档,以前没有做过这块儿的功能,于是上网搜索了一下,目前有好几个构件支持该项功能,结合项目要求,很快就确定使用iText来实现。   那么接下来怎么着手呢,我第一反应是上官网查看官方提供的api和demo,通常官方的例子都很简炼并且不会有复杂的上下文,很容易上手。   官网http://developers.itextpdf.com/examples 上有很多实

musa875643dn的专栏 3063

iText生成PDF文件

生成Word文件并将其转换为PDF文件,可以使用多种Java库和JAR包。Apache POI:这是一个用于操作Microsoft Office格式文件的Java库。你可以使用它来创建和编辑Word文档(.doc或.docx)。:这是一个功能强大的Java库,用于创建、编辑、转换和打印Word文档。它支持将Word文档转换为PDF格式。Spire.Doc for Java的JAR包可以直接添加到你的Java项目中。

棒棒糖的糖不含糖的博客 8176

freemarker+itext生成PDF文件

介绍 FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 iText是一种生成PDF报表的Java组件。通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样就...

破茧成蝶 3722

iText7通过模板生成PDF

首先附上iText官网地址:http://developers.itextpdf.com点击打开链接  身为一个菜鸟,最近遇到需求——要求后台自动生成pdf,客户给的模板是这个样子的(部分): 参考了官网上给的例子过后我的步骤是: 1、首先是找到每个文本框的位置,并用红色框框标记 Rectangle[] areas = new Rectangle[] {new Rectan

毛竹 5万+

itext 生成pdf、pdf模板生成pdf

文章目录一、itxet生成PDF五个步骤二、itext生成pdf1.代码 1.1.依赖 1.2基本使用二、pdf模板生成pdf1.制作pdf模板1.1下载Adobe Acrobat DC2.制作3.代码3.通过pdf模板制作 除了表格意外的 临时文件,然后解析临时文件再进行填充3.1代码 itext生成PDF、PDF模板生成PDF 一、itxet生成PDF五个步骤 第 1 步:创建一个 PdfWriter 对象  该PdfWriter类表示PDF文档的作家。此类属于包com.itextpdf.ke

一七软工的博客 2万+

使用itext7为已有pdf生成目录

package com.newcore.ecs.service.tps.utils; //需要导入的包 import com.itextpdf.io.font.PdfEncodings; import com.itextpdf.kernel.font.PdfFont; import com.itextpdf.kernel.font.PdfFontFactory; import com.ite...

IT_探的博客 6386

android利用itext5制作pdf,在Android开发中如何利用iText生成PDF

pdf(Portable Document Format的简称,意为“便携式文档格式”),是由Adobe Systems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。iText 是java和C#中的一个处理PDF的开源类库,国外的大牛已经把它移植到Android上了,但是直接拿来用还是需要花费一点功夫,下面就用一个简单的demo来测试一下。本文主要介绍在Android开发...

weixin_39934257的博客 795

html/jsp利用iText生成pdf

使用iText生成pdf,遇到了很多问题,今天总结一下  一共两种方式,一种是在本地测试的一种是在服务器生成的。本地测试的Document document = new Document(); String html = ServletUtils.forward(request,response,"a.jsp"); System.out.print(html); response.setCo...

qq_41087357的博客 2176

【Java基础知识 52】Java使用itext读取pdf、生成pdf

Java基础教程系列,打造精品专栏。

学Java,找哪吒 1万+

itextpdf 生成的pdf在前台下载

itext5-itext-pdfa-5.5.11.jar public class PdfHelloWorldAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,...

hilinw126的专栏 545

Pyside6+qml+Qtcreator项目实战

PYTHON and QT QUICK - Custom Buttons With QML And JavaScript - [MODERN GUI]-#01

u014627020的博客 918

pdf 简单连接servlet

[code="java"] protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/pdf"); ...

海风轻轻吹 228

三角洲自动购买工具 —— 基于 OCR 的价格识别与自动点击

通过的方式,我们可以轻松实现自动化的“价格监控 + 自动点击”工具。它的优势在于通用性—— 只要能截屏识别价格,就能用于任何程序,不依赖特定 API。未来可以扩展的功能:自动保存配置到文件。支持多价格区域检测。增加快捷键启停功能。

qq_62975494的博客 2417

告别谷歌!QGC地面站v4.0.x保姆级教程:用高德/天地图瓦片替换老旧地图源

本文提供QGroundControl(QGC)地面站v4.0.x的详细教程,指导用户如何用高德地图和天地图瓦片替换默认地图源,解决数据陈旧、访问不稳定等问题。教程涵盖环境配置、源码修改、地图集成及性能优化,帮助无人机开发者打造稳定高效的中文地图解决方案。

weixin_30836759的博客 502

简易PDF生成(JAVA)

package com.pdf;import java.awt.Color; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;import com.lowagie.text.Document; import co

OnceAgain 546

ethercat linux lan9252 - lan9253调试

linux 的ethercat测试

linsheng_111的专栏 1932

iText 实现页眉 页脚 页码

为什么80%的码农都做不了架构师?>>> ...

weixin_33797791的博客 320

【STK】手把手教你利用STK进行覆盖分析02-生成详细分析报告和图表

这篇文章主要针对上一篇文章中最后的案例1进行进一步的说明,详细介绍我们可以生成哪些结论性的成果。STK的Coverage模块的生成结果包括分析报告和图表两种样式,每种样式还分为动态和静态两种,也就是说,我们做完一个STK覆盖场景的仿真后,一般可以生成静态分析报告、动态分析报告、静态分析图表和动态分析图表这4种形式的分析成果,下面进行详细介绍。我们在选择了想要分析的区域或者点后,就可以利用CovDef生成分析报告了,覆盖定义的分析报告分为静态报告和动态报告两种,下面分析进行介绍: 首先我们先在左侧目标浏览器C

weixin_44184852的博客 3441

粒子群优化与蚁群算法求解多旅行商问题

它要求在给定一组城市和旅行商之间的距离矩阵的情况下,找到一条最优的路径方案,使得所有旅行商可以分别从起始城市出发,途径其他城市,并最终回到起始城市,同时总旅行距离达到最小。这两种算法都是基于群体智能的优化算法,在求解组合优化问题时具有较好的性能表现。假设有n个城市需要被m个旅行商访问,城市间的距离由距离矩阵D表示,其中D(i,j)表示第i个城市到第j个城市的距离。粒子群优化算法是一种基于群体智能的优化算法,其中的粒子代表了潜在的解,并通过模拟粒子在解空间中的移动来搜索最优解。一、多旅行商问题建模。

m0_47037246的博客 553

itext生成pdf的简单示例

  iText是著名的开放源码的站点sourceforge一个项目,是用于生成pdf文档的一个java类库.通过iText不仅可以生成pdf或rtf的文档,而且可以将XML、Html文件转化为PDF文件.   在http://www.lowagie.com/iText/download.html 下载itext.jar文件,加入到classpath中,就可以使用它了.   下面的例子用...

makar 204

Halcon算子知识:optical_flow_mg

光流(Optical Flow)是一种研究图像对齐的算法,一般包括两大类:稀疏光流和稠密光流。稀疏光流就是研究图像中稀疏点的光流,这些点一般是角点;稠密光流则是研究图像中所有点的偏移量。以下介绍halcon的基本光流算子optical_flow_mg的原理方法。该算子计算两个图片的光流法。 二、算子说明 optical_flow_mg(ImageT1, ImageT2 : VectorField : Algorithm, SmoothingSigma, Integration

gongdiwudu的专栏 1万+

iText生成pdf(图片转PDF)

前言                在学习的过程中笔者遇到过这种需求,就是将某个截取到的图片转化为PDF格式的。图片如何           转化为PDF格式的呢?首先想到的是PDF格式的文档是如何生成的,知道了这个就知道如何将图           片“插入”到PDF文档中了。那么java有没有生成PDF文档的第三方jar呢?答案是肯定的。        iText类库

LCore的专栏 1万+

6.14华为OD机试真题 新系统 - 字符串格式调整 (Java/Py/C/C++/Js/Go)

# **字符串格式调整** > 2026 华为OD机试真题 6月14日华为OD上机新系统考试真题 100 分题型 点击查看华为 OD 机试真题完整目录:[2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解](https://blog.youkuaiyun.com/banxia_frontend/article/details/160346662) # 题目描述 输入一个字符串,字符串中只包含大写字母和数字。要求将字符串中的所有数字提取出来,按出现的顺序组

算法大师! 947

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Itext生成pdf文件,itext+Freemarker生成pdf,(中文空白解决)

来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等。方便用户查看,下载,打印。目前常用的解决方案是,把相关数据信息,生成对应的pdf文件返回给用户。 本文源码:http://git.oschina.net/lujianing/...

weixin_30292745的博客 4203

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 扩展当easyui datagrid无数据时,显示特定值。如:没有数据 ----转载
下一篇: java删除指定目录下一小时前生成的文件
rmnjava
博客等级 码龄20年 8粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值