【php精品源码栏目提醒】:网学会员为需要php精品源码的朋友们搜集整理了【精品】如何使用jacob将word转换为PDF 收藏 - 其它资料相关资料,希望对各位网友有所帮助!
如何使用 jacob 将 word 转换为 PDF 收藏一、代码实现功能介绍:word 文档转换为 PDF 文件的功能。
二、使用的环境条件:正是由于 jacob 的 jni 这种特性,所以运行 jacob 的机器上必须要有 jacob.dll 在系统的 path中,而且还要有相应的被调用的 com 组件存在。
下面列表说明了本项目使用的软件环境和一些注意事项: 1.Word2003、 Adobe Acrobat 8.0 Professional注: 也可以使用 7.5 以上版本,我在做的时候,7.0 版本有一些 BUG,后又重新安装了 8.0 版本,安装地址及破解地址分别为:http://down1.greendown.cn//200611/AcroPro80_efg.rarhttp://soft.greendown.cn//200611/AcroPro80_Crack.rar; 2.并且关闭了 Adobe PDF 打印机属性-gtAdobe PDF Setting 中的“do not send fonts to PDF”选项(注:此属性在 Adobe Reader 中的文件-gt打印的属性中进行设置。
如果使用 7.5 以下版本可能会不好用,无法进行设置) ; 3.安装了 gs811w32.rarPDF 转换时所需要的脚本 ps,地址为:http://www.allmail.com.cn/gs811w32.rar 4.安装了 postscript.rarPDF 虚拟打印机的驱动,地址为:http://www.pdfhome.com.cn/Resource/DownLoad/postscript.rar虚拟打印机安装完成之后,控制面板》打印机及其他硬件》打印机和传真》添加打印机(如果添加时显示“操作无法完成。
打印后台程序服务没有运行。
”请打开控制面板》性能和维护》管理工具》服务》找到“Print Spooler” 》右击属性》启动) 》选择本地打印机(如果没有打印机请将“检测并安装即插打印机”的钩去掉) 》下一步》选择“使用以下端口” (My 》Document/.pdf Adobe PDF Port) 下一步, 记住打印机的名字: 》 Adobe PDF) 下一步 (打印机请选择:不测试) 5.下载得到了 jacob.jar。
地址为:http://sourceforge.net/project/showfiles.phpgroup_id109543amppackage_id118368将解压后的源代码包中 jacob.dll 存放到 system32 目录下。
(注:目前比较稳定的版本分别为1.7、1.8、1.9,我用的是 1.8 版本)注意:第 1、2 个条件是必须的。
不然会可能出现下面的错误:三、原理:doc -gt ps -gtpdf gtgtgtgt office 2003 -gtgs811w32-gtAdobe Acrobat 8-gtpostscript-gt打印机四、源代码:package com.bjinfotech.practice.jacobimport com.jacob.com.import com.jacob.activeX.public class Dispatch_MSWord private ActiveXComponent wordComnull private Object wordDocnull private final Variant Falsenew Variantfalse private final Variant Truenew Varianttrue / 打开 word 文档 param filePath word 文档 return 返回 word 文档对象 / public boolean openWordString filePath //建立 ActiveX 部件 wordComnew ActiveXComponentquotWord.Applicationquot try //返回 wrdCom.Documents 的 Dispatch ObjectwrdDocswordCom.getPropertyquotDocumentsquot.toDispatch //调用 wrdCom.Documents.Open 方法打开指定的 word 文档,返回 wordDoc wordDocDispatch.invokewrdDocsquotOpenquotDispatch.MethodnewObjectfilePathnew int1.toDispatch return true catchException ex ex.printStackTrace return false / 关闭 word 文档 / public void closeWord //关闭 word 文件 if wordComnull int save 0 Variant doNotSaveChanges new Variantsave wordCom.invokequotQuitquotnew VariantdoNotSaveChanges wordComnull ComThread.Release / 将 word 文档打印为 PS 文件后,使用 Distiller 将 PS 文件转换为 PDF 文件 param sourceFilePath 源文件路径 param destinPSFilePath 首先生成的 PS 文件路径 param destinPDFFilePath 生成 PDF 文件路径 / public void docToPDFString sourceFilePathString destinPSFilePathStringdestinPDFFilePath if openWordsourceFilePath closeWord return //建立