package jnpf.dmsService.search.extract;
|
|
import jnpf.dmsService.search.DmsSearchProperties;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDPage;
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.io.TempDir;
|
|
import java.io.OutputStream;
|
import java.nio.file.Files;
|
import java.nio.file.Path;
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
class DmsTextExtractionServiceTest {
|
@TempDir
|
Path directory;
|
|
@Test
|
void extractsDocxText() throws Exception {
|
Path file = directory.resolve("quality.docx");
|
try (XWPFDocument document = new XWPFDocument();
|
OutputStream output = Files.newOutputStream(file)) {
|
document.createParagraph().createRun().setText("质量管理规程");
|
document.write(output);
|
}
|
|
DmsTextExtractionResult result = service().extract(file, file.getFileName().toString());
|
|
assertTrue(result.getText().contains("质量管理规程"));
|
assertFalse(result.isOcrRequired());
|
}
|
|
@Test
|
void marksImageOnlyPdfForOcr() throws Exception {
|
Path file = directory.resolve("scan.pdf");
|
try (PDDocument document = new PDDocument()) {
|
document.addPage(new PDPage());
|
document.save(file.toFile());
|
}
|
|
DmsTextExtractionResult result = service().extract(file, file.getFileName().toString());
|
|
assertTrue(result.isOcrRequired());
|
}
|
|
private DmsTextExtractionService service() {
|
return new DmsTextExtractionService(new DmsSearchProperties());
|
}
|
}
|