Doc 文档的批量上传并转换为 PDF 文件,前端同步获取转换结果并提供下载

Github 项目源码: liumapp/synchronizing-doc-convert-results

功能介绍

  • 前端用户上传一个或者多个 doc/docx 文档

  • 后端异步执行对文档的转换操作,利用了 rabbitmq 队列

  • 前端可以同步获取转换结果,并以表格形式提供下载操作

介绍动图您可以在 Github 项目文档中浏览

如何使用

Docker

首先,请确保您的本地系统中有 docker、docker-compose 及 maven 的支持

其次,请确保您没有修改过 synch-service 的项目配置文件,如果修改过,请确保 spring.profiles.active 的值为 docker,并且与 synch-rabbitmq 容器的连接信息与 docker-compose.yml 的保持一致

安装镜像

拷贝项目到本地后,执行脚本 build-image.sh 来安装镜像

该镜像的安装,是由 docker-maven-plugin 驱动的,所以需要您确保在执行脚本前,本机提供 maven3 版本以上的支持

启动容器

利用 docker-compose,执行命令:

docker-compose up -d

来启动容器

启动后的视图您可以 Github 项目文档中浏览

之所以需要用到 docker-compose 进行容器的编排操作,是因为系统依赖于 rabbitmq 的支持

rabbitmq 本身的存在,是以一个独立的容器来运行,并通过配置 docker-compose,使两者共享一个网关来进行数据交互

网关配置如下:

networks:
  synchronizing-doc-convert-results:
    driver: bridge

并在两个容器的配置项中,添加以下内容:

networks:
  - synchronizing-doc-convert-results

停止容器

利用 docker-compose,执行命令:

docker-compose down

来停止容器

需要注意的是,停止容器本身,并不会删除镜像文件

删除镜像

在项目根目录下,执行脚本 rm-image.sh 删除镜像文件,请注意,该操作的执行前提是容器处于停止状态

IDEA

考虑到部分用户可能对 Docker 不是太了解,所以这个项目也可以使用传统的方式来运行

但是项目本身使用了前后端分离的形式,前端项目为 synch-ui,采用 vue2.0 框架实现,后端项目为 synch-service,采用 springboot1.5.6 框架实现

所以如果您希望同时运行前后端项目的话,需要您的系统同时具备 Java 环境和 Nodejs 环境的支持

但考虑到大部分开发人员并不会选择全栈作为自己的发展发现,所以为纯 Java 开发人员提供了一定的便利性:

synch-service 利用 thymeleaf 已经加载了 synch-ui 编译后的静态文件,并完成了相关配置,所以纯 Java 开发人员只需要将 synch-service 导入 IDEA(导入过程省略),并且修改 application.yml 配置文件的 spring.profiles.active 值为 dev,在启动后访问 http://localhost:2020 也可以查看系统效果。

与此同时,如果您是一名纯前端开发人员,在 webstorm 中打开了 synch-ui 项目,并利用

npm run dev

启动项目后,您需要同时启动后端项目才能够在 http://localhost:8080 查看系统效果。

如果您对前端代码做了一定的修改,而又希望将最新的效果导入 synch-service 中,那么请您执行脚本 update-ui.sh 自动完成 synch-ui 编译文件的导入工作。

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    3132 引用 • 3888 回帖 • 655 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2332 引用 • 6786 回帖 • 1182 关注
  • Vue.js

    Vue.js(读音 /vjuː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    95 引用 • 442 回帖 • 798 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销, 可以很容易地在机器和数据中心中运行。最重要的是, 他们不依赖于任何语言、框架或包括系统。

    129 引用 • 199 回帖 • 818 关注
感谢    关注    收藏    赞同    反对    举报    分享