MS Word文件转换为PDF技术方案比较多,比较常见的方案是使用开源的OpenOffice,但是此方案存在兼容的问题,有些文件转换不了或出现问题。而采用现成的产品,成本又比较高。通过对各种Word转PDF解决方案的综合考察,采用在Windows平台调用Word接口的方案,是转换成功率最高的一种,在这里提供个折中的方案。
架设Windows服务器,并安装MS Office 2007,使用MS Office 2007转换PDF功能。 Office 2007 只需安装一个加载项,就能导出文件并将其保存为 PDF 和 XPS 格式,生成的也是高质量 PDF。2007 Microsoft Office加载项:Microsoft Save as PDF 或 XPS。
补充说明:Office 2007 with SP2 已经内置 Save As PDF/XPS 支持,也可直接在 Word 2007 中将 Word 另存为 PDF 了。如下图所示:
在Windows服务器上部署Java程序,用于接受应用服务器的请求,读取FTP上的相应文件至本地,并调用Microsoft Word的接口,将其转化为PDF格式,再推送至FTP相应位置。
可能存在的问题及应对策略:
(1)大量并发的问题
如果出现大量并发的情况,可能导致Windows服务器资源消耗过大,存在转换程序奔溃的风险。针对这种情况,可采用消息队列的机制,将请求写入消息队列,逐个处理。
(2)实时性的问题
转化文件需要一定时间,操作的实时性可能不友好。可加强服务器性能,缩短转化时间,或通过用户操作方式的改变,规避实时操作,改为延时操作。
(3)转化失败的问题
需要对转化程序的异常进行详细捕捉,并记录日志,用于后续处理及程序优化;同时给予用户详细的反馈信息,说明情况,并做到不影响后续的请求处理。
参考:
感谢同事提供解决方案及实践,欢迎交流。