admin 管理员组文章数量: 1087652
java itext 生成word文档
/**
* 创建word文档 步骤:
* 1,建立文档
* 2,创建一个书写器
* 3,打开文档
* 4,向文档中写入数据
* 5,关闭文档
* @Date 2020年3月18日 下午3:21:40
* tag@param fileName word文件名
* tag@param data 需要展示的数据
* tag@return
*/
public InputStream creatAndUploadTongHangWord(String fileName,Map<String, Object> data) {
//新建文档
InputStream bis=null;
Document document = new Document(PageSize.A4,80,80,80,80);
String projectType=String.valueOf(data.get("projecttype"));
try {
SFTPClientUtils sftpUtils=new SFTPClientUtils();
sftpUtils.makeConnection();
InputStream streams= sftpUtils.download(upload_tonghang_pic_path);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
byte[] dataBytes;
while ((len = streams.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
baos.flush();
dataBytes = baos.toByteArray();
Image img = Image.getInstance(dataBytes);
//创建读写器,在本地生成word文档
ByteArrayOutputStream baoss = null;
baoss = new ByteArrayOutputStream();
RtfWriter2.getInstance(document, baoss);
//打开文档
document.open();
Font shuomingfont=new Font(BaseFont.createFont(), 12, Font.NORMAL);
Font shuomingt=new Font(BaseFont.createFont(), 12, Font.UNDERLINE);
//大标题图片
if(img!=null){
img.scalePercent(32);//设置图片为原图片大小的100%
}
int jinju=5;
int jinju2=20;
//大标题
String bigtitle=this.getTongHangTitle(projectType);
Paragraph titleParagraph = new Paragraph();
titleParagraph.setAlignment(Image.ALIGN_CENTER);
titleParagraph.setSpacingAfter(8);
titleParagraph.add(img);
titleParagraph.add(new Paragraph( bigtitle,FontFactory.getFont(Constants.FONTTYPE, 22, Font.BOLD)));
document.add(titleParagraph);
//项目名称
Paragraph p1 = new Paragraph("项目名称: ", FontFactory.getFont(Constants.FONTTYPE, 12,Font.BOLD));
p1.setAlignment(Element.ALIGN_LEFT);
p1.setFont(shuomingfont);
Chunk chunk1 = new Chunk(String.valueOf(data.get("projectName")) , FontFactory.getFont(Constants.FONTTYPE, 12));
chunk1.setFont(shuomingt);
p1.add(chunk1);
document.add(p1);
//申请人姓名
Paragraph p2= new Paragraph("申请人姓名: ", FontFactory.getFont(Constants.FONTTYPE, 12,Font.BOLD));
p2.setSpacingAfter(jinju);
p2.setSpacingBefore(jinju);
p2.setAlignment(Element.ALIGN_LEFT);
p2.setFont(shuomingfont);
Chunk chunk2=new Chunk(String.valueOf(data.get("name")), FontFactory.getFont(Constants.FONTTYPE, 12));
chunk2.setFont(shuomingt);
p2.add(chunk2);
document.add(p2);
//申请人单位
Paragraph p3= new Paragraph("申请人单位: ", FontFactory.getFont(Constants.FONTTYPE, 12,Font.BOLD));
p3.setSpacingAfter(jinju);
p3.setSpacingBefore(jinju);
p3.setAlignment(Element.ALIGN_LEFT);
p3.setFont(shuomingfont);
Chunk chunk3=new Chunk(String.valueOf(data.get("completeunit")), FontFactory.getFont(Constants.FONTTYPE, 12));
chunk3.setFont(shuomingt);
p3.add(chunk3);
document.add(p3);
//推荐单位/推荐专家
Paragraph p4= new Paragraph("推荐单位/推荐专家: ", FontFactory.getFont(Constants.FONTTYPE, 12,Font.BOLD));
p4.setSpacingBefore(jinju);
p4.setAlignment(Element.ALIGN_LEFT);
p4.setFont(shuomingfont);
Chunk chunk4=new Chunk(String.valueOf(data.get("unitName")), FontFactory.getFont(Constants.FONTTYPE, 12));
chunk4.setFont(shuomingt);
p4.add(chunk4);
document.add(p4);
//建议授奖类型 科普奖无授奖类型
if(!projectType.equals(Constants.PROJECTTYPE_KP)){
Paragraph p55= new Paragraph(" ", FontFactory.getFont(Constants.FONTTYPE, 12,Font.UNDERLINE));
document.add(p55);
Paragraph p5= new Paragraph("建议授奖类型: ", FontFactory.getFont(Constants.FONTTYPE, 12,Font.BOLD));
p5.setAlignment(Element.ALIGN_LEFT);
p5.setFont(shuomingfont);
Chunk chunk5=new Chunk(String.valueOf(data.get("votetypename")), FontFactory.getFont(Constants.FONTTYPE, 12));
chunk5.setFont(shuomingt);
p5.add(chunk5);
document.add(p5);
Paragraph p56= new Paragraph(" ", FontFactory.getFont(Constants.FONTTYPE, 12,Font.UNDERLINE));
document.add(p56);
}
//具体评审意见
Table table = new Table(1);
table.setBorderWidth(1);
table.setBorderColor(Color.BLACK);
table.setPadding(0);
table.setSpacing(0);
table.setWidth(100f);
Paragraph juti = new Paragraph("具体评审意见:\n ",FontFactory.getFont(Constants.FONTTYPE, 12));
juti.setSpacingAfter(10);
juti.setAlignment(Element.ALIGN_LEFT);
juti.setFont(shuomingfont);
juti.setKeepTogether(true);
Paragraph conten=new Paragraph(String.valueOf(data.get("opinion")), FontFactory.getFont(Constants.FONTTYPE, 12));
conten.setAlignment(Element.ALIGN_LEFT);
conten.setKeepTogether(true);
conten.setSpacingAfter(300);
Paragraph gfda=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda.setSpacingAfter(100);
gfda.setKeepTogether(true);
Paragraph gfda2=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda2.setKeepTogether(true);
Paragraph gfda3=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda3.setKeepTogether(true);
Paragraph gfda4=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda4.setKeepTogether(true);
Paragraph gfda5=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda5.setKeepTogether(true);
Paragraph gfda6=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda6.setKeepTogether(true);
Paragraph gfda7=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda7.setKeepTogether(true);
Paragraph gfda8=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda8.setKeepTogether(true);
Paragraph gfda9=new Paragraph("", FontFactory.getFont(Constants.FONTTYPE, 12));
gfda9.setKeepTogether(true);
juti.add(conten);
juti.add(gfda);
juti.add(gfda2);
juti.add(gfda3);
juti.add(gfda4);
juti.add(gfda5);
juti.add(gfda6);
juti.add(gfda7);
juti.add(gfda8);
juti.add(gfda9);
Cell juticell1 = new Cell(juti);//单元格
table.addCell(juticell1);
document.add(table);
//关闭文档
document.close();
byte[] byteArray = baoss.toByteArray();
bis = new ByteArrayInputStream(byteArray);
} catch (Exception e) {
logger.error("creatAndUploadTongHangWord with error:"+e);
}
return bis;
}
本文标签: java itext 生成word文档
版权声明:本文标题:java itext 生成word文档 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1687331429a90427.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论