POI系列之根据样式识别word内容和标题

网友投稿 1025 2022-05-29

业务场景:最近接到需求,想实现将一份word文档,其中特定的文本内容获取出来,首先想到两种方法,一种是通过OCR技术,一种是通过模板占位符。

虽然想起来好像是可以实现的,不过ocr技术自己要在短时间实现是不太现实的,要用第三方的会加重项目成本。然后思路是想通过先固定特定的模板,通过一些占位符技术去实现,想法可以,也有在一些付费的第三方应用里看到过,不过实现起来也没那么容易,特别是想要在一两天内实现,时间太紧促了,所以只能通过一种小技巧绕过,方法虽然可行,不过不是好的方法

这种方法是先约定模板,要筛选出来的文本固定一种特定的样式,然后通过通过程序识别出这种文本,还有一种方法是通过书签,不过网上搜到有第三方jar是要收费的,就不描述了

poi-ooxml是word文档需要的

3.9 org.apache.poi poi ${poi.version} org.apache.poi poi-ooxml ${poi.version}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import org.apache.poi.POIXMLDocument; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.model.StyleDescription; import org.apache.poi.hwpf.model.StyleSheet; import org.apache.poi.hwpf.usermodel.Paragraph; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import java.io.*; import java.util.List; public class WordUtils { public static void main(String[] args) throws Exception { String filePath = "D://test.docx"; printWord(filePath); } public static void printWord(String filePath) throws IOException { XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage(filePath)); List paragraphs = document.getParagraphs(); for (XWPFParagraph p : paragraphs) { //获取段落中的句列表 List runsLists = p.getRuns(); for (XWPFRun runs : runsLists) { //获取句的字体颜色 String c = runs.getColor(); //获取句中字的大小 int f = runs.getFontSize(); //获取文本内容 String s = runs.getText(0); // 字体为16的黑色字体都筛选出来 if (f == 16 && "000000".equals(c)) { System.out.println(s); } } } } }

1

2

3

4

5

6

7

8

9

10

11

12

POI系列之根据样式识别word内容和标题

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

ps:本博客内容比较简单,只是自己做下记录,有时间再探讨一下实现,网上实现的很多都是付费的,不建议用本博客的方法,本博客只是自己做下笔记

OCR

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:贝壳测试|新赛道、新电源
下一篇:HTML5个人博客首页demo
相关文章