,前些年做云盘产品的时候,一个很核心的功能就是 Office 文件预览,当时还没有使用 .NET Core ,程序部署在 Windows Server 服务器上,文件预览的方案采用了微软的 OWA 。,目前在做的零代码产品中的表单附件控件,同样面临着 Office 文件预览的问题,现在技术栈采用了 .NET Core ,并使用容器化部署,自然就抛弃了 OWA 的方案。,本文简单介绍下 OWA 的替代方案。,1、创建一个 .NET Core 的控制台程序用来做文件的转换。,2、下载 Libreoffice 安装包、Libreoffice 中文语言包、jdk1.8 安装包 、中文字体包。,
,3、搭建一台 centos 虚拟机,并准备好 docker 环境。,1、创建一个名为 OfficeToPdf 的 .NET Core 控制台程序,在 Main 方法中对消息队列进行监听。,2、在 Convert 方法中对消息进行处理,首先根据消息的中的文件 ID 获取文件:,3、启用 LibreOffice 进行文件转换:,4、文件转换成功后,存储转换后的 PDF 文件到 MongoDB,然后和原始文件进行关联,下面代码是调用了零代码平台中的接口进行处理,这里可以根据自己的业务需求自行修改 :,1、在 centos 服务器上 /data 目录中创建目录 liberoffice-docker-build ,将上面提到的 Libreoffice 安装包、Libreoffice 中文语言包、jdk1.8 安装包 、中文字体包拷贝到该目录中。,2、在该目录中创建 Dockerfile 文件,内容如下:,3、执行命令 docker build -t libreofficebase:v1.0 . 进行基础镜像的构建,构建好的基础镜像供文件预览镜像构建时使用。,1、在 centos 服务器的 /data 目录中创建目录 doc-preview-docker-build 。,2、将转换程序 OfficeToPdf 进行编译发布,将发布后的文件拷贝到目录 doc-preview-docker-build 中。,3、在该目录中创建 Dockerfile 文件,内容如下:,4、执行命令 docker build -t office-preview:v1.0 . 进行预览镜像的构建。,执行下面命令进行容器的创建:,Office 预览肯定有很多种方案,上面只是目前找到的一种可行的方法。
© 版权声明
文章版权归作者所有,未经允许请勿转载。