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()); } }