From 0240b6fa9435e525a55eeb810bd20a5e81191f80 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 5 Dec 2024 14:22:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=87=E9=A2=98=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/service/impl/BookServiceImpl.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/peanut/modules/book/service/impl/BookServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/BookServiceImpl.java index 46872cb0..69bdbe58 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/BookServiceImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/BookServiceImpl.java @@ -462,7 +462,22 @@ public class BookServiceImpl extends ServiceImpl implements BookEntity bookEntity = this.getBaseMapper().selectById(bookId); String novel = bookEntity.getNovel(); InputStream inputStream = FileDownloadUtil.getInputStream(novel); - XWPFDocument document = new XWPFDocument(inputStream); + InputStream inputStreamCopy = FileDownloadUtil.getInputStream(novel); + List heading1Llist = new ArrayList(); + List heading2Llist = new ArrayList(); + Document doc = new Document(inputStream); + for (int i = 0; i < doc.getSections().getCount(); i++) { + Section section = doc.getSections().get(i); + for (int j = 0; j < section.getParagraphs().getCount() - 1; j++) { + Paragraph paragraph = section.getParagraphs().get(j); + if (StringUtils.isNotBlank(paragraph.getText())&¶graph.getStyleName().equals("Heading1")) { + heading1Llist.add(paragraph.getText()); + }else if (StringUtils.isNotBlank(paragraph.getText())&¶graph.getStyleName().equals("Heading2")){ + heading2Llist.add(paragraph.getText()); + } + } + } + XWPFDocument document = new XWPFDocument(inputStreamCopy); // 遍历文档中的所有元素(段落和表格) List bodyElements = document.getBodyElements(); String chapterName = ""; @@ -474,7 +489,7 @@ public class BookServiceImpl extends ServiceImpl implements XWPFParagraph paragraph = (XWPFParagraph) element; String text = paragraph.getText(); if (text != null && !text.isEmpty()) {//处理段落或正文 - if (paragraph.getRuns().get(0).getFontSize()>=topText){//判断是否是顶级标题 + if (heading1Llist.contains(text)||paragraph.getRuns().get(0).getFontSize()>=topText){//判断是否是顶级标题 chapterName = text; BookChapterEntity bookChapter = new BookChapterEntity(); bookChapter.setBookId(bookId); @@ -493,7 +508,7 @@ public class BookServiceImpl extends ServiceImpl implements } } } - }else if (paragraph.getRuns().get(0).getFontSize()>=secText){//判断是否是二级标题 + }else if (heading2Llist.contains(text)||paragraph.getRuns().get(0).getFontSize()>=secText){//判断是否是二级标题 if (StringUtils.isNotBlank(chapterName)){ BookChapterEntity bookChapter = new BookChapterEntity(); bookChapter.setBookId(bookId);