关于doc转pdf的方法根据本人的查询主要有四种:

1.使用Jacob,但是使用jacob中要依赖Office,部分博文中还会依赖插件,如SaveAsPDFandXPS.exe。但是也发现不需要依赖Office,可以使用wps、pdfcreator,在使用wps的时候还不需要安装插件(注意:wps有linux版,office到现在为止还没有linux版)。

2.OpenOffice,可以结合Jodconverter开源框架和OpenOffice.org办公软件,具有跨平台的优点,转化速度快,但是部分office的格式似乎不支持。

3.Adobe Acrobat + jacob,这个用到什么虚拟打印机,和微软的一起使用效果比较好。(这个我不太懂)

4.Jcom + Adobe Acrobat ,会用到IDispatch。

方法3,4好像都依赖office。

我使用的是jacob,需要jacob.jar来调用activex控件,本机需安装WPS,当然使用pdfcreator的话,就要安装它了。

还需要jacob.jar以及jacob.dll 请看附件

jacob.dll 需要放置在系统system32下,如果系统是c盘:C://windows/system32/下面

我是把jacob.dll放在类似这样的目录下,D:\JDK\jdk1.8.0_05\jre\bin。

public class Wps implements Converter { //接口中只有一个方法,不过添加了同步

public synchronized boolean convert(String word, String pdf) {

boolean boo = wps2pdf(word, pdf);

return boo;

}

public static boolean wps2pdf(String word,String pdf){

File pdfFile = new File(pdf);

ActiveXComponent wps = null;

Dispatch doc = null;

long start = System.currentTimeMillis();

try {

wps = new ActiveXComponent("kwps.application");

wps.setProperty("visible", new Variant(false));

Dispatch docs = wps.getProperty("Documents").toDispatch();

// doc = Dispatch.invoke(docs, "Open", Dispatch.Method,

// new Object[]{word, new Variant(false),new Variant(true)},

// new int[1]).toDispatch();

doc = Dispatch.call(docs, "Open", word, false, true).toDispatch();

if(pdfFile.exists()){

pdfFile.delete();

}

// Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{pdf,new Variant(17)}, new int[1]);

Dispatch.call(doc, "SaveAs", pdf, 17);

long end = System.currentTimeMillis();

System.out.println("耗时:" + (end-start) + "ms.");

} catch (Exception ex) {

ex.printStackTrace();

System.out.println("转化出错:" + ex.getMessage());

return false;

} finally {

Dispatch.call(doc, "Close", false);

System.out.println("关闭WPS");

if (wps != null) {

wps.invoke("Quit", new Variant[]{});

}

}

return true;

}

public static void main(String[] args) {

new Wps().convert("E:/tmp/2016/testItext/typ_doc.doc", "E:/tmp/2016/testItext/typ_doc_wpsBycall.pdf");

}

}

可以参考的资料:

jacob:用call方法,需装office

用invoke方法,需装office,要安装插件

调用WPS或pdfcreator的com接口实现doc转pdf(相对比较好)

关于jacob介绍比较详细(包括类,方法)

jacob中代码及说明:

jcom:

openoffice:

附件中包含jacob-1.18的jar、dll、api_docs

jacob转pdf linux,Java 使用jacob实现doc转pdf(附带其他方法分析)相关推荐

  1. Aspose.PDF for Java系列8-转化HTML为PDF

    Aspose.PDF for Java系列8-转化HTML为PDF 转化HTML为PDF 主要分为以下步骤: 创建一个HtmlLoadOptions类. 实例化Document对象. 调用Docume ...

  2. java 生成 pdf linux,java ppt在线转pdf linux

    java ppt在线转pdf linux [2021-01-31 12:42:59]  简介: php中ppt转pdf的方法:首先配置组件服务,并在后台运行OpenOffice软件:然后配置PHP扩展 ...

  3. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  4. Java实现pdf转tex_使用Free Spire.PDF在Java程序中创建和转换PDF文件

    在这篇文章中,我将举例说明如何创建一个包含标题,段落,图像,编号列表和表格的简单的PDF文件,以及如何使用Free Spire.PDF将PDF转换为其他文件格式. 概述 Free Spire.PDF ...

  5. php读取doc pdf文件,PHP读取创建txt,doc,xls,pdf类型文件

    PHP读取或者创建txt,doc,xls,pdf各个类型文件的方法. php读取(文本.txt)文件: 一般是使用fopen.fgets的方法,例如: $fp=fopen('文件名.txt','r') ...

  6. python win32转pdf 横版竖版_Python实现doc转化pdf

    Python实现doc转化pdf python源码实现doc转化pdf #-*- coding:utf-8 -*- # doc2pdf.py: python script to convert doc ...

  7. java中调用js_java编程中实现调用js方法分析

    本文实例讲述了java编程中实现调用js方法.分享给大家供大家参考,具体如下: /* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEng ...

  8. java中 jacob作用_【JAVA】JACOB使用简介

    它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库.它可运行在x86和支持32位和64位Java虚拟机 X64的环境. 测试源码包: 密码: ej9u JAC ...

  9. java修改文件名_Java实现简单修改文件名的方法分析

    本文实例讲述了Java实现简单修改文件名的方法.分享给大家供大家参考,具体如下: 今天帮朋些个网站,做到商品上传的时候需要给文件重新设置名称,以前也做过类的功能,只是没有保存忘了,为了避免以后再重新找 ...

  10. java 获取凌晨时间戳_Java获取凌晨时间戳的方法分析

    本文实例讲述了Java获取凌晨时间戳的方法.分享给大家供大家参考,具体如下: 这两天有一个需求是查询用户匹配的推荐信息,包含一个有效时间段,以天为单位,0时0分0秒这种. 通常java中有两种方案: ...

最新文章

  1. 【CVPR2020】可微分的NAS方法汇总
  2. 以比特币现金(BCH)为核心的慈善经济体系革新业态
  3. python的input()函数与getpass标准库
  4. 京东方网络推广外包将为三星提供OLED 屏幕可造成韩国显示产业动荡
  5. L3-021 神坛(极角排序求三角形最小面积)
  6. 【干货】马化腾亲身分享:腾讯兵法教你做一款高口碑的产品
  7. java开发 时间类型的转换
  8. 【4】SCN-Feign远程调用
  9. Json学习总结(6)——Fastjson远程代码执行漏洞
  10. database如何管理超过4GB的文件
  11. IDEA---SVN安装及配置
  12. windows - 更改用户账户名称(windows10)
  13. 蓝桥杯嵌入式旧版子驱动问题-keil5下载卡死解决方法
  14. App Store 上架审核指北【翻译】
  15. Oracle中国区管理层变更史
  16. 为知笔记导入html,为知笔记导入印象笔记
  17. 学生用台灯什么光对眼睛好?开学季精选真正适合孩子的护眼台灯
  18. Emmagee—开源Android性能测试工具
  19. 计算机专业测试题选择题,计算机专业测试试习题及答案.docx
  20. 用Photoshop制作2寸照片方法

热门文章

  1. 解析车辆VIN码识别(车架号识别)系统
  2. html caption属性,html元素caption标签的使用方法及作用
  3. 音频开发之——pulseaudio
  4. C语言pow 函数的总结:
  5. 算数平均数与几何平均数
  6. 解决微信缓存网页,导致不能及时更新问题
  7. ESXi主机 TPM 证明警报
  8. 路由器的两个端口接在同一个交换机上_2个路由器怎么连接?
  9. 2021-2025年中国阿莫雷德行业市场供需与战略研究报告
  10. 移动端Retina屏boder 1px显示为2px或3px的解决方法