Explorar o código

fix: 修复 getVerticalAlignment() 返回类型兼容性

使用 Object 类型接收 STVerticalAlignRun.Enum,通过 toString() 判断上下标
何文松 hai 1 mes
pai
achega
7379458fac

+ 9 - 3
backend/parse-service/src/main/java/com/lingyue/parse/service/WordStructuredExtractionService.java

@@ -423,9 +423,15 @@ public class WordStructuredExtractionService {
                 
                 // 上下标
                 try {
-                    VerticalAlign vertAlign = xwpfRun.getVerticalAlignment();
-                    if (vertAlign != null && vertAlign != VerticalAlign.BASELINE) {
-                        run.setVerticalAlign(vertAlign.name().toLowerCase());
+                    // getVerticalAlignment() 返回 STVerticalAlignRun.Enum
+                    Object vertAlign = xwpfRun.getVerticalAlignment();
+                    if (vertAlign != null) {
+                        String alignStr = vertAlign.toString().toLowerCase();
+                        if ("superscript".equals(alignStr)) {
+                            run.setVerticalAlign("superscript");
+                        } else if ("subscript".equals(alignStr)) {
+                            run.setVerticalAlign("subscript");
+                        }
                     }
                 } catch (Exception e) {
                     // 某些版本可能不支持