Fix docx parser line bug (#1715)

### What problem does this PR solve?
#1704 

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

---------

Co-authored-by: Kevin Hu <kevinhu.sh@gmail.com>
This commit is contained in:
H 2024-07-29 10:06:02 +08:00 committed by GitHub
parent ebdd71ce68
commit 0cb588f7bf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 2 deletions

View File

@ -952,7 +952,7 @@ class RAGFlowPdfParser:
fnm, str) else pdfplumber.open(BytesIO(fnm)) fnm, str) else pdfplumber.open(BytesIO(fnm))
self.page_images = [p.to_image(resolution=72 * zoomin).annotated for i, p in self.page_images = [p.to_image(resolution=72 * zoomin).annotated for i, p in
enumerate(self.pdf.pages[page_from:page_to])] enumerate(self.pdf.pages[page_from:page_to])]
self.page_chars = [[{**c, 'top': max(0, c['top'] - 10), 'bottom': max(0, c['bottom'] - 10)} for c in page.dedupe_chars().chars if self._has_color(c)] for page in self.page_chars = [[{**c, 'top': c['top'], 'bottom': c['bottom']} for c in page.dedupe_chars().chars if self._has_color(c)] for page in
self.pdf.pages[page_from:page_to]] self.pdf.pages[page_from:page_to]]
self.total_page = len(self.pdf.pages) self.total_page = len(self.pdf.pages)
except Exception as e: except Exception as e:

View File

@ -23,6 +23,8 @@ from rag.utils import num_tokens_from_string
from PIL import Image from PIL import Image
from functools import reduce from functools import reduce
from markdown import markdown from markdown import markdown
class Docx(DocxParser): class Docx(DocxParser):
def __init__(self): def __init__(self):
pass pass
@ -81,7 +83,8 @@ class Docx(DocxParser):
continue continue
if 'w:br' in run._element.xml and 'type="page"' in run._element.xml: if 'w:br' in run._element.xml and 'type="page"' in run._element.xml:
pn += 1 pn += 1
new_line = [(line[0], reduce(concat_img, line[1])) for line in lines] new_line = [(line[0], reduce(concat_img, line[1]) if line[1] else None) for line in lines]
tbls = [] tbls = []
for tb in self.doc.tables: for tb in self.doc.tables:
html= "<table>" html= "<table>"