java itext 读取word,java 中使用itext生成复杂word

语法:

依赖jar包

com.lowagie

itext

2.1.5

com.lowagie

itext-rups

2.1.5

com.lowagie

itext-rtf

2.1.5

1.设置word纸张的大小

Rectangle r = new Rectangle(纸张宽度,纸张高度);

2.设置创建文件参数

Document document = new Document(r(ps:纸张大小),右边距

,左边距

,上边距

,下边距);

3.在本地生成word文件

RtfWriter2.getInstance(document(ps:创建文件属性), new FileOutputStream(存放文件路径));

4.打开word文件填充数据

document.open();

字体

//当然方法的重载很多,可以自行选择

Font font = FontFactory.getFont("字体名称","字体编码",字体大小);

//设置字体颜色,颜色在下面

font.setColor(颜色);

//例子:宋体字

Font font2=FontFactory.getFont("STSong-Light","Cp1252",2);

表格操作

//创建表格

Table table=new Table(列数[,行数]);

//设置表格的宽度

table.setWidths(表格宽度);

//设置每列占宽比例

table.setWidth([第一列比例,第二列比例........])

//添加单元格;注意:行和列都是从0开始的

table.addCell(单元格,第几行,第几列);

//设置表格中单元格之间的边距

table.setSpacing(数字);//数字越大边距越大

单元格,填充表格数据

//创建单元格

Cell cell = new Cell(填充单元格的内容);

内容(ps:下面只是我常用的几种,应该够用):

字符串

图片

段落

//水平

cell.setHorizontalAlignment(对齐方式);

//垂直

cell.setVerticalAlignment(对齐方式)

对齐方式(ps:还有很多,此列出常用的几种):

Element.ALIGN_CENTER:居中

Element.ALIGN_LEFT :左对齐

Element.ALIGN_RIGHT :右对齐

Element.ALIGN_BOTTOM:向下对齐

Element.ALIGN_TOP :向上对齐

//设置单元格占用多少行,单元格默认一行

cell.setRowspan(行数);

//设置单元格占用多少列,单月个默认一列

cell.setColspan(列数);

//设置单元格边框颜色

cell.setBorderColor(颜色);

颜色:

Color.WHITE:白色

COlor.RED :红色

//自己想要的颜色,填上三原色就行

Color c=new Color(r, g, b);

ps:还用很多颜色,Color中很多,根据自己的选择

段落

//创建段落,段落不会不超过当前行的长度不会换行

Paragraph paragraph = new Paragraph(内容);ps:内容参考单元格中的段落

//追加元素

Paragraph.add(内容);

图片

Image image = Image.getInstance("图片路径");

//设置图片大小

image.scalePercent(图片宽度,图片高度);

例子:

下面是我根据上面语法写的例子供大家参考

import java.awt.Color;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.net.MalformedURLException;

import com.lowagie.text.BadElementException;

import com.lowagie.text.Cell;

import com.lowagie.text.Document;

import com.lowagie.text.DocumentException;

import com.lowagie.text.Font;

import com.lowagie.text.FontFactory;

import com.lowagie.text.Image;

import com.lowagie.text.Paragraph;

import com.lowagie.text.Rectangle;

import com.lowagie.text.Table;

import com.lowagie.text.rtf.RtfWriter2;

public class MakeWordTest {

public static void main(String[] args) {

CreateWord c=new CreateWord();

c.createWord();

System.out.println("创建word成功");

}

}

