itext 生成doc文档 小结(自己备忘)
1、引入maven
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext-rtf</artifactId>
<version>2.1.7</version>
</dependency>
2、大致流程
//创建一条文本对象(A4纸张)
Document document = new Document(PageSize.A4); //创建一个DOC文档(根据指定的路径)
RtfWriter2.getInstance(document, new FileOutputStream(file_url)); //打开文本对象
document.open(); //添加一个简单的段落
document.add(new Paragraph("Hello World!")); //结束编写
document.close();
3、字体
//设置基础字体 -- 宋体
BaseFont bfChinese = BaseFont.createFont("C:/Windows/Fonts/simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //设置字体 (含有大小、颜色……)
Font titleFont = new Font(bfChinese, 14.0F, 1); //字体:宋体 大小:14.0F 加粗
Font contextFont = new Font(bfChinese, 14.0F, 0); //字体:宋体 大小:14.0F 不加粗
Font contextFont_red = new Font(bfChinese, 14.0F, 0, Color.red); //字体:宋体 大小:14.0F 不加粗 字体颜色:红色
Font contextFont_black = new Font(bfChinese, 14.0F, 0, Color.black);//字体:宋体 大小:14.0F 不加粗 字体颜色:黑色
Font headerFooterFont = new Font(bfChinese, 9.0F, 0);//字体:宋体 大小:9.0F 不加粗
4、设置头 和 页码数
全局变量
private static String TECH_INFO = "这里是顶部"; //头部标语
private static String FOOT_INFO = "这里是底部"; //底部标语
头部
Table header = new Table(2);
header.setBorder(0);
header.setWidth(100.0F); Paragraph address = new Paragraph(TECH_INFO);
address.setFont(headerFooterFont);
Cell cell01 = new Cell(address);
cell01.setBorder(0);
header.addCell(cell01); Paragraph date = new Paragraph("生成日期: " +
new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
date.setAlignment(2);
date.setFont(headerFooterFont);
cell01 = new Cell(date);
cell01.setBorder(0);
header.addCell(cell01);
document.setHeader(new RtfHeaderFooter(header));
底部(页码数)
Table footer = new Table(2);
footer.setBorder(0);
footer.setWidth(100.0F); Paragraph company = new Paragraph(FOOT_INFO);
company.setFont(headerFooterFont);
Cell cell02 = new Cell(company);
cell02.setBorder(0);
footer.addCell(cell02); Paragraph pageNumber = new Paragraph("第 ");
pageNumber.add(new RtfPageNumber());
pageNumber.add(new Chunk(" 页"));
pageNumber.setAlignment(2);
pageNumber.setFont(headerFooterFont);
cell02 = new Cell(pageNumber);
cell02.setBorder(0);
footer.addCell(cell02); document.setFooter(new RtfHeaderFooter(footer));
5、表格
Table table1 = new Table(4);//创建表格 int width[] = {18,32,18,32};//设置每列宽度比例 table1.setWidths(width);//设置每列宽度比例 table1.setWidth(95);//占页面宽度比例 //第一行 第一个
Cell cell11 = new Cell(new Paragraph("11",contextFont));
cell11.setVerticalAlignment(Element.ALIGN_TOP); //垂直 居上
cell11.setHorizontalAlignment(Element.ALIGN_RIGHT); //水平 居右
cell11.setBorder(0); //第一行 第二个
Cell cell12 = new Cell("12");
cell12.setVerticalAlignment(Element.ALIGN_BOTTOM); //垂直 居下
cell12.setHorizontalAlignment(Element.ALIGN_LEFT); //水平 居左
cell12.setBorder(0); //第一行 第三个
Cell cell13 = new Cell(new Paragraph("13",contextFont));
cell13.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直 居中
cell13.setHorizontalAlignment(Element.ALIGN_RIGHT); //水平 居右
cell13.setBorder(0); //第一行 第四个
Cell cell14 = new Cell(new Paragraph("14",contextFont));
cell14.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直 居中
cell14.setHorizontalAlignment(Element.ALIGN_LEFT); //水平 居左
cell14.setBorder(0); table1.addCell(cell11);
table1.addCell(cell12);
table1.addCell(cell13);
table1.addCell(cell14); document.add(table1);
6、插入图片
//图片路径
String URL = "http://www.baidu.com/img/bd_logo1.png";
//创建图片
Image img = null;
try {
img = Image.getInstance(URL);
img.scalePercent(10);
} catch (BadElementException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//内容
Paragraph context = new Paragraph();
context.setAlignment(1);
context.setFont(contextFont);
if(img == null){
context.add("没有图片");
}else{
context.add(img);
}
document.add(context);
itext 生成doc文档 小结(自己备忘)的更多相关文章
- itext 生成pdf文档 小结(自己备忘)
1.引入maven <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf& ...
- IText 中文字体解决方案 生成doc文档
IText生成doc文档需要三个包:iTextAsian.jar,iText-rtf-2.1.4.jar,iText-2.1.4.jar 亲测无误,代码如下: import com.lowagie.t ...
- java基础---->使用Itext生成数据库文档
这里简单的介绍一下使用Itext生成数据库表的文档.于是我们领教了世界是何等凶顽,同时又得知世界也可以变得温存和美好. 生成数据库的文档 一.maven项目需要引入的jar依赖 <depende ...
- java标识符,关键字,注释及生成Doc文档
# java语法基础 ## 标识符,关键字与注释 ### 标识符 1.类名,变量名,方法名都称为标识符. 2.命名规则:(1):所有的标识符都应该以字母(AZ,或者az)美元符($)或者下划线(_)开 ...
- Java eclipse生成doc文档
这里讲解下eclipse成为doc文档,首先代码: /** * @author szy * @version 1.0 */ package com.founder.sun; class Cat{ pu ...
- Java多种方式动态生成doc文档
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5280272.html 本来是要在Android端生成doc的(这需求...),最后方法没有好的方法能够在An ...
- 【PDF】java使用Itext生成pdf文档--详解
[API接口] 一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/ ...
- IDEA生成doc文档-生成chm文档
首先,打开IDEA,并找到Tools -> Generate JavaDoc- 可供查询的chm比那些HTML页面好看多了. 如果您用过JDK API的chm文档,那么您一定不会拒绝接受其它第三 ...
- 如何在使用itext生成pdf文档时给文档添加背景图片
这个问题我在网上搜了很久,没有找到什么解决方案,需求其实很简单,就是添加背景图片.在解决这个问题之前,我们需要了解什么是背景图片?背景图片就是位于文档最底层的图片,文字和其他内容可以浮在它的上面.这又 ...
随机推荐
- return和return false的区别
1. return返回null,起到中断方法执行的效果,只要不return false事件处理函数将会继续执行,表单将提交2. return false,事件处理函数会取消事件,不再继续向下执行.比如 ...
- vmware vSphere client中,选择文件->部署OVF模板,报错处理方法
在vmware vSphere client中,选择文件->部署OVF模板,选择指定的OVA文件,按步骤进行,则会出现这样的错误:此OVF软件包使用了不受支持的功能.OVF软件包需要不支持的硬件 ...
- 新建python的虚拟环境
1.mkvirutalenv --python=E:\Users\00\AppData\Local\Programs\Python\Python37-32\python.exe article_spi ...
- 找零钱的算法实现(Java)
简单的算法 基本思路就是将面值从大到小统计(外循环), 若当前金额大于某面值, 则当前金额减掉该面值, 并将面值对应张数+1, 继续往下判断(内循环) public void Change(int m ...
- Linux - redis持久化RDB与AOF
目录 Linux - redis持久化RDB与AOF RDB持久化 redis持久化之AOF redis不重启,切换RDB备份到AOF备份 确保redis版本在2.2以上 实验环境准备 备份这个rdb ...
- vue 中全局filter过滤器的配置及使用
在项目中使用到的经常用到过滤器,比如时间,数据截取等过滤器,如果在每个.vue中都可以复制同一个过滤器,这可以达到目的,但是遇到方法有bug时就需要诸葛修改进入不同的页面修改,这样既费时又费力,优先可 ...
- 使用androidstudio 分析内存泄漏
分析内存泄漏 http://www.jianshu.com/p/c49f778e7acf
- BZOJ 4278 [ONTAK2015]Tasowanie (后缀数组)
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=4278 题解: 居然把后缀数组写成n^2的..我真厉害.. 想了无数种方法,最后发现就是 ...
- 【codeforces 758D】Ability To Convert
[题目链接]:http://codeforces.com/contest/758/problem/D [题意] 给你一个n进制的数k; 问你它可能的最小的十进制数是多少; [题解] 从右往左; 获取数 ...
- Python 2 声明变量 输入输出 练习
变量: 代指,用于将具体信息对应到一个值,便于反复使用时方便调用.例如 name = ("斯诺登") 变量声明规则:以字母开头的 字母数字下划线的组合.且不能是python代 ...