2 u011235913 u011235913 于 2015.06.16 15:24 提问

求大神 帮我看看问题 Java中 调用虚拟打印机 把word转存为PDF
 public class SaveWordAspdf {


    public static void saveWordAspdf(String filePath, String outFile) throws Exception {
            ComThread.InitSTA();
            ActiveXComponent actcom = new ActiveXComponent("Word.Application");
            Dispatch documents = null;
            Dispatch document = null;

            try {           
                actcom.setProperty("Visible", new Variant(false));

                documents = actcom.getProperty("Documents").toDispatch();
                document = Dispatch.invoke(documents,"Open", Dispatch.Method, new Object[] {
                        filePath,  new Variant(false), new Variant(false) 
                 }, new int[1]).toDispatch();

                Dispatch.invoke(document, "SaveAs", Dispatch.Method, new Object[] {
                        outFile,new Variant(false)},new int[1]);

                Dispatch.call(document, "Close", new Object[] { new Variant(false) });
                if (actcom != null) {
                    actcom.invoke("Quit", new Variant[] {});
                    actcom = null;
                }
                ComThread.Release();

            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (actcom != null) {
                    actcom.invoke("Quit", new Variant[] {});
                    actcom = null;
                }
                ComThread.Release();
            }
        }


    public  static void  print(String path)throws Exception {   
            String PRINT_NAME="pdfFactory Pro";//打印机名称
            //初始化COM线程
            ComThread.InitSTA();
            ActiveXComponent doc=new ActiveXComponent("Word.Application");
            try { 

                //设置是否显示打开word  
                Dispatch.put(doc, "Visible", new Variant(true));
                //打开具体的工作簿
                Dispatch documents = doc.getProperty("Documents").toDispatch(); 
                Dispatch word = Dispatch.call(documents,"Open",path).toDispatch(); 

                //设置打印属性并打印
                Dispatch.callN(word,"PrintOut",new Object[]{Variant.VT_MISSING, Variant.VT_MISSING, new Integer(1),
                        new Boolean(false),PRINT_NAME, new Boolean(true),Variant.VT_MISSING, ""});

                //关闭文档
               Dispatch.call(word, "Close", new Variant(false));  
            } catch (Exception e) { 
                e.printStackTrace();
                throw new Exception();
            } finally{
                doc.invoke("Quit",new Variant[0]);
                //始终释放资源 
                ComThread.Release(); 
            } 
        }
    public static  void main(String[] args) {
        try {
            System.out.println(0);
            saveWordAspdf("d:/1234.doc","d:/1234.pdf");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

2个回答

qq_20099317
qq_20099317   2016.11.25 19:11

你好,我试了你的代码,请问你这里用了哪些jar包呢,可否发给我。谢谢

qq_20099317
qq_20099317   2016.11.25 20:08

你好,我使用了你的代码,转换出来了一个pdf文件,但是这个pdf文件是损毁的,打不开啊...请问你是怎么解决的?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
调用虚拟打印机,文件转pdf
文件中包含 itextsharp.dll 操作pdf的组件 Interop.ACAWebThumbLib.dll 把web page保存为image的组件 还有就是调用虚拟打印机Bullzip printer转换pdf的源码
Word转换PDF技巧之通过虚拟打印机生成pdf格式文件
如今转换PDF文件的方法越来越多,最方便的莫过于使用Office 2010版直接转换成PDF文件。但没升级Office 2010的小伙伴们也不用急着去升级,添加PDF虚拟打印机来进行转换PDF文件也是一个方便的使用方法。 PDF虚拟打印机是一款模拟现实打印机功能的软件。通过这款软件,可以快速将doc.、TXT.等格式文件打印输出成PDF格式文件,并且转换质量极佳。至于如何使用该软件,下文自会介绍
Word转pdf文件使用技巧:怎么安装虚拟pdf打印机
小编相信大部分人在没使用过PDF文件之前,都是喜欢Word格式文档的。但用了PDF格式文件后,就会被PDF良好的视图所吸引而喜欢上PDF文件。 那么我们该怎么把Word文档转换成PDF文件呢?小编总结了两个比较实用的方法,希望大家喜欢哟! 一、添加PDF虚拟打印机生成PDF 可能更多小伙伴喜欢直接在Word中转换PDF文件,可以告诉大家的是,如今Word 2010版已经增加了Word另存为功
Word转换pdf技巧:通过pdf虚拟打印机生成pdf
相信大部分人都有Word和PDF之间文件转换需求,就是找不到实用的转换技巧,今天小编就介绍几个转换方法,希望能帮到苦恼的朋友们。 一、Word转PDF方法 1. 在线转换PDF文件 在线转换文件是一种比较直接的方法,无需下载软件,即可将转换问题解决。 使用操作如下: (1)打开浏览器后,输入“在线转换PDF”,选择第一个即可; (2)点击进入后,选择“Word转PDF”功能
Word转换pdf方法:pdf虚拟打印机怎么用攻略详解
相信不管是在工作还是在学习的朋友,都会有Word转PDF的需求,却苦于没有找到适合的方法,今天小编就来介绍三种简单而实用的方法。 一、复制粘贴PDF 复制粘贴文本这个方法虽然土了点,但也是可用的。 (1)在电脑上打开Word文档,双击界面并选择文本,然后右键选择复制; (2)然后在PDF编辑器中打开一个空白文档,点击编辑文本图标,即可在文档中编辑文本,右键粘贴即可。
怎样实现Word2003转PDF?无需插件即可另存为PDF的虚拟打印机法
首先Word2003转PDF是不能像Word2007或Word2010那样另存为PDF的,Word2003转PDF只能通过安装虚拟打印机来实现,好处是用虚拟打印机转换的PDF文件比另存为的更新清晰和准确,当然比起另存为那个方法来说要麻烦不少。下面就为大家介绍一下Word2003如何利用打印机转换PDF,另外推荐几款专业的虚拟打印机软件。 如何使用Word2003的打印机转换PDF
java 调用打印机 打印pdf方案
网上检索到的Java Printing Service方案//1.得到一个文件的输入流 FileInputStream fiStream; try { psStream = new FileInputStream("./sample.PDF"); } catch (FileNotFoundException ffne) { } if (psStream == null) { retu...
纯java虚拟打印机
在项目中引入jpd.jar,示例代码如下: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.print.PageFormat; import java.awt.print.Printable; import java.awt.print.PrinterExce
Word转换成pdf文件之修改pdf虚拟打印机设置
如今Word转换pdf格式的方法已经有很多了,但仍有朋友不清楚是什么方法,今天小编就来介绍三种最实在的转换方法,不喜勿喷哟。 一、复制粘贴PDF 最古老的方法莫过于复制与粘贴,并且复制的文字,排版都不会被破坏。 操作如下: (1)打开一个Word文档,点击右上角的“编辑→全选”,右键选择复制。 (2)打开迅捷pdf编辑器,选择新建空白文本。然后点击工具栏的编辑文本图标,随意点
通过虚拟打印机生成pdf文件来转换EXCEL使用方法
经常能听到在办公室工作的朋友抱怨,说是EXCEL报表转换成PDF文档很麻烦。其实小编不太能理解,到底是转换麻烦呢还是她用错了转换工具呢? 据小编了解,如今转换文件的方法有很多,除了Office 2010版可以转换文件外,添加PDF虚拟打印机也是转换的好方法,并且转换效率很快,转换质量也是很好的。 可能有些朋友对虚拟PDF打印机不熟悉,小编简单介绍一下。 一、什么是PDF虚拟打印机 PDF虚