网上找了很多方法word转pdf,但是要么是要装一些插件,要么转换出来的效果不好(比如中文乱码),最后还是相中了一jar包,完美的解决了这个问题,不仅速度非常快,而且配置十分简单,可惜是盗版233333
废话不多说,直接上代码;
package com.testword; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import com.aspose.words.Document; import com.aspose.words.License; import com.aspose.words.SaveFormat; /** * * 由于ASPOSE比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)<br> * 如有疑问,请在优快云下载界面留言,或者联系QQ569925980<br> * * @author Spark * */ public class TestWord { private static InputStream license; private static InputStream word; /** * 获取license * * @return */ public static boolean getLicense() { boolean result = false; try { // license = TestWord.class.getClassLoader().getResourceAsStream("classpath:license.xml");// license路径 license = new FileInputStream(new File("F:\\license.xml")); word = new FileInputStream(new File("F:\\周报.doc")); License aposeLic = new License(); aposeLic.setLicense(license); result = true; } catch (Exception e) { e.printStackTrace(); } return result; } /** * * @param args */ public static void main(String[] args) { // 验证License if (!getLicense()) { return; } try { long old = System.currentTimeMillis(); Document doc = new Document(word); File file = new File("D:\\testaaa1.pdf");// 输出路径 FileOutputStream fileOS = new FileOutputStream(file); doc.save(fileOS, SaveFormat.PDF); long now = System.currentTimeMillis(); System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒\n\n" + "文件保存在:" + file.getPath()); } catch (Exception e) { e.printStackTrace(); } } }
只需要导入下面这个jar包以及一份配置文件
百度云盘:http://pan.baidu.com/s/1c2aUPkW
密码:yngd