准备工作:
1. 安装 "Adobe Acrobat 7.0 Professional" 并升级到"7.0.5"
2.安装"gs811w32.rar" (默认安装就可以了,它是一个PDF转换时所需要的脚本)
3.安装"postscript.rar" (默认安装就可以,它其实是个PDF虚拟打印机的驱动)
4.虚拟打印机配置,参考http://www.matrix.org.cn/thread.shtml;jsessionid=B1E4B57897D51B59802D353CB6B32ACC?topicId=29594&forumId=17
一点需要稍微留意:wordCom.setProperty("ActivePrinter", new Variant("MS Publisher Color Printer"));
这行代码中的"MS Publisher Color Printer"对应安装的虚拟打印机名称,请用以下代码测试。
/**
*
* @version 1.00, 2007-4-9
*
*/
public class D2P {
private ActiveXComponent wordCom = null;
private Object wordDoc = null;
private final Variant False = new Variant(false);
private final Variant True = new Variant(true);
/**
* 打开word文档
*
* @param filePath
* word文档
* @return 返回word文档对象
*/
public boolean openWord(String filePath) {
//建立ActiveX部件
wordCom = new ActiveXComponent("Word.Application");
try {
//返回wrdCom.Documents的Dispatch
Dispatch wrdDocs = wordCom.getProperty("Documents").toDispatch();
//调用wrdCom.Documents.Open方法打开指定的word文档,返回wordDoc
wordDoc = Dispatch.invoke(wrdDocs, "Open", Dispatch.Method,
new Object[] { filePath }, new int[1]).toDispatch();
return true;
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
/**
* 关闭word文档
*/
public void closeWord() {
//关闭word文件
wordCom.invoke("Quit", new Variant[] {});
}
/**
* * 将word文档打印为PS文件后,使用Distiller将PS文件转换为PDF文件 *
*
* @param sourceFilePath
* 源文件路径 *
* @param destinPSFilePath
* 首先生成的PS文件路径 *
* @param destinPDFFilePath
* 生成PDF文件路径
*/
public void docToPDF(String sourceFilePath, String destinPSFilePath,
String destinPDFFilePath) {
if (!openWord(sourceFilePath)) {
closeWord();
return;
}
//建立Adobe Distiller的com对象
ActiveXComponent distiller = new ActiveXComponent(
"PDFDistiller.PDFDistiller.1");
try {
//设置当前使用的打印机,我的Adobe Distiller打印机名字为"Adobe PDF"
wordCom.setProperty("ActivePrinter", new Variant("MS Publisher Color Printer"));
//设置printout的参数,将word文档打印为postscript文档。目前只使用了前5个参数,如果要使用更多的话可以参考MSDN的office开发相关api
//是否在后台运行
Variant Background = False;
//是否追加打印
Variant Append = False;
//打印所有文档
int wdPrintAllDocument = 0;
Variant Range = new Variant(wdPrintAllDocument);
//输出的postscript文件的路径
Variant OutputFileName = new Variant(destinPSFilePath);
Dispatch.callN((Dispatch) wordDoc, "PrintOut", new Variant[] {
Background, Append, Range, OutputFileName });
System.out.println("由word文档打印为ps文档成功!");
//调用Distiller对象的FileToPDF方法所用的参数,详细内容参考Distiller Api手册
//作为输入的ps文档路径
Variant inputPostScriptFilePath = new Variant(destinPSFilePath);
//作为输出的pdf文档的路径
Variant outputPDFFilePath = new Variant(destinPDFFilePath);
//定义FileToPDF方法要使用adobe pdf设置文件的路径,在这里没有赋值表示并不使用pdf配置文件
Variant PDFOption = new Variant("");
//调用FileToPDF方法将ps文档转换为pdf文档
Dispatch.callN(distiller, "FileToPDF", new Variant[] {
inputPostScriptFilePath, outputPDFFilePath, PDFOption });
System.out.println("由ps文档转换为pdf文档成功!");
} catch (Exception ex) {
ex.printStackTrace();
} finally {
closeWord();
wordCom=null;
//释放在程序线程中引用的其它com,比如Adobe PDFDistiller
ComThread.Release();
}
}
public static void main(String[] argv) {
D2P d2p = new D2P();
d2p.docToPDF("d:/12.doc", "d:/1p.ps", "d:/1p.pdf");
}
}
分享到:
相关推荐
word 转PDF的几种方式 1、NPOI读取Word,只支持后缀名为.docx的,用iTextSharp生成pdf文件,存在读取word的段落,表格及先后顺序,导致生成的也不一致。 2、通过读取字节判断。 3、通过Aspose.Words来操作,在项目...
在这个场景中,我们看到一个关于如何使用Java编程语言实现此功能的资源包:“利用poi+itextpdf进行word转pdf.rar”。这个压缩包包含源码、依赖库以及转换效果的示例,表明它提供了一种无需额外插件的解决方案。下面...
"java+pdf转word+word转pdf 无水印 无页数限制"这一标题揭示了我们讨论的是一个能够进行这两种转换,并且在转换过程中不添加水印,且不受页面数量限制的解决方案。以下是对这个主题的详细知识点解释: 1. **PDF转...
本文提供了一种详细的方法,确保在Word转PDF的过程中保留导航页或书签。 Word转PDF带有导航页或书签的教程主要分为两个部分:WPS版本和Office版本。无论你使用哪种版本的软件,关键在于确保Word文档中的大纲级别已...
"Word转PDF"这个主题涉及到了文件兼容性、格式保留以及跨平台查看的问题。下面将详细讲解如何在不同的操作系统环境下,将Word文档转换为PDF格式。 1. **Word与PDF的差异** - **Word**:Microsoft Word是一款文字...
标题提到的是"word转pdf所需的jar包",这通常指的是Java库,这些库可以集成到Java项目中,帮助开发者处理文件格式的转换。下面将详细讲解如何使用Java进行Word到PDF的转换以及涉及到的关键知识点。 首先,要实现这...
这个压缩包“word转PDF然后实现在线预览的功能.rar”提供了一个技术解决方案,下面我们将深入探讨其中涉及的关键知识点。 1. **Word转PDF**: - **转换工具**:通常,我们可以使用各种库或服务来实现这个转换,...
在“LibreOffice——word转pdf.zip”这个压缩包中,重点是利用LibreOffice的Writer组件将Word文档转换为PDF格式。 首先,我们来详细了解一下为什么需要将Word转换为PDF。Word文档通常用于编辑和协作,但其格式在...
在Java编程环境中,我们可以利用各种库来实现在Linux系统中将Word文档转换为PDF。...以上就是Java在Linux环境中实现Word转PDF所需的关键知识点。通过理解这些概念和工具,你可以编写出自己的转换程序,满足特定需求。
2. **iText库用于Word转PDF**: iText是一个开源的Java库,专门用于处理PDF文档。在这里,它被用来将Word文档转换为PDF。iText提供了丰富的API,可以读取Word文档(通常是.doc或.docx格式),并将其内容复制到新的...
"word转pdf pdf虚拟打印机"这一主题就是围绕如何利用PDF虚拟打印机技术将Word文档转换为PDF格式来展开的。 首先,我们要理解什么是PDF虚拟打印机。PDF虚拟打印机其实是一种软件应用,它模拟了打印机的功能,但打印...
"word转pdf需要的jar包依赖"指的是在Java项目中,我们需要引入特定的jar包来支持Word到PDF的转换。这里提到的`aspose-words-15.8.0-jdk16.jar`就是这样一个库,它是Aspose.Words for Java的一个版本,专门用于处理...
标题提到的".net WORD转PDF"是指使用.NET技术将Word文档转换为PDF文档的过程。这个过程在实际开发中具有广泛的用途,例如报告生成、合同制作、电子书籍发布等场景,因为PDF格式通常能更好地保留原始文档的格式和布局...
"Word转PDF"是一个典型的例子,它涉及到Microsoft Office套件中的Word文档与Adobe PDF格式之间的互换。下面将详细介绍如何通过第三方控件实现这一转换,并探讨相关的技术细节。 首先,Word文档(.doc或.docx)是一...
总结起来,实现Java中的Word转PDF涉及到多个库的协同工作。Apache POI提供对Word文档的读取,Docx4j负责转换为PDF,而iText或PDFBox则用于格式优化。这种转换方法虽然涉及的组件较多,但能确保转换的准确性和灵活性...
标题提到的“word 转pdf 可以跨平台同时也实现中文显示”揭示了一个重要的知识点,即如何将Microsoft Word文档转换为PDF格式,同时确保在任何平台上都能正确显示中文内容。下面将详细探讨这个过程以及相关的技术背景...
使用Libreoffice 完美实现在线word转pdf.支持word和linux两个系统
"Word转PDF工具"就是专为此目的设计的应用程序,它允许用户方便快捷地将Microsoft Word文档(.doc或.docx)转换成PDF文件。这种转换在很多场景下都是必要的,例如为了保持文档格式的一致性、防止编辑或者方便在线...
这个压缩包“word转pdf.zip”包含了实现此功能所需的jar文件和转换方法。通常,这些库如Apache POI(用于处理Word文件)和iText(用于生成PDF)会提供API,帮助开发者进行文档格式间的转换。 Apache POI是Java中...
下面我们将详细讲解如何进行“word转pdf并加水印”的过程。 1. **Word转PDF**: - **Microsoft Word内转换**:新版的Microsoft Office(如Office 2013及以后版本)提供了直接保存为PDF的功能。只需打开Word文档,...