周五快下班接到一个活儿, 描述如下:
办公室之前有很多案例记录, 零散分布在很多docx文档中, 需要设计一个方便内容检索和展示的方案
正好最近业余时间在看框架, 就打算将文档上传到web服务器, 然后在页面上提供展示和检索的服务.
目前web开发的思路是这样:
建立一个model用于存储docx文件, 字段包括文件名, 日期, 存储路径, 和文字内容. 文字内容用于检索.提供批量上传文件的功能, 后台将各文件相关字段存入数据库提供展示和检索视图
谷歌了一下, 发现有很多docx转html的方法. 实际尝试了两个:和.
用于测试的docx如下:
案例测试.docx
用转换的代码如下
"""用pydocx转换为html"""
from pydocx import PyDocX
html = PyDocX.to_html("案例测试.docx")
f = open("PyDocX案例测试.html", 'w', encoding="utf-8")
f.write(html)
f.close()
生成的html
用转换的代码如下:
"""用mammoth转换为html"""
import mammoth
with open("案例测试.docx", "rb") as docx_file:
with open('案例测试.html','w',encoding='utf-8') as f:
result = mammoth.convert_to_html(docx_file)
html = result.value # The generated HTML
messages = result.messages # Any messages, such as warnings during conversion
f.write(html)
生成的html
可见, 默认配置下生成的html能够保留颜色,下划线,粗体,斜体,表格,图片等信息. 而则没有了表格,颜色,下划线信息.
不过有个方法,能够提取出文本, 将这些文本存入数据库,可以方便做内容检索.
"""利用extract_raw_text提取docx的文本"""
import mammoth
with open("案例测试.docx", "rb") as docx_file:
result = mammoth.extract_raw_text(docx_file)
text = result.value
print(text)
周末还有别的安排, 下周一开始实现这些功能.
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...