class CreateWord{

public void createWord() {

//1.创建矩形

Rectangle r=new Rectangle(500,500);

//2.设置文件参数

Document document=new Document(r,10,10,10,10);

//3.把文件写的路径

try {

RtfWriter2.getInstance(document,new FileOutputStream("D:\static\sharedoc\"+System.currentTimeMillis()+".doc"));

//打开word进行填充数据

document.open();

//创建表格

Table table=new Table(3);

table.setWidth(80);

/************************************************填充logo图片开始**************************************************/

//创建图片

Image image = Image.getInstance("D:\static\sharedoc\78ff504e6b35cca1b416fcbcd3dc03f2.jpg");

//设置图片大小

image.scalePercent(13,13);

//常见单元格填充图片

Cell cellLogo=new Cell(image);

//把单元格填充到表格中

table.addCell(cellLogo,0,0);

/************************************************填充logo图片结束**************************************************/

/************************************************填充内容**************************************************/

//常见单元格填充图片

Cell cell1=new Cell("垃圾分类");

//把单元格填充到表格中

table.addCell(cell1,1,1);

//常见单元格填充图片

Font font2=FontFactory.getFont("STSong-Light","Cp1252",5);

Cell cell2=new Cell(new Paragraph("可回收垃圾、湿垃圾、干垃圾、有害垃圾",font2));

//把单元格填充到表格中

table.addCell(cell2,1,2);

Cell cell3=new Cell("跨行");

cell3.setRowspan(2);

//把单元格填充到表格中

table.addCell(cell3,2,1);

Cell cell4=new Cell("跨列");

cell4.setColspan(2);

//把单元格填充到表格中

table.addCell(cell4,4,1);

Cell cell5=new Cell("跨行跨列");

cell5.setColspan(2);

cell5.setRowspan(2);

//把单元格填充到表格中

table.addCell(cell5,6,1);

Cell cell6=new Cell("设置边框颜色为白色");

cell6.setBorderColor(Color.WHITE);

table.addCell(cell6,8,0);

//空格

Cell cell7=new Cell("空格u00a0 u00a0 u00a0空格");

cell7.setBorderColor(Color.RED);

cell7.setColspan(3);

table.addCell(cell7,9,0);

//设置单元格的边距

table.setSpacing(5);

//

Image image2 = Image.getInstance("D:\static\sharedoc\78ff504e6b35cca1b416fcbcd3dc03f2.jpg");

//设置图片大小

image2.scalePercent(6,6);

Paragraph paragraph = new Paragraph("图片和字同一个单元格不换行",font2);

paragraph.add(image2);

Cell cell8=new Cell(paragraph);

table.addCell(cell8,10,0);

Cell cell9=new Cell("当前数据");

cell9.addElement(new Paragraph("追加数据",font2));

font2.setColor(Color.red);

table.addCell(cell9,11,0);

Cell cell10=new Cell("图片在单元格上,左有间隙");

cell10.setColspan(2);

table.addCell(cell10,12,0);

Font font3=FontFactory.getFont("STSong-Light","Cp1252",3);

Image image3 = Image.getInstance("D:\static\sharedoc\78ff504e6b35cca1b416fcbcd3dc03f2.jpg");

image3.scalePercent(6,6);

Cell cell11=new Cell(new Paragraph("u00a0",font3));

Paragraph paragraph2 = new Paragraph("u00a0u00a0u00a0u00a0u00a0u00a0",font2);

paragraph2.add(image3);

cell11.setColspan(2);

cell11.addElement(paragraph2);

table.addCell(cell11,13,0);

/************************************************填充logo图片结束**************************************************/

//创建单元格

//把表格填充在word中

document.add(table);

} catch (FileNotFoundException e) {

System.out.println("创建word路径错误");

e.printStackTrace();

} catch (BadElementException e) {

System.out.println("创建表格错误");

e.printStackTrace();

} catch (DocumentException e) {

System.out.println("word填充表格失败");

e.printStackTrace();

} catch (MalformedURLException e) {

System.out.println("图片不存在");

e.printStackTrace();

} catch (IOException e) {

System.out.println("图片不存在");

e.printStackTrace();

}finally {

//关闭

if(document!=null) {

document.close();

}

}

}

}

c3e1dba639a81d2bf15944450de9c391.jpg

java生成复杂word.jpg

注意:本文来自简书。本站无法对本文内容的真实性、完整性、及时性、原创性提供任何保证,请您自行验证核实并承担相关的风险与后果!

CoLaBug.com遵循[CC BY-SA 4.0]分享并保持客观立场,本站不承担此类作品侵权行为的直接责任及连带责任。您有版权、意见、投诉等问题,请通过[eMail]联系我们处理,如需商业授权请联系原作者/原网站。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值