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,还是会访问系统参数中配置的地址