|
@@ -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:
|
|
|
-
|
|
|
- paragraph.insertNewRun(i).setText("<sub>");
|
|
|
- paragraph.insertNewRun(++i).setText("</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, "<sup>");
|
|
|
+ insert.put(i + 1, "</sup>");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ 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 {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @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++;
|
|
|
+ }
|
|
|
+
|
|
|
+ System.out.println(paragraph.getText());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
public static <T> List<T> deepCopy(List<T> src) throws IOException, ClassNotFoundException {
|
|
|
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
|