Repository navigation
Expand file tree
/
Copy pathContentExtractorTest.java
More file actions
104 lines (90 loc) · 3.41 KB
/
Copy pathContentExtractorTest.java
File metadata and controls
104 lines (90 loc) · 3.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package org.ofdrw.reader;
import org.junit.jupiter.api.Test;
import org.ofdrw.core.basicStructure.doc.CT_PageArea;
import org.ofdrw.core.basicStructure.pageObj.Page;
import org.ofdrw.core.basicType.ST_Box;
import org.ofdrw.reader.extractor.ExtractorFilter;
import org.ofdrw.reader.extractor.RegionTextExtractorFilter;
import java.awt.*;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* 内容抽取测试用例
*
* @since 2020-09-21 23:09:24
*/
class ContentExtractorTest {
private Path src = Paths.get("src/test/resources/helloworld.ofd");
/**
* 提取指定页面的文本
*/
@Test
void getPageContent() throws IOException {
try (OFDReader reader = new OFDReader(src)) {
ContentExtractor extractor = new ContentExtractor(reader);
List<String> pageContent = extractor.getPageContent(1);
System.out.println(pageContent);
assertEquals(pageContent.size(), 1);
assertEquals("你好呀,OFD Reader&Writer!", pageContent.get(0));
}
}
/**
* 提取矩形区域内的文字
*/
@Test
void extractByFilter() throws IOException {
try (OFDReader reader = new OFDReader("src/test/resources/keyword.ofd")) {
CT_PageArea area = reader.getPage(1).getArea();
System.out.println(area.getPhysicalBox());
Rectangle rectangle = new Rectangle(0, 0, 283, 120);
ExtractorFilter filter = new RegionTextExtractorFilter(rectangle);
ContentExtractor extractor = new ContentExtractor(reader, filter);
List<String> pageContent = extractor.getPageContent(1);
System.out.println(pageContent);
}
}
/**
* 提取所有页面出现的文本
*/
@Test
void extractAll() throws IOException {
try (OFDReader reader = new OFDReader(src)) {
ContentExtractor extractor = new ContentExtractor(reader);
List<String> pageContent = extractor.extractAll();
System.out.println(pageContent);
assertEquals(pageContent.size(), 1);
assertEquals("你好呀,OFD Reader&Writer!", pageContent.get(0));
}
}
/**
* 含有PageBlock包裹的对象的文字提取测试
*/
@Test
void extractAllPageBlock() throws IOException {
Path src = Paths.get("src/test/resources/helloworld_with_pageblock.ofd");
try (OFDReader reader = new OFDReader(src)) {
ContentExtractor extractor = new ContentExtractor(reader);
List<String> pageContent = extractor.extractAll();
System.out.println(pageContent);
assertEquals(pageContent.size(), 1);
assertEquals("你好呀,OFD Reader&Writer!", pageContent.get(0));
}
}
/**
* 页面内容迭代器,通过迭代器可以实现对每一页的内容处理
*/
@Test
void traverse() throws IOException {
try (OFDReader reader = new OFDReader(src)) {
ContentExtractor extractor = new ContentExtractor(reader);
extractor.traverse((pageNum, contents) -> {
// 在这里你可以做些你喜欢的事情
assertEquals(contents.size(), 1);
assertEquals("你好呀,OFD Reader&Writer!", contents.get(0));
});
}
}
}