java后端实现word上传并转html格式

嘿哥们,我听到你说的了,我当时确实这么做了。

当时,我正在做一个项目,用户必须上传Word文档,将其直接显示在页面上,然后将其拖到富文本框中。
这在当时是一个很大的打击。

开始考虑前端转换,但是仔细想想,发现Word中的图片、表格格式复杂,前端做起来很糟糕。
存在很多兼容性问题。
我记得尝试了很长时间,发现一个复杂的表格乱七八糟,根本无法使用。
最终,他一咬牙,转身。

后端传输的优点是稳定,可以更准确地维护格式。
我使用 Java 并创建了一个后端服务。
主要是找一个现成的库,我忘了叫什么了,不过它可以把Word转HTML。
下一步是处理图像。
首先将图像提取到Word中,将它们保存到服务器,然后将路径添加到HTML中。
这一步很关键,路径不能错,否则图片打不开。
我记得我下载了多少文档,并且一遍又一遍地更改图像路径以进行测试。

您对 DOC 和 DOCX 之间的区别的看法是正确的。
DOCX是一个包含一堆XML文件的压缩包,创建起来有点复杂。
DOC 更简单,是一种老式的二进制格式。
当我处理 DOCX 时,我发现它只是一个 zip 存档。
直接解压即可看到里面的目录结构,包括图片和文档,一目了然。
现在很容易做到,只需在程序中添加一个解压步骤,然后图像处理就很顺利了。

至于Maven依赖,那是必须的。
我找到了一个库并将其添加到 pom.xml 中。
我一这么做,瘾就解决了。
HTML转换库、XML处理库和压缩文件处理库都添加在堆栈中。
做完后,我跑了一会,它就转了。
尽管速度较慢,但​​我可以转弯。

当时我也准备了Java面试。
学题必不可少,算法题更需要多练习。
我在网上找了一堆面试问题,问了很多。
你说得对,态度很重要,你要主动去学习。
那时候我每天都看博客,看别人的代码,有问题就问。
现在想来,这种研究精力真是弥足珍贵。

总之,你的想法是完全正确的。
后端转换 HTML,处理图像,然后将它们返回到前端。
这是一种更安全的方法。
DOCX流程,解压看目录,也是我当时用的一个技巧。

祝您好运,轻松拿到offer!有什么不懂的可以回来问我。

java word 转 html

结论:jodconverter简单但依赖外部软件。
jodconverter 需要安装 OpenOffice/LibreOffice。
从官方网站下载、安装和配置服务。
该项目添加了 jodconverter-core、commons-io、jna-platform。
该代码定义输入和输出,创建转换对象,然后转换调用。
ApachePOI+Jsoup纯Java实现。
项目加上poi、jsoup。
HWPFDocument 读取 .doc,WordToHtmlConverter 转换为 HTML。
Jsoup 清理 DOM 并移动元/链接标签。
删除body标签的样式和语言属性。
输入已处理的 HTML。
jodconverter适用于OpenOffice环境。
形式要求不高,可以快速集成。
ApachePOI+Jsoup适合细粒度的HTML检查。
没有外部软件环境是首选。
这两种方法都可用于 Spring/Hibernate。
开发成本低,适合各种规模的项目。

自己掂量一下。

word文档转html格式在线预览,使用了pydocx,java POIunoconv

哦,将 Word 文档转换为某种格式的需求很普遍。
我尝试了一些方法,交给你吧。

首先我使用了 pydocx。
这个东西的好处是可以将文件转换为DOCX格式,非常方便。
但缺点也很明显:转换后的表格格式不同,并且不适用于DOC格式的文件。

然后我尝试了Java的ApachePOI库。
这可以处理DOC格式的文件。
但是,样式问题并没有完全解决,就像pydocx一样。

嘿,我只是想知道我是否可以将这两者结合起来?想法不错,但操作相当复杂,并不是最优方案。

最终我选择了unoconv库。
这个东西需要安装LibreOffice和unoconv,它们是转换的基础。
要传输文件,请使用命令行。
格式如下:unoconv -f -o 输出。
输入.docx。
这种方法的优点是可以转换Word、DOCX、Excel等多种格式,而且相当容易使用。

实现方法是在PHP中运行外部命令生成转换后的文件,然后将文件重定向到目标位置即可完成在线预览。

我们来谈谈处理Excel文件。
我最终决定将其转换为PDF格式。
直接转换为 HTML 时,您可能会遇到样式和格式问题。

综上所述,尽管转换过程中存在一些风格上的差异,但最终通过unoconv库和LibreOffice等工具实现了Word、DocX和Excel文件的在线预览功能。
这个过程让我深刻地认识到,选择正确的工具和策略确实是解决在线预览问题的关键。
说起来,这个技术性的东西确实需要不断的探索。