Alf*_*isy 5 python document text-extraction extract python-3.x
我有一个 MS docx 文件,我需要从中逐页提取文本。我尝试过使用 python-docx 但它可以提取整个文本,但不能按页提取。我还将 docx 转换为 pdf,然后尝试文本提取。问题是,转换后 docx 的页面结构发生了变化。例如,在转换时,字体大小发生了变化,docx中一页的文本内容占用了pdf中一页以上的内容。
我正在寻找一个稳定的解决方案,可以从 docx 中提取分页文本(不转换为 pdf 对我的整个解决方案来说会更好)。有人可以帮我解决这个问题吗?
我发现Tika库在读取文件时有一个xmlContent解析。我用它来捕获xml格式并使用正则表达式来捕获它。下面写下对我有用的 python 代码。
raw_xml = parser.from_file(file, xmlContent=True)
body = raw_xml['content'].split('<body>')[1].split('</body>')[0]
body_without_tag = body.replace("<p>", "").replace("</p>", "").replace("<div>", "").replace("</div>","").replace("<p />","")
text_pages = body_without_tag.split("""<div class="page">""")[1:]
num_pages = len(text_pages)
if num_pages==int(raw_xml['metadata']['xmpTPg:NPages']) : #check if it worked correctly
return text_pages
Run Code Online (Sandbox Code Playgroud)