最近在做微信云打印服务器,云服务器与微信云服务器通信己经OK,现在有一个很核心的功能需要实现,就是服务器端文档的格式转换
目标:将office、txt、图片格式的文档转成PDF
查阅了一些资料,格式转换有4种方法:
1、Linux系统下采用JAVA语言调用Unoconv命令,通过LibreOffice将Office文档转成PDF;
2、Windows下采用C#语言调用.NET库中对应Office的COM组件将Office文档转成PDF;
3、Windows下采用JAVA语言调用OpenOffice将Office文件转成PDF;
4、Windows下采用JAVA语言调用Office的COM组件将Office文档转成PDF。
第1种方法的操作方法:在Linux系统命令行输入如下命令更新与安装Unoconv,LibreOffice为Linux系统自带程序:
sudo apt-get update
sudo apt-get install unoconv
通过格式转换命令
unoconv -f pdf xxx.doc
将xxx.doc转成pdf。
第3种方法经测试之后发现:若word文档页眉格式带表格等复杂格式时,转换之后的PDF页眉与前者不一致,故不采用。
第2种方法、第4种方法己实现,现将第4种方法的实现方式公布如下(第2种方法下一篇再公布):
目标:Windows下采用JAVA语言调用Office的COM组件将Office文档转成PDF
开发环境:win 7 myeclipse
需要组件:JCOM
步骤:首先下载JCOM组件包,包含jcom.dll、jcom.jar两个文件,jcom.dll放至系统盘windows/system32/下或JDK的Bin目录中;
JCom组件包下载地址: http://download.csdn.net/detail/secoler/9395978
然后,下面为格式转换代码
package com.pantum.format;
import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelApplication;
public class JComConvertor {
/**
* JCom调用MS Office转换word为PDF
*
* @param inputFile
* doc文档的绝对路径
* @param pdfFile
*