处理标题中的特殊字符

This commit is contained in:
chengli 2022-07-14 01:02:17 +08:00
parent dbbd375ed8
commit 7e108247cf
3 changed files with 19 additions and 10 deletions

View File

@ -20,6 +20,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.aspose.words.Document; import com.aspose.words.Document;
import com.aspose.words.SaveFormat; import com.aspose.words.SaveFormat;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.*; import org.apache.poi.hwpf.usermodel.*;
@ -32,6 +33,7 @@ import java.util.*;
* @Description: * @Description:
* @date 2022/6/30 21:47 * @date 2022/6/30 21:47
*/ */
@Slf4j
public class ReadTable { public class ReadTable {
//相关文件存文件名称 //相关文件存文件名称
private String version = ""; private String version = "";
@ -253,10 +255,11 @@ public class ReadTable {
if (fieldMap.get("标题") != null) { if (fieldMap.get("标题") != null) {
title = fieldMap.get("标题").toString(); title = fieldMap.get("标题").toString();
} }
title = title + nowPara.text().replace("\r", ""); title = title + nowPara.text().replace("\r", "").replace("\b", "").replace("\t", "").replace("\f", "");
fieldMap.put("标题", title); fieldMap.put("标题", title);
fileFieldMap.put("标题", new WordField<>(title)); fileFieldMap.put("标题", new WordField<>(title));
titleover = 1; titleover = 1;
log.info("识别的标题为:" + title);
continue; continue;
} }
} }
@ -559,7 +562,12 @@ public class ReadTable {
fontName = characterRun.getFontName(); fontName = characterRun.getFontName();
if (fontName.contains("黑体")) { if (fontName.contains("黑体")) {
//与文档fontsize标号2倍关系 黑体一号 等于 26号size //与文档fontsize标号2倍关系 黑体一号 等于 26号size
return (characterRun.isBold() && characterRun.getFontSize() == 52) || characterRun.getFontSize() == 44; if (characterRun.isBold() && characterRun.getFontSize() == 52) {
return true;
}
if (characterRun.getFontSize() == 44) {
return true;
}
} }
} }
return false; return false;

View File

@ -119,7 +119,7 @@ public class ReadWordUtil {
}); });
jsonObject.put("table", jsonArray); jsonObject.put("table", jsonArray);
new CoeProcessLevelWeb(userContext).moreAttrContentSave(id, "term", jsonObject.toJSONString()); new CoeProcessLevelWeb(userContext).moreAttrContentSave(id, "term", jsonObject.toJSONString());
}else if ("组织/角色与职责".equals(key)) { } else if ("组织/角色与职责".equals(key)) {
List nowdata = (List) tmp.getData(); List nowdata = (List) tmp.getData();
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "组织角色"); jsonObject.put("name", "组织角色");
@ -221,7 +221,7 @@ public class ReadWordUtil {
return; return;
} }
//创建图形 //创建图形
if(iscreatemap){ if (iscreatemap) {
DCContext dcContextpdf1 = new DCContext(userContext, dcProfilepdfdoc, "com.actionsoft.apps.coe.pal.datamigration", groupValue, fileValue, docxname); DCContext dcContextpdf1 = new DCContext(userContext, dcProfilepdfdoc, "com.actionsoft.apps.coe.pal.datamigration", groupValue, fileValue, docxname);
InputStream docxfile = SDK.getDCAPI().read(dcContextpdf1); InputStream docxfile = SDK.getDCAPI().read(dcContextpdf1);
new CreateMaps().updateMaps(userContext, wsId, docxfile, title); new CreateMaps().updateMaps(userContext, wsId, docxfile, title);
@ -254,7 +254,7 @@ public class ReadWordUtil {
if (fieldMap.get("标题") != null) { if (fieldMap.get("标题") != null) {
title = fieldMap.get("标题").toString(); title = fieldMap.get("标题").toString();
} }
title = title + nowPara.text().replace("\r", "").replace("\b", "").replace("\t", ""); title = title + nowPara.text().replace("\r", "").replace("\b", "").replace("\t", "").replace("\f", "");
fieldMap.put("标题", title); fieldMap.put("标题", title);
fileFieldMap.put("标题", new WordField<>(title)); fileFieldMap.put("标题", new WordField<>(title));
titleover = 1; titleover = 1;
@ -382,13 +382,13 @@ public class ReadWordUtil {
Table table = range.getTable(paragraph); Table table = range.getTable(paragraph);
Map<String, List<String>> verticalTableText = this.getVerticalTableText(table); Map<String, List<String>> verticalTableText = this.getVerticalTableText(table);
List<String> strings = null; List<String> strings = null;
if(verticalTableText.get("文件") != null){ if (verticalTableText.get("文件") != null) {
strings = verticalTableText.get("文件"); strings = verticalTableText.get("文件");
} }
if(verticalTableText.get("文件名称") != null){ if (verticalTableText.get("文件名称") != null) {
strings = verticalTableText.get("文件名称"); strings = verticalTableText.get("文件名称");
} }
if(strings != null){ if (strings != null) {
fileMap.put(wordAttribute.getTitle(), strings); fileMap.put(wordAttribute.getTitle(), strings);
fileFieldMap.put(wordAttribute.getTitle(), new WordField<>(strings)); fileFieldMap.put(wordAttribute.getTitle(), new WordField<>(strings));
} }
@ -447,6 +447,7 @@ public class ReadWordUtil {
/** /**
* 将所有的属性解析出来 * 将所有的属性解析出来
*
* @param tb * @param tb
* @return * @return
*/ */
@ -473,9 +474,9 @@ public class ReadWordUtil {
} }
sb.append(s); sb.append(s);
} }
key = sb.toString().replaceAll(" ",""); key = sb.toString().replaceAll(" ", "");
//看看是否是键值 //看看是否是键值
if(nameToIdMap.containsKey(key) && result.get(key) == null && j < (tr.numCells()-1)){ if (nameToIdMap.containsKey(key) && result.get(key) == null && j < (tr.numCells() - 1)) {
//取得单元格 //取得单元格
j += 1; j += 1;
TableCell tdtmp = tr.getCell(j); TableCell tdtmp = tr.getCell(j);