如何搭建BroFileConvert服务器，用于归档或Office（WPS、PDF）文档转换和套打服务测试?
李小翔
2014-05-18 14:42

内容列表

BroFileConvert是一个基于Node.js开发的文档转换器，能将HTML页面转换成PDF、PNG、JPG等格式，还能用于Office、WPS、PDF文件的相互转换。BroFWK、BroBPM的归档、套打等功能都基于该服务。
归档的调用过程如下：
· 	调用 ArchiveService 生成归档用的HTML页面
· 	调用 FileConvertService，将HTML文本、Web应用的URL提交给BroFileConvert服务器
· 	要求从BroFileConvert主机上，可以访问Web应用的URL，否则会出现转换后样式丢失的问题
· 	BroFileConvert将HTML转换成PDF或图片并返回
· 	套打的过程如下：
· 	ControllersApiService 调用GSP渲染引擎，将视图转换成XML
· 	调用 FileConvertService，将XML文本提交给BroFileConvert服务器
· 	BroFileConvert将HTML转换成PDF或Office文件并返回
· 	上述过程涉及到两个系统参数配置：
bropen.framework.plugin.fileconvert.server：BroFileConvert服务器的地址，默认为 http://localhost:6600
grails.serverURL：Web应用的URL，默认为 http://localhost:8080/Foobar
生产环境，将他们配置为实际的地址即可，开发/测试环境下，如果要进行归档或套打测试，可以将他们临时修改，如：
grailsApplication.config.grails.serverURL = ”http://192.168.0.199:8080/Foobar/”
ctx.settingService.createOrUpdate(”bropen.framework.plugin.fileconvert.server”, ”http://a.b.c.d:6600”)
然后再测试，如下面的归档测试代码：
import bropen.bpm.instance.ProcessInstance
import org.apache.commons.io.FileUtils
def service = ctx.archiveService
def processInst = ProcessInstance.get(204431)
//String filename = service.archiveAsHTML(processInst,null,null)
String filename = service.archiveAsPDF(processInst, null, null)
if ( filename ) FileUtils.moveFile(new File(filename), new File(”new path...”))
此外，为了方便测试，还可以在本地搭建一个BroFileConvert服务器进行测试：
· 	从Node.js官网（http://nodejs.org/）下载并安装node
· 	运行 node app.js，或者使用 startup 批处理启动服务
· 	BroFileConvert服务器启动后：
如果只是归档测试（不依赖Office等Windows程序），会自动忽略上面两个系统参数
如果要进行Office文档转换，如果本机系统是Windows（需安装Office），也会自动忽略上面的fileconvert.server参数；如果不是Windows，还是会访问系统参数中配置的地址