`
youanyyou
  • 浏览: 191875 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java编程把Word转Pdf

阅读更多

我的word转pdf用到了一个虚拟的打印机,安装一个Adobe Acrobat 7.0 Professional就可以了

2。配置虚拟打印机,开始--打印机和传真--添加打印机---一步一步的配置就行了。

3。点击配置的打印机右键首选项----设置----把不要发送字体到打印机取消勾选

4。下载Jacob.jar包。把jacob.jar所对应的Jacob.dll放在windows/sys32下或者jre/bin下

5。代码部分

代码

package demo;

import java.io.File;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
/*
 * 注意word转pdf要安装虚拟打印机,且要配置
 * 使用jacob框架,把dll文件放到jre/bin目录下
 */
public class WordToPdf {
    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(boolean saveOnExit) {

        if (wordCom!=null) {

            //关闭word文件

            //Dispatch.call(wordDoc, "Close", new Variant(saveOnExit));

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

            //wordCom.invoke("Quit",new Variant[0]);

            wordCom=null;

            //释放在程序线程中引用的其它com,比如Adobe PDFDistiller

            ComThread.Release();

        }

    }

    /**

      * 将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(true);

            return;

        }

        //建立Adobe Distiller的com对象

        ActiveXComponent distiller = new ActiveXComponent("PDFDistiller.PDFDistiller.1");

        try {

            //设置当前使用的打印机,我的Adobe Distiller打印机名字为 "Adobe PDF"

            wordCom.setProperty("ActivePrinter", new Variant("Adobe PDF"));

            //设置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(true);

        }

    }

    public static void main(String[] argv) {

            WordToPdf d2p = new WordToPdf();
            d2p.docToPDF("D:\\test.doc", "D:\\test.ps", "D:\\test.pdf");
            boolean   success   =   (new   File("D:\\test.ps")).delete();
            if(success){
                System.out.println("删除打印机文件成功");
            }
    } 
}

 

深圳人才网 深圳招聘网 深圳人才招聘网 深圳人才大市场 

企业、个人免费注册,获取想要的 深圳 软件工程师招聘信息 月薪最低3000-8000,更有高端猎头职位! 

www.szrcwz.com                                                                                                                                           

                  Google 提供的广告

0
2
分享到:
评论

相关推荐

    java word转pdf

    调用OPEN office组件实现java程序的word转pdf

    java word转pdf可单个可批量

    java编程 word转pdf wordToPdf.java jacob1.9包 包括jacob.jar jacob.dll 要注意jacob.jar jacob.dll要用同一版本的,否则会出错 内含jacob包的导入方式的txt文档

    java 的 word 转pdf的小demo

    简单的java方式实现 word 转为pdf的操作,互相学习,彼此沟通。仅仅是一个小的demo,有需要的可以自行获取。。

    VB程序Word转换成PDF

    VBA程序将Word转成PDF,可以做出WSF供Java和C程序调用。此程序调通过,实际项目上用到过,仅供参考。

    实现Word转PDF(基于SWT)

    网络上有很多种Word转PDF的方式(openoffice,jacob,POI),但都不是很完美,要不依赖三防包还要下载dll文件,要不转换不完美,还不支持中文,我的转换方式使用eclipse自带的swt包即可,程序引用swt的jar后直接运行

    巧用Java程序把Word转换成Html文件

    Jacob是Java和Windows下的Com桥,通过它我们可以在Java程序中调用COM组件。如果你的JDK是1.4,那你需要下载Jacob1.9的jni库才能正常运行,早期版本在JDK1.4下有些问题。

    word转pdf实用版

    Aspose.Words17.6汉化破解版出来...Aspose.Words Product Family使用我们.NET, Java 以及Android平台API,可以帮助开发出创建,编辑,转换以及打印Word文档格式的高性能应用程序。好了,具体的破解说明下面都有介绍的。

    java实现WORD转成PDF

    3、在D盘的doc文件下,测试的一个abc.doc 文件,运行程序后,在该目录下回生成一个PDF 4、附上我写的DEMO,第三方包: JODConverter v2.2.1 我实现的是读取access数据库中对应WORD文件名然后到指定文件夹查找并...

    java 中 word 转 pdf 示例

    java 中 word 转 pdf 示例

    java 实现word,txt,excel,ppt转换pdf

    java 实现word,txt,excel,ppt转换pdf 1.在服务控制台,启动 openoffice 服务 安装OpenOffice成功后,您可以进入安装目录>/program/目录并运行以下命令启动OpenOffice服务: soffice -headless -accept="socket,...

    java将Word转换成PDF插件

    JACOB 一个 Java-COM 中间件。通过这个组件你可以在 Java 应用程序中调用 COM 组件和 Win32 程序库。

    java读取word,pdf格式文档方法

    整理了用java如何读取word文档,pdf文档的几种方法,含有程序

    word转pdf最好用的java代码实例,支持水印设置。

    word文档转pdf最好用的java代码实例,包含示例程序和用到的jar资源包,导入项目直接可用,docx转pdf效果很好,支持水印设置,需要jdk1.7以上运行。

    java aspose-words word转pdf

    aspose-words-23.6 处理java程序word转pdf,没有使用时长及次数限制,文件大小不限制,可以用于word文件的编辑处理和转存等用途。 。内含demo例子,直接就能运行demo案例得到转换结果。警告:这个仅供学习研究使用,...

    java Word 转 PDF格式(csdn)————程序.pdf

    java Word 转 PDF格式(csdn)————程序

    aspose.pdf for java 你懂的,PDF转Excel

    aspose.pdf for java 你懂的,PDF转Excel,附样例程序。在java程序中将可以pdf转为word,excle,txt等,另外还有很多API接口。

    Java抽取Word及PDF编程

    本文讲解了如何利用Java语言来实现Word以及PDF的读取操作,内含原理性知识,还有源码实现。希望会对你有所帮助。

    (完整word版)Java程序设计B卷.pdf

    (完整word版)Java程序设计B卷.pdf(完整word版)Java程序设计B卷.pdf(完整word版)Java程序设计B卷.pdf(完整word版)Java程序设计B卷.pdf(完整word版)Java程序设计B卷.pdf(完整word版)Java程序设计B卷.pdf(完整word版)...

    java web word文件 pdf文件在线预览源码

    java web word文件 pdf文件在线预览源码

    JavaPDF操作类库API_Free Spire.PDF for Java_5.1.0

    1.1 文档转换:PDF转图片/Word/SVG/XPS/HTML/XPS/TIFF、图片转PDF 1.2 文档操作:文档创建、合并、拆分、压缩、复制;页面背景、页边距、纸张大小及方向、页面旋转、合并、缩放;表单域;页眉页脚;水印;文本列表...

Global site tag (gtag.js) - Google Analytics