最近正在做导出pdf文件的功能,所以查了了一些相关资料,发现不是很完善,这里做一些小小的感想,欢迎各位“猿”童鞋批评指正。

poi+itext,所需要的jar包有itext-2.1.7.jar,poi-3.14.jar,iTextAsian.jar:用于处理中文乱码问题,这是我所用的jar包,大家也可以自行配置。https://www.cnblogs.com/h--d/p/6150320.html,这个网址步骤写的挺好的,https://www.cnblogs.com/shuilangyizu/p/5760928.html 这个是画pdf比较详细

首先设置一下字体,看看pdf里有哪些需要的字体,这里先设置一个基础的

BaseFont bfChinese = null;
try {
bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();

}

Font FontChinese = new Font(bfChinese,13,Font.NORMAL);

Font FontChinese2 = new Font(bfChinese,13,Font.NORMAL|Font.UNDERLINE);这里设置需要的的字体类型,在初始的字体里面修改,保证一下统一以便字体结构清晰。

// 第一步,创建document对象
Rectangle rectPageSize = new Rectangle(PageSize.A4);//这里可以查查,有很多其他的
//下面代码设置页面横置

rectPageSize = rectPageSize.rotate();

//创建document对象并指定边距

Document document1 = new Document(rectPageSize);

// 将Document实例和文件输出流用PdfWriter类绑定在一起,从而完成向Document写,即写入PDF文档

PdfWriter.getInstance(document1,new FileOutputStream("src/a.pdf"));//创建到哪个路径文件中
//打开文档
document1.open();

//向文档添加文字. 文档由段组成,这里只是做个别的说明

float[] widths = {40,80,150,50,50,100,60,50,70,70};数据存的是列宽,按照配比来的,不用在乎数据大小

PdfPTable table = new PdfPTable(widths);这个可以在页面画一个table,很方便并且比较好的方法

table.setWidthPercentage(100);设置占比
table.setSpacingBefore(10);设置上边距离上个Paragraph的距离

table.setSpacingAfter(10);设置下边距离下个Paragraph的距离

下面这个可以设置表格中同单元格存在不同的字体

Paragraph largeText = new Paragraph();
Chunk chunk1 = new Chunk("text0",FontChinese11);
Chunk chunk2 = new Chunk(text1,FontChinese1);
largeText.add(chunk1);
largeText.add(chunk2);

cell1.addElement(largeText);

document1.add(list+Paragraph+table等等之类的);

//关闭document
document1.close();

关于java poi itext生成pdf文件的例子以及方法的更多相关文章

  1. Java Itext 生成PDF文件

    利用Java Itext生成PDF文件并导出,实现效果如下: PDFUtil.java package com.jeeplus.modules.order.util; import java.io.O ...

  2. Java使用iText生成word文件的完美解决方案(亲测可行)

    JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案 一种是pio但是他的excel处理很程序 wor ...

  3. java调用wkhtmltopdf生成pdf文件,美观,省事

    最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多 ...

  4. Itext生成pdf文件

    来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...

  5. 【Java】使用iText生成PDF文件

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

  6. 【PDF】java使用Itext生成pdf文档--详解

    [API接口]  一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/ ...

  7. java使用iText生成pdf表格

    转载地址:http://www.open-open.com/code/view/1424011530749 首先需要你自己下载itext相关的jar包并添加引用,或者在maven中添加如下引用配置: ...

  8. itext 生成pdf文件添加页眉页脚

    原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...

  9. Java 使用itext生成pdf以及下载

    使用方法: 1.需要两个jar包: iText-5.0.6.jar    //必须使用该版本,否则缺少相关的方法 TextAsian.jar //是为了文档中正常显示中文所必须引用的包 TextAsi ...

随机推荐

  1. IDEA修改git账号及密码的方法 ----绝壁好使

    就这个这个位置,之前的账号信息就保存在这里,直接编辑修改,修改成你现在的账号, idea提交的时候就能直接提交,或者提交的时候要输入账号密码,ok,我的微信 18550918581,不懂再找我

  2. 20165312 2017-2018-2《JAVA程序设计》第8周学习总结

    20165312 2017-2018-2<JAVA程序设计>第8周学习总结 一.第十二章知识点总结 进程与线程 进程是程序的一次动态执行进程,它对应了从代码加载.执行至执行完毕的一个完整过 ...

  3. 第26课 可变参数模板(7)_any和variant类的实现

    1. any类的实现 (1)any类: ①是一个特殊的,只能容纳一个元素的容器,它可以擦除类型,可以将何任类型的值赋值给它. ②使用时,需要根据实际类型将any对象转换为实际的对象. (2)实现any ...

  4. hessian的简单使用以及与spring整合

    Hessian是一个由Caucho Technology开发的轻量级二进制RPC协议.和其他Web服务的实现框架不同的是,Hessian是一个使用二进制格式传输的Web服务协议的框架,相对传统soap ...

  5. lecune入门示例

    注意:本示例中的lucene版本需在jdk7以上使用. 一.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  6. BZOJ 1257: [CQOI2007]余数之和

    1257: [CQOI2007]余数之和 Time Limit: 5 Sec  Memory Limit: 128 MB Description 给出正整数n和k,计算j(n, k)=k mod 1 ...

  7. JAVA性能优化:35个小细节让你提升java代码的运行效率

    代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是, ...

  8. json字符串装List<Object>

    List<SearchParam> ts = (List<SearchParam>) JSONArray.parseArray(jsonStr, SearchParam.cla ...

  9. leetcode3

    public class Solution { public int LengthOfLongestSubstring(string s) { var dic = new Dictionary< ...

  10. Hibernate 再接触 一级缓存 二级缓存 查询缓存

    缓存 就是把本来应该放在硬盘里的东西放在内存里  将来存内存里读 一级缓存: session缓存 二级缓存: sessionFactory级别的   (适合经常访问,数据量有限,改动不大) 很多的se ...