首页 > 编程知识 正文

word转html工具,html中显示word文档

时间:2023-05-04 01:45:33 阅读:164267 作者:4709

word向html迁移方法研究

因为最近有需求,有可能通过word转移到html,所以前期调查后整理如下。

问题的说明

不明确问题就谈论解决方案是不明智的,所以首先要明确问题:

目前线上有一组word文件,并在背景提供上传入口网站。 上载后,必须分析内容并支持在富格文本编辑器中进行编辑。 word文档中有一个空白,可以在编辑器中填写内容以生成新数据。 原始word和新生成的word最终将以pdf格式保留。

我这样分析:

第一种方案

word必须在上载后可以在编辑器中进行编辑,因此word必须迁移到html。

最终的word必须生成为pdf,第一步生成的html必须生成pdf以保证格式。

第二个方案

因为我以前就知道word会生成pdf,所以我很自然地想,能不能不通过html直接word成pdf。 这样可以减少代码的复杂性和误差。 本来,机器的转换次数越多,误差就越大。

但是,根据问题的描述,导入的word其实就像一个模板,我们需要可以编辑,但这个方法可能不太会调整内容,所以这个方法被保留了。

word to html

所有方法只阐述具体实现,详情可浏览官网。

unoconv工具依赖于LibreOffice或OpenOffice,这两种Office都基于开源软件,通常是LibreOffice (可能是为了协议,Debian等分发视图)

我的是Centos环境,解压后使用以下命令安装下载的rpm软件包:

cd dir

yum -y install ./*.rpm

这里没有使用rpm -ivh ./*.rpm是因为rpm命令无法解决依赖问题。 yum会解决的。

unoconv的安装

最下面有链接,直接下载解压缩。 目录中有unoconv命令,请直接执行。

处理问题:

运行unoconv命令后:

/opt/libre office 6.2/program/python .冷静的边缘:/lib 64/libc.so.6: version ` glibc _ 2.14 ' not found (required )

看来LibreOffice依赖于更高版本的glibc。 注: glibc是整个系统的基础,所以请不要轻易动。 这里是docker环境,有备份,所以我简单地试了一下:

查看当前的glibc版本:

strings/lib 64/libc.so.6|grep glibc _

请看yum源代码的版本:

rpm -qa | grep glibc

没有GLIBC_2.14的版本。 从这个链接下载,下载并按照这些步骤安装。 (没有备份。 请小心操作。 ) :

cd dir

生成构建

./configure-- prefix=/usr/local/glibc-2.14

生成- j4

sudo make install

export LD _ library _ path=/usr/local/glibc-2.14/lib 3360 $ LD _ library _ path

注:由于此安装非常慢,因此这些步骤没有完全执行。

glibc很难升级,所以要降级LibreOffice。 我的系统glibc的最高版本是2.12,所以重新下载了5.4.7。 这是找不到官方提供的说明,完全是感觉上的。

安装完成后,启动office服务。 不用启动。 基于c/s架构的性能更好。

cd dir

./soffice---no logo---headless---accept=' socket,host=127.0.0.1,port=8100; urp; StarOffice.ServiceManager '

启动后,可能会发生以下问题。

/opt/libre office 5.4/program/soffice .冷静的边缘: errorwhileloadingsharedlibraries 3360 lib cairo.so.23360 cannotopensharararararies

解决方案:

yum install ibus

此时,我的想法有点无知,看yum源代码中是否有这个软件(4.3.7版),就安装了。 之后,索性卸载了以前安装的版本。

之后,在启动命令中,遇到了一些问题,对应的解决方案:

问题

Java ldx : couldnotfindajavaruntimeenvironment!

warning :故障

to read path from javaldx

解决方案:

yum -y install libreoffice-base问题

/usr/lib64/libreoffice/program/soffice.冷静的缘分 X11 error: Can't open display

解决方案:

yum install libreoffice-headlesspdf乱码,后来想直接转换为pdf用来着,此时我已经焦虑了,看下面的命令就知道,哈哈。

yum -y install libreoffice*

yum groupinstall chinese-support

到目前为止,可能碰到的问题都解决了,还是进行转换:

cd dir

./unoconv --connection "socket,host=127.0.0.1,port=8100;urp;StarOffice.ComponentContext" -f html -o a.html a.docx

生成了html,迫不及待看一眼什么样,样式基本都在,但是源文件是在太乱了,放在富文本编辑器内表现还可以,但是通过tcpdf生成的pdf基本就没法看了。至于为什么用tcpdf来生成pdf,首先是因为项目当前用的就是tcpdf,切换有一定的成本,二来就是我们不能为了解决这个问题容忍凌乱的html代码,无论从数据存储还是后期维护,都不能这样做。

自动生成的代码不行,就按文本进行干净化处理,但是考虑到源word文档的多样性,可能会出现各种小问题,所以这样方案也pass掉了。

安装:

yum -y install pandoc

执行命令转换:

pandoc zz.docx -o a.html

报错:

pandoc: zz.docx: hGetContents: invalid argument (invalid UTF-8 byte sequence)

这个问题没有解决,可能是版本的问题,又尝试下载了最新版本,在这,解压后的冷静的缘分目录下的命令可以直接执行,结果正常。

在mac下也安装试了下:

安装:

brew install pandoc

brew install pandoc-citeproc

同样执行上面的转换命令,结果一致。

也可以执行这个命令,可以添加自定义的头:

pandoc -s zz.docx -o a.html

出现如下错误:

[WARNING] This document format requires a nonempty

element.

Please specify either 'title' or 'pagetitle' in the metadata,

e.g. by using --metadata pagetitle="..." on the command line.

Falling back to 'zz'

根据提示应该是需要补充个标题,用下面这个命令解决:

pandoc -s zz.docx --metadata title:"title" -o a.html

成功了,同样还是迫不及待,输出结果代码相比unoconv,代码少了很多,代价就是丢失了些样式,比如字体大小,左右对其这种基本的页没有了,总体来说仍然不能使用。

3. phpword

试了以上两种命令式的方法,均不能解决问题,所以尝试下直接用php扩展来处理。

phpword默认使用composer来安装,但是我们项目没有使用composer环境,可以到这个链接下载完整的require文件包,直接在项目引用即可。

如下php代码:

require_once APP_PATH . '/classes/PHPWord/vendor/autoload.php';

$phpWord = PhpOfficePhpWordIOFactory::load('a.docx');

$xmlWriter = PhpOfficePhpWordIOFactory:: createWriter($phpWord, "HTML");

$xmlWriter->save('a.html');

执行上面的代码就能生成html了,依然是迫不及待,生成的html跟unoconv类似,代码很多,转换为pdf格式不完美,所以lmdjzg不是很好的解决方案。

总结

所以在尝试了unoconv、pandoc以及phpword之后,都不能得到相对简洁的对tcpdf友好的html,目前还没有尝试过付费方案,如果有必要,可以考虑再调研一下。

其他想法

又想到了word直接转pdf,首先对于word模板文档,我们可以把留白用phpword读取出来(留白有特殊标识),单独配置一个表单填写留白,用户添加完成后,再由phpword写入进去,最终由unoconv生成pdf。

这样富文本编辑器可以去掉了,填写好的内容删改的时候,直接改表单内容就行。

貌似也是一种方案。

人是活的,需求可以沟通,在保证投入与产出成正比的情况下,各种方案都值得沟通与尝试。

(完)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。