ソースを参照

完成上下标识别功能,将添加到文档识别中

4228306 5 年 前
コミット
6c9c4f075a
2 ファイル変更27 行追加20 行削除
  1. BIN
      doc/sub.docx
  2. 27 20
      src/test/java/com/yaoxiang/diagnosis/service/UploadTest.java

BIN
doc/sub.docx


+ 27 - 20
src/test/java/com/yaoxiang/diagnosis/service/UploadTest.java

@@ -85,38 +85,29 @@ public class UploadTest {
         for (XWPFParagraph paragraph : paragraphs) {
             List<XWPFRun> runs = paragraph.getRuns();
 
-            List<XWPFRun> runs1 = deepCopy(runs);
-
-
             System.out.println("before parse " + paragraph.getText());
             System.out.println("runs size " + runs.size());
 
-            Iterator<XWPFRun> it = runs1.iterator();
-            int i = 0;
             Map<Integer, String> insert = new HashMap<>();
-            while (it.hasNext()) {
-                XWPFRun run = it.next();
-                switch (run.getSubscript()) {
+            for (int i = 0; i < runs.size(); i++) {
+                switch (runs.get(i).getSubscript()) {
                     case BASELINE:
                         break;
                     case SUBSCRIPT:
-//                        insert.put(i-1, "<sub>");
-                        paragraph.insertNewRun(i).setText("<sub>");
-                        paragraph.insertNewRun(++i).setText("</sub>");
-//                        insert.put(i++, "</sub>");
+                        insert.put(i, "<sub>");
+                        insert.put(i + 1, "</sub>");
                         break;
                     case SUPERSCRIPT:
-                        paragraph.insertNewRun(i).setText("<sup>");
-                        paragraph.insertNewRun(++i).setText("</sup>");
-//                        insert.put(i-1, "<sup>");
-//                        insert.put(i++, "</sup>");
+                        insert.put(i, "<sup>");
+                        insert.put(i + 1, "</sup>");
                         break;
                 }
             }
-//            for (Map.Entry<Integer, String> entry : insert.entrySet()) {
-//                XWPFRun run = paragraph.insertNewRun(i);
-//                run.setText(entry.getValue());
-//            }
+            int i = 0;
+            for (Map.Entry<Integer, String> entry : insert.entrySet()) {
+                XWPFRun run = paragraph.insertNewRun(entry.getKey() + i++);
+                run.setText(entry.getValue());
+            }
 
             System.out.println("after parse " + paragraph.getText());
             System.out.println("runs size " + runs.size());
@@ -126,6 +117,22 @@ public class UploadTest {
 //        OLEObjectDocument
     }
 
+    @Test
+    public void test4() throws Exception {
+        XWPFDocument document = WordUtil.open("doc/sub.docx");
+        List<XWPFParagraph> paragraphs = document.getParagraphs();
+        for (XWPFParagraph paragraph : paragraphs) {
+            List<XWPFRun> runs = paragraph.getRuns();
+            int i = 0;
+            for (XWPFRun run : runs) {
+                System.out.println("run = " + i + " " + run.getText(0));
+                i++;
+            }
+//            paragraph.insertNewRun(0).setText("asdf");
+            System.out.println(paragraph.getText());
+        }
+    }
+
 
     public static <T> List<T> deepCopy(List<T> src) throws IOException, ClassNotFoundException {
         ByteArrayOutputStream byteOut = new ByteArrayOutputStream();