Bootstrap

java+word

经历

  前一段时间写项目,要求写一个生成表单显示的功能,刚开始想让前端用页面写,但是前端没时间。经过询问决定用word转成pdf的形势来写。

链接: https://pan.baidu.com/s/1JJoEXf7fuiKwocPSHjRWQw 提取码: 2xqs
上面是所需要的jar包

准备

  咱们开始时候肯定是要创建一个模板的。通过模板,填写数据。
在这里插入图片描述
上面是我创建的一个word文档,就有一页,样式就是上图看见的。

第一步

  首先我们要选中这个文件

Document doc = new Document("<word文件的路径>");

  之后我们可以通过创建的Document这个类来选中该文件中含有某一个内容(如:段落、标题、表格等)。

第二步

  我们通过上一步创建的Document对象来操作内容。接下来我列一个表格,大家可以先有个映像,不理解无所谓,之后都会讲解到。

对象含义
Section某页的内容
TextRange文本内容
Paragraph段落
HeaderFooter页脚或页眉
Table表格
TableRow表格某一行
TableCell表格某一单元格

上面是我用到的,没有全都涉及到。

Section

某一页的内容,获取方法:

Section sec = doc.getSections().get(0);

doc是上面Document的对象,上述方法是获得word文档中第一页的内容。

Paragraph

这里表示我word文档中的某一段落,获取方法:

Paragraph paragraph= sec.getParagraphs().get(1);

这里我选中了word文档中该页中的第二段。

TextRange

TextRange就表示的文本信息。很多对象都可以获得文本信息。就拿上述的Paragraph 对象举例,就可以获得TextRange对象。

 Paragraph paragraph=sec.getParagraphs().get(1);
 TextRange range=paragraph.appendText("123456789");

这里相当在第二段后面连接了 ‘123456789’,效果:
在这里插入图片描述
然后通过TextRange对象可以设置文本的格式。

  //设置字体的样式的
  range.getCharacterFormat().setFontName("微软雅黑");
  //设置字体的大小
  range.getCharacterFormat().setFontSize(13f);
  //设置文字居中
  range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
HeaderFooter

这个表示内容的页脚或页眉:

//获取页脚            
HeaderFooter footer= section.getHeadersFooters().getFooter();
//获取页眉            
HeaderFooter header = section.getHeadersFooters().getHeader();
Table

这是表示内容的某一个表格的:

//获取第二个表格
Table table = sec.getTables().get(1);
TableRow

这是表示内容的某一个表格的某一行:

//获取表格的第二行            
TableRow row = table.getRows().get(1);
TableCell

这是表示内容的某一个表格的某一个单元格:

//获取表格的第二行第二个单元格
TableCell cell = row.getCells().get(1);
//去除单元格前面的回车符
cell.getParagraphs().removeAt(0);        
//在该单元格中添加内容'123'
cell.addParagraph().appendText("123");

效果:
在这里插入图片描述

最后一步

  最后,我们要实现word转pdf的操作。

 //doc路径
Document document = new Document("xxx");
//pdf路径
File outputFile = new File("xxx");
//操作文档保存
document.save(outputFile.getAbsolutePath(), com.aspose.words.SaveFormat.PDF);

完成:
在这里插入图片描述

;