整体思路参考http://www.iteye.com/topic/588050
上面的这篇文章使用jacob将word转换成HTML的,利用的是Word的另存为功能,在Office 2007 SP2之后,Office就可以另存为PDF了,可以使用这个方法将office另存为PDF文档。
具体代码可以参考上文里面的,另存为哪种类型是由new variant()里面的参数决定的。
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(WORD_HTML) }, new int[1]);
new Variant(),这里面的根据传入的参数不同,可以另存为不同的类型,但是在网上搜索了一个并没有找到有关这个参数类型的一个说明,自己尝试了一下,结果如下:
0
|
Doc
|
1
|
Dot
|
2-5
|
Txt
|
6
|
Rtf
|
7
|
Txt
|
8、10
|
htm
|
11
|
Xml
|
12、16
|
Docx
|
13
|
Docm
|
14
|
Dotx
|
15
|
Dotm
|
17
|
Pdf
|
我使用的是office 2010,不同版本的对应的应该不一样,我是写了这一小段程序来测试另存为的类型的。
public class JacobTest {
public static void wordToPDF(String docfile, String toFile,int type) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try {
app.setProperty("Visible", new Variant(false));
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(
docs,
"Open",
Dispatch.Method,
new Object[] { docfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
//new Variant(type),这里面的type的决定另存为什么类型的文件
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
toFile, new Variant(type) }, new int[1]);
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
}
}
public static void main(String[] args) {
//源文件全路径
String docfile ="D:\\服务实施描述报告(企业门户).docx";
for (int i = 0; i < 18; i++) {
//些路径test为实际存在的目录,s后面为要另存为的文件名
String toFile="d:\\test\\s"+i;
wordToPDF(docfile, toFile,i);
}
}
}
分享到:
相关推荐
在这个场景中,我们将讨论如何利用JACOB将Word文档转换为PDF。 首先,我们需要理解JACOB的工作原理。JACOB是通过Java的JNI(Java Native Interface)来调用COM接口的,这样就可以在Java代码中直接操纵COM对象,例如...
5. **转换为PDF**:利用Word对象的`Execute`方法,执行打印或导出操作,将Word文档转换成PDF。这个过程通常涉及模拟打印到虚拟PDF打印机,如Adobe Acrobat Distiller或者Microsoft的内置PDF打印机。 6. **保存并...
jacob将word转成PDF,下载后可直接运行,功能达到了,但是性能不是很理想.
### Java使用JACOB将Word转为PDF:详解与实践 #### 一、配置环境与原理简介 在Java中利用JACOB库实现Word文档转PDF功能时,首先需要完成必要的环境配置工作。 ##### 1. JACOB库介绍 JACOB(Java COM Bridge)是一...
标题提到的"Jacob Word excel 转PDF 合并PDF文件"是指使用Jacob库来将Microsoft Word和Excel文档转换为PDF格式,并进一步合并多个PDF文件。Jacob(Java Advanced COM Bridge)是一个Java库,它允许Java应用程序与...
以下是一个简单的示例,展示如何使用JACOB将一个Word文档转换为PDF: ```java import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class ...
以下是对利用Jacob实现Word转PDF的详细说明: 1. **Jacob库介绍**: Jacob是一个Java到COM桥接器,它使得Java开发者能够使用COM组件,如Microsoft Office的Word应用,来执行特定的任务。Jacob通过JNI(Java Native...
资源中包括工具类、jacob.jar和jacob-1.18-x64.dll(64位)、jacob-1.18-x86.dll(32位) 在使用jacob时,我们需要将jacob-1.18-x64.dll或jacob-1.18-x86.dll放到jdk的bin目录下或者jdk/jre的bin目录下才可以使用。
本教程将详细介绍如何使用Java结合Jacob库将Microsoft Word文档转换为PDF格式,确保转换后的文件保持原格式的完美性。Jacob是一个Java到COM桥接库,允许Java应用程序访问COM组件,如Microsoft Office。 首先,我们...
在Java中,Word转PDF的实现方式通常有两种:一种是利用Jacob将Word文档渲染成图片序列,然后将这些图片合并成PDF;另一种是通过使用支持PDF生成的库,如iText或Apache POI,直接解析Word文档内容并重新构建为PDF格式...
jacob将word、excel转为pdf
错误可能出现在生成Word文档、使用Jacob操作Word,或者转换为PDF的任一阶段。可能的原因包括但不限于: 1. FreeMarker模板语法错误:模板中的表达式或控制结构可能有误。 2. 数据绑定问题:Java代码未能正确地将...
标题“word转成pdf”和描述“java把word文档转成pdf文档java把word文档转成pdf文档”明确指出了我们要讨论的核心技术:使用Java编程语言将Microsoft Word文档转换为PDF格式。下面将详细介绍这个过程涉及的技术、工具...
"使用jacob转pdf资料"这个主题涉及到一个名为jacob的Java库,它允许开发者通过Java代码来调用Microsoft Office或WPS组件,实现各种文档格式之间的转换。 首先,jacob(Java COM Bridge)是一个开源的Java库,它的...
在Java中,可以使用第三方库如Apache POI处理Word文档,但要将Word转换为PDF,通常需要借助像JACOB这样的库。JACOB(Java COM Bridge)是一个Java到COM桥接器,它允许Java程序调用COM组件,从而能够利用Microsoft ...
"java将Word转换成PDF插件"的标题暗示了我们讨论的是一个用于Java的解决方案,它可以将Microsoft Word文档转换成PDF。 在这个场景中,描述中提到的“JACOB”是一个关键角色。全称为“JavaCOM Bridge”,它是一个...
"jacob_word转pdf类_" 指的是一种使用Jacob库来实现Java程序中Word到PDF转换的方法。Jacob(Java COM Bridge)是一个Java库,它允许Java应用程序调用COM组件,如Microsoft Office,以执行各种任务,包括文件格式的...
标题“java实现office、wps转pdf,pdf转word”指的是利用Java编程来实现在不同办公文档格式间的转换,特别是从Microsoft Office和WPS格式转换为PDF,以及从PDF反向转换为Word文档。 首先,让我们讨论从Office和WPS...
在“如何使用jacob将word转换为PDF.doc”这个示例中,我们将学习如何使用Jacob将Word文档转换成PDF格式。以下是基本步骤: 1. **设置Jacob环境**:首先,你需要在项目中添加Jacob的jar文件,并确保系统路径中包含...
使用JACOB进行Word转PDF的流程大致如下: - 加载COM组件:在Java代码中,你需要创建一个`com.jacob.com.ComThread`对象并初始化,这会加载COM线程。 - 获取Word实例:通过`com.jacob.activeX.ActiveXComponent`类...