html展示word文件,html怎么转换成word文档

  html展示word文件,html怎么转换成word文档

  将word转换为html的方法研究

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

  问题的描述

  不把问题说清楚就谈解决方案是不明智的,所以先把问题说清楚:

  目前网上有一套word文件,后台提供上传入口。上传后,您必须分析内容并支持在富文本编辑器中编辑。word文档中有一个空白处,可以在编辑器中填充生成新的数据。原始单词和新生成的单词最终将保持pdf格式。

  我是这样分析的:

  第一个方案

  Word必须上传,并且可以在编辑器中编辑,所以word必须迁移到html。

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

  第二个方案

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

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

  word到html

  所有方法仅描述具体实现,详情可在官网查询。

  Unoconv工具依赖于LibreOffice或者OpenOffice,两者都是基于开源软件,通常是LibreOffice(可能是针对protocol,Debian等的分发视图。)

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

  cd目录

  美味安装。/*.每分钟转数

  Rpm -ivh。/*.这里没有使用rpm,因为rpm命令不能解决依赖性问题。百胜会解决的。

  Unoconv安装

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

  处理问题:

  运行unoconv命令后:

  /opt/libre office 6.2/program/python。平静的边缘:/lib64/libc.so.6:找不到版本“glibc _ 2.14”(必需)

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

  检查当前的glibc版本:

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

  请看yum源代码的版本:

  rpm -qa grep glibc

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

  cd目录

  建设。/configure-prefix=/usr/local/glibc-2.14

  生成-j4

  sudo make安装

  导出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目录。/soffice-no logo-headless-accept= socket,host=127.0.0.1,port=8100urpStarOffice。服务管理器

  启动后,可能会出现以下问题。

  /opt/libre office 5.4/program/Soffice。平静的边缘:error while加载共享库3360 libcairo.so.23360不能打开共享库

  解决方案:

  yum安装ibus

  在这一点上,我的想法有点无知。看看yum源码里有没有这个软件(4.3.7版)安装。之后,只需卸载之前安装的版本。

  之后,在启动命令中,遇到了一些问题,以及相应的解决方法:

  问题

  Java ldx:找不到ajavaruntimeenvironment!

  警告:失败

  从javaldx读取路径

  解决方案:

  Yum -y安装libreoffice-base问题

  /usr/lib 64/libre office/program/soft fice。平静命运X11错误:无法打开显示

  解决方案:

  安装libreoffice-headless pdf乱码,然后想直接转换成pdf使用。这个时候,我已经很焦虑了。看看下面这个命令就知道了,哈哈。

  yum -y安装libreoffice*

  百胜集团安装中文-支持

  到目前为止,所有可能的问题都已解决,或者说转换仍在进行:

  cd目录。/unoconv - connection socket,host=127.0.0.1,port=8100urpStarOffice。组件上下文-f html-o a.html a . docx

  生成html后,我迫不及待地想看看它是什么样子。样式基本都有,但是源文件太乱了。在富文本编辑器中显示它们是可以的,但是tcpdf生成的pdf基本上是不可读的。至于为什么用tcpdf生成pdf,首先,项目中目前使用的是tcpdf,切换是有一定成本的。其次,我们不能为了解决这个问题而容忍杂乱的html代码,从数据存储或者后期维护都做不到这一点。

  如果自动生成的代码不行,会根据文本进行清理。但是,考虑到源word文档的多样性,可能会有各种小问题,所以这个方案也就不了了之了。

  安装:

  yum -y安装pandoc

  执行命令转换:

  pandoc ZZ . docx-o a.html

  错误报告:

  pandoc: zz.docx: hGetContents:无效参数(无效的UTF-8字节序列)

  这个问题还没解决,可能是版本问题,我试着下载了最新版本。这里可以直接执行解压后的平静命运目录中的命令,结果正常。

  在mac下,我也尝试了安装:

  安装:

  brew安装pandoc

  brew安装pandoc-citeproc

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

  您也可以执行此命令来添加自定义标题:

  pandoc-s ZZ . docx-o a.html

  发生了以下错误:

  [警告]此文档格式需要非空的

  元素。请在元数据中指定“标题”或“页面标题”,

  例如通过使用元数据页面标题= . 在命令行上。

  退回到“zz”

  根据提示,你应该添加一个标题。使用以下命令解决它:

  pandoc -s zz.docx -元数据标题:“标题”-a.html

  成功了,我等不及了。与unoconv相比,输出结果代码要少得多,代价是损失了一些样式,比如字体大小。左右页都没了,一般还是用不了。

  3.phpword

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

  PHP默认安装了composer,但是我们的项目不使用composer环境。你可以通过这个链接下载完整的require文件包,并直接在项目中引用它。

  下面的php代码:

  需要一次应用程序路径。/classes/PHP word/vendor/autoload . PHP ;

  $ PHP word= PHP office PHP word io factory:load( a . docx );

  $ XML writer= PHP office PHP word io factory:create writer($ PHP word, HTML );

  $ xmlWriter-save( a . html );

  执行完上面的代码,就可以生成html了。我还是等不及了。生成的html类似于unoconv,代码很多,转换成pdf格式也不完善,所以lmdjzg并不是一个好的解决方案。

  摘要

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

  其他想法

  我也想到了直接从word转换成pdf。首先,对于word模板文档,我们可以用phpword读出空白处(空白处有专门的logo),配置一个表单单独填写空白处。用户添加后,由phpword写入,最后由unoconv生成pdf。

  这样,可以删除富文本编辑器。当填写的内容被删除后,直接更改表单内容即可。

  这似乎是一个解决办法。

  人是活着的,人的需求是可以沟通的。在投入与产出成正比的条件下,各种方案都值得交流和尝试。

  (完)

html展示word文件,html怎么转换成word文档