.NET Core 使用 LibreOffice 实现 Office 预览(Docker 部署)

网站建设4年前发布
17 0 0

2023030610053179a3177981cb9b8ec46429841b4f8efa0cb2c1292,前些年做云盘产品的时候,一个很核心的功能就是 Office 文件预览,当时还没有使用 .NET Core ,程序部署在 Windows Server 服务器上,文件预览的方案采用了微软的 OWA 。,目前在做的零代码产品中的表单附件控件,同样面临着 Office 文件预览的问题,现在技术栈采用了 .NET Core ,并使用容器化部署,自然就抛弃了 OWA 的方案。,本文简单介绍下 OWA 的替代方案。,1、创建一个 .NET Core 的控制台程序用来做文件的转换。,2、下载 Libreoffice 安装包、Libreoffice 中文语言包、jdk1.8 安装包 、中文字体包。,2023030610053147e74d4334039521aaf528e67d70e673ad1733617,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 预览肯定有很多种方案,上面只是目前找到的一种可行的方法。

© 版权声明

相关文章