当前位置: 首页 > news >正文

英文网站建设 潍坊福州做网站优化

英文网站建设 潍坊,福州做网站优化,江苏省工程建设标准站网站,网站建设课程设计实验指导书前一篇我讲解了如何对接MiniMax实现FAQ,其实知识库不仅仅可以实现FAQ,还能实现帮助文档的查询,内部培训资料的查询等等,但是这些培训资料大部分是word版本的,并且有层级结构,比如标题1,标题1-1等…

前一篇我讲解了如何对接MiniMax实现FAQ,其实知识库不仅仅可以实现FAQ,还能实现帮助文档的查询,内部培训资料的查询等等,但是这些培训资料大部分是word版本的,并且有层级结构,比如标题1,标题1-1等等,这种层级结构AI是无法识别的,所以需要转换成markdown格式的,帮助文档还有一个问题就是相似问题容易混淆,比如A文档有联系人,B文档也有联系人,这时查联系人就会出现错误的情况,所以要在每个标题前加前缀,比如A文档的联系人,B文档的联系人,这些也希望能够在转换程序中实现.

代码实现

public class MDTest {@Testpublic void testMD() throws Exception {String preHeader = "A文档的";if (preHeader == null) preHeader = "";String path = "d:/333.docx";File file = new File(path);FileInputStream is = new FileInputStream(file);XWPFDocument document = new XWPFDocument(is);StringBuilder sb = new StringBuilder();for (IBodyElement e : document.getBodyElements()) {if (e instanceof XWPFParagraph) {XWPFParagraph paragraph = (XWPFParagraph) e;appendParagraphText(sb, paragraph, document, preHeader);} else if (e instanceof XWPFTable) {XWPFTable table = (XWPFTable) e;appendTableText(sb, table);} else if (e instanceof XWPFSDT) {sb.append(((XWPFSDT) e).getContent().getText());}sb.append('\n');}FileUtil.writeBytes(sb.toString().getBytes(), "d:/aaa.md");}private static boolean isHeadTitle(XWPFDocument document, XWPFParagraph paragraph) {String styleName = getStyleName(document, paragraph);return styleName.toLowerCase().startsWith("heading");}private static String getStyleName(XWPFDocument document, XWPFParagraph paragraph) {String styleId = paragraph.getStyleID();if (StringUtils.isNotEmpty(styleId)) {XWPFStyle style = document.getStyles().getStyle(styleId);return style.getName();}return "";}private static void appendTableText(StringBuilder text, XWPFTable table) {for (XWPFTableRow row : table.getRows()) {List<ICell> cells = row.getTableICells();for (int i = 0; i < cells.size(); i++) {ICell cell = cells.get(i);if (cell instanceof XWPFTableCell) {text.append(((XWPFTableCell) cell).getTextRecursively());} else if (cell instanceof XWPFSDTCell) {text.append(((XWPFSDTCell) cell).getContent().getText());}if (i < cells.size() - 1) {text.append("\t");}}text.append('\n');}}private static void appendParagraphText(StringBuilder text, XWPFParagraph paragraph, XWPFDocument document, String preHeader) {String styleName = getStyleName(document, paragraph);if (styleName.toLowerCase().startsWith("heading")) {String number = styleName.replaceAll(".*(\\d+)$", "$1");appendHeader(text, number, preHeader);}for (IRunElement run : paragraph.getRuns()) {text.append(run);}}private static void appendHeader(StringBuilder text, String number, String preHeader) {if (StringUtils.isEmpty(number)) return;int num = Integer.parseInt(number);for (int i = 0; i < num; i++) {text.append("#");}text.append(" ").append(preHeader);}
}

代码解析

我们先通过poi读取word文档,然后获取段落,getStyleName方法可以获取段落的样式,如果样式是heading 1,表示是标题1,heading 2是标题2,而markdown格式的标题1是# 标题,标题2是## 标题,这样就能实现转换,其余的直接按照文本放入就行了

效果

word形式

markdown形式

 

http://www.yayakq.cn/news/948872/

相关文章:

  • 网站合同 下载自己做网站现实么
  • 揭阳网站建设揭阳做一个手机网站多少钱
  • 东莞家用台灯东莞网站建设云南网官网
  • 肇庆建网站wordpress如何评论
  • 金泉网做网站做盗版电影网站吗
  • 做注册会计师网站泉州做网站设计
  • 学做网站php吗网站里面如何在新闻列表上显示hot
  • 临夏网站建设除了网页外 网站还需要
  • app网站开发流程图网络舆情风险点有哪些
  • 自己网站上做支付宝怎么收费的汉字logo标志设计
  • 南宁3及分销网站制作互联网广告公司排名前十
  • 办网站需要备案吗wordpress 不会编程
  • 哪个网站是专门做兼职的企业网站建设推荐兴田德润
  • 北京网站策划公司系统门户网站建设详细功能
  • 手机网站制作推广合肥房产网58同城
  • 岳阳做网站哪家好网站建设图片链接方法
  • 饲料行业建设网站方案设计免费下载ppt微盟企业微信助手
  • 微网站免费注册百度搜索关键词排名优化
  • 刘强东自己做网站网站受到攻击 怎么做
  • 一个网站添加多个网址在什么网站上可以做免费广告
  • 北京市住房与建设厅官方网站没网站怎么做cpa
  • 手机网页及网站设计 pdf国外网站加速
  • 专门做签到的网站宿州市埇桥区建设局网站
  • 企业网站推广文案wordpress 出名主题
  • 网站建设哪个语言好在线服务平台的跨境电商有哪些
  • 网站系统平台的安全策略是什么做资金盘网站
  • eclipse的开发网站开发仙桃做网站的公司
  • 互联网公司 网站软文推广文章范文1000
  • 添加网站备案号链接网络服务商怎么咨询
  • 视频弹幕网站怎么做的英文 wap网站