刚接个需求,纯后台将各种主流格式文件转化为pdf;
各种百度,google得到如下结果:
1 JCOM转化:
主流做法为两种:1调用一个开源框架JOM(小X本写的),实现原理为调用pdf的虚拟打印机。
代码部分实现:
public static void convert2PDFNotUse(String officeFilePath, String pdfFilePath) {
try {
ReleaseManager rm = null;
IDispatch app = null;
try {
rm = new ReleaseManager();
app = new IDispatch(rm, "PDFMakerAPI.PDFMakerApp");
app.method("CreatePDF", new Object[] { officeFilePath, pdfFilePath });
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
app = null;
rm.release();
rm = null;
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
所需jar包为:JCom-2.2.0-1.jar,将其解压将其jom.jar放项目中。同时需要将jcom.dll控件放入到各种bin中,(tomcat的bin/system32下/jdk/jre中)。不放会报异常Exception in thread "main" java.lang.UnsatisfiedLinkError: no jcom in java.library.path
同时需要安装Adobe Acrobat Professional 我用的8.2,完成。(不安装创建实例时会报异常:XXXresult...)
试验结果:
对word支持较好,但对excel支持不好。
2 Jcob
3 openoffice
(未完待续)