背景

客户生产系统有张表存储流程bpmn文件,由于某些原因,更新程序找不到,因此只能连接数据库直接更新字段,数据库是oracle数据库,字段类型是blob。

PL/SQL Developer

一开始通过PL/SQL Developer工具进行编辑,bpmn文件使用UTF-8编码,但是在工具中查看是乱码,因此不能直接编辑

Read the rest of this entry

,

说明

onlyoffice提供文档构建服务(document server),通过文档构建服务可以对文档进行二次修改,也可以动态创建文档,文档构建服务支持,文档构建服务支持以下编程语言进行构建

  • .NET
  • node.js
  • php
  • ruby

并且在onlyoffice的插件开发中,也可以使用node.js的api,这个在插件篇也会提到

安装

document server需要单独安装,可以从这里下载最新的安装包,目前支持以下平台

Read the rest of this entry

说明

onlyoffice提供文档转换服务,基本涵盖了几乎所有常见文档之间的转换,可以看下word文档能转换成的文档格式就知道其强大

实现

转换接口

文档转换是通过接口来完成的,接口地址是https://documentserver/ConvertService.ashx,documentserver是documentserver的地址。这里列举几个常见的转换例子

文件保存流程

onlyoffice对文件保存处理流程如下

  • 用户在文档编辑器中对文档进行编辑
  • 文档编辑器将变化发送到document server(文档服务器)
  • 当用户关闭文档编辑器document server会回调用户配置的callbackurl进行通知
  • 回调程序下载最新的文档保存到文档服务器中

实现

代码

首先,和上一篇一样,本地创建html文件

Read the rest of this entry

文件打开流程

要在浏览器打开一个office文件,需要经过以下步骤

  • 指定文件下载路径和文件类型(word,ppt,excel)并通过JavascriptApi调用document server相关接口
  • document server会在后台将文件下载好并将文件转换为 Office Open XML格式,这是一种基于XML的通用文档格式
  • document server会将文档转换为前端可展示的形式(canvas)
  • 前端文档编辑器显示文档内容

实践

这里我们准备了一个样例文档并放到线上,这个样例文档也是onlyoffice官方使用的样例word文档。

创建页面

本地创建一个html页面,代码如下

Read the rest of this entry

编译环境

官方推荐的编译环境是Ubuntu 14.04,建议使用官方推荐的版本,避免编译过程中出现未知错误

64-bit Ubuntu 14.04

编译

apt-get install -y python git
git clone https://github.com/ONLYOFFICE/build_tools.git
apt-get install libgnutls-dev
nohup ./automate.py server >log.out 2>&1 &
如果顺利的话,大概需要8个小时以上能完成编译

说明

onlyoffice有三个版本

  • 社区版(基于AGPL v.3协议)
  • 企业版
  • 开发版

其中企业版和开发版都需要购买商业授权,本次以安装社区版为例

安装

onlyoffice支持docker安装和主机安装,docker安装比较简单,参考官方文档即可,这里就不再介绍,本次介绍的是在主机上安装onlyoffice

Read the rest of this entry

写在前面

长期以来,我一直用的是git命令行管理代码,当只有一个人时,这完全没问题,但参与团队协作,命令行就显得令不从心,这并不是说命令后做不到,只是命令需要记住太多的命令,学习成本太高,而且在解决冲突上面,如果只靠命令后,那种感觉你体验过一次就再也不想体验。在花了一两天时间研究idea的git工具后,我就决定彻底放弃命令行拥抱gui,因此这边将这两天的研究成果记录下来,供大家学习参考。

Read the rest of this entry

背景

在windows中,有诸如XShellSecureCRT等ssh连接神器,但在Mac中,可选择的工具并不多,ITerm2被一众程序员吹上了天,但自己实际用下来并不好用,对终端的执念让我基本上尝试了所有在Mac上能找得到的终端工具,最终选择了termius,该工具界面有点极客风,设计简洁,连接速度快,可惜的是如果用户退出所有记录将被清除,在被清除两次后终于无奈的放弃了Mac下唯一上手的终端工具,放弃termius后却很难再找一个满意的终端,mac自带的终端其实还行,就是不大好用,理想中的终端应该满足以下功能

  • 能够发送心跳包,不至于因为断网或者闲置时间过长连接断开需要重连
  • 能够有一定的管理功能,记住密码,不用每次输入地址和账号,这个也是最重要的需求
  • 支持tab页,支持分屏
  • 能够上传下载文件
  • 颜值要高
  • 可以选择复制,因为在终端经常需要复制,大部分终端都可以选择即可复制,无需手动ctrl+c

如果mac自带终端能够满足以上需求,就完全可以用于日常开发,那么接下来我们就一步步改造终端

Read the rest of this entry