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

python docx文档转html页面

文章链接: https://mp.weixin.qq.com/s/uMb2ziRS1NJ1GXIjofeANg

说到word文档转html的,网上一搜一大把,各种在线word转html页面,使用起来也方便。但是在实际项目中要使用的话,需要自己开发,这里就提供一个简单的方法。
后缀 .doc 和 .docx 都是word文档,doc是word2003以及之前版本保存的文档,docx是word2007、word2010等保存的新型文档,本质都是属于文字排版的文件。注意 这里提供的方法暂时是针对docx的。

这里使用pydocx的库,安装pip3 install pydocx,可以直接对docx文件进行处理,简单粗暴,PyDocX.to_html("**.docx"),返回值就是转换后的html的源码,然后再通过写文件,写到html文件里面。

from pydocx import PyDocX
html = PyDocX.to_html("test.docx")
f = open("test.html", 'w', encoding="utf-8")
f.write(html)
f.close()

这里对文件的处理都是当前文件夹下面的,得到的html文件可以直接打开查看,通过对html查看,可以发现文字转换成了P标签,图片使用base64 的方式显示的。

这里是对本地的文件进行处理,进一步部署到服务器上,我使用的是Django的项目,前端页面通过form 表单进行上传docx 文件。

<form method="post" enctype="multipart/form-data">
<input type="file" name="file" accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document">
</form>

<input> type属性定为file,accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document" 筛选docx 的文件。

使用地址:https://www.manjiexiang.cn/blog/wordtohtml

这里上传的文件是docx格式的word文档,针对doc 的文档,可以手动改成docx后缀名,进行上传使用。 尝试用代码转换成docx,window平台下有相应的库,ubantu 暂时无果,欢迎码友提供解决方法。
介绍下window平台下的代码转换方法,pip3 install pypiwin32安装这个库,里面有win32com,将doc文档转成docx 的。

from win32com import client
word = client.Dispatch("Word.Application")
doc = word.Documents.Open("D:\\***\\**.doc") //绝对路径 doc文件
doc.SaveAs("D:\\***\\**.docx",16) //保存的docx 文件,绝对路径
doc.Close()
word.Quit()

欢迎关注我的个人博客:https://www.manjiexiang.cn/

更多精彩欢迎关注微信号:春风十里不如认识你
一起学习,一起进步,欢迎上车,有问题随时联系,一起解决!!!

相关文章:

  • 算法60---石子游戏【动态规划】
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • Swift 设置navigation左右两侧按钮
  • JavaEE异常
  • jQuery根据元素值删除数组元素的方法
  • 简单的原生ajax
  • restful命名
  • android Lifecycle源码分析--源码阅读100天(1)
  • Java-TreeSet的用法-入门
  • (四)鸿鹄云架构一服务注册中心
  • 占位子,考完试写
  • golang学习笔记 ---命令行参数
  • 森林病虫防治系统 (结束)
  • Linux内核中进程上下文、中断上下文、原子上下文、用户上下文的理解【转】...
  • 计算机
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • conda常用的命令
  • ECMAScript6(0):ES6简明参考手册
  • exif信息对照
  • HTML5新特性总结
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript函数式编程(一)
  • JavaScript中的对象个人分享
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • python_bomb----数据类型总结
  • React16时代,该用什么姿势写 React ?
  • storm drpc实例
  • 百度小程序遇到的问题
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端代码风格自动化系列(二)之Commitlint
  • 最简单的无缝轮播
  • 2017年360最后一道编程题
  • # .NET Framework中使用命名管道进行进程间通信
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Matlab)使用竞争神经网络实现数据聚类
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Oracle)SQL优化技巧(一):分页查询
  • (笔试题)分解质因式
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (汇总)os模块以及shutil模块对文件的操作
  • (十三)Maven插件解析运行机制
  • (四)Linux Shell编程——输入输出重定向
  • (一)插入排序
  • (转)jdk与jre的区别
  • ******之网络***——物理***
  • *2 echo、printf、mkdir命令的应用
  • .cfg\.dat\.mak(持续补充)
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