`
youanyyou
  • 浏览: 197043 次
  • 性别: 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

    在Java编程环境中,将Word文档转换为PDF是一项常见的任务,特别是在文档处理和自动化流程中。Aspose.Words是一个强大的第三方库,它提供了丰富的API来处理各种文档格式,包括Word(.doc, .docx)和PDF。本篇文章将...

    java+pdf转word+word转pdf 无水印 无页数限制

    综上所述,实现"java+pdf转word+word转pdf 无水印 无页数限制"这一功能,需要对Java编程、PDF处理、Word文档结构有深入理解,以及熟练运用相关库。同时,需要在代码设计上考虑扩展性、可维护性和性能。

    JAVA实现Linux中word转换pdf

    在Java编程环境中,我们可以利用各种库来实现在Linux系统中将Word文档转换为PDF。这个过程通常涉及到对文件格式的理解,以及对操作系统调用的掌握。以下是一个详细的知识点介绍: 1. **Java与Linux交互**: Java...

    java+poi+word转pdf的简单demo,执行转换main方法不会抛异常

    在Java开发中,有时我们需要将Word文档转换为PDF格式,以满足不同的应用场景需求。Apache POI是一个流行的Java库,用于处理Microsoft Office格式的文件,包括Word(.doc/.docx)。在本示例中,我们将深入探讨如何...

    java将word转图片转pdf_jacob.zip

    总的来说,这个项目涵盖了Java编程、COM组件交互、文档处理、图像转换和PDF生成等多个技术领域,对于提升Java开发者的综合技能非常有帮助。在实际应用中,这样的转换功能可以用于自动化办公流程、数据迁移、文档安全...

    java实现office、wps转pdf,pdf转word

    标题“java实现office、wps转pdf,pdf转word”指的是利用Java编程来实现在不同办公文档格式间的转换,特别是从Microsoft Office和WPS格式转换为PDF,以及从PDF反向转换为Word文档。 首先,让我们讨论从Office和WPS...

    利用poi+itextpdf进行word转pdf.rar

    在这个场景中,我们看到一个关于如何使用Java编程语言实现此功能的资源包:“利用poi+itextpdf进行word转pdf.rar”。这个压缩包包含源码、依赖库以及转换效果的示例,表明它提供了一种无需额外插件的解决方案。下面...

    纯Java实现的WORD转PDF,免费

    本篇文章将深入探讨如何使用纯Java实现Word转PDF的免费解决方案。 首先,我们关注的是“纯Java实现”。这意味着所有的转换过程都在Java环境中进行,无需依赖外部的桌面应用程序或者特定的操作系统组件。这样的实现...

    java调用wps,实现word转pdf,word转图片等

    总的来说,Java调用WPS实现Word到PDF和Word到图片的转换涉及技术包括:Java编程、API接口调用、文件格式转换、图像处理等。这需要对Java和WPS API有深入理解,同时熟悉文档处理和格式转换的相关知识。通过合理利用...

    java代码实现word转换为pdf

    综上所述,"java代码实现word转换为pdf"涉及到的主要知识点包括Java编程、Apache POI的使用、PDF生成库(如iText或PDFBox)的掌握,以及文件转换的逻辑实现。这个项目可以帮助开发者理解如何在Java环境中实现文档...

    java word转pdf

    本话题主要关注如何利用OpenOffice组件在Java程序中实现Word文档(.doc或.docx)到PDF的转换。OpenOffice是一个开源的办公套件,它提供了API接口,使得开发者可以进行各种文档处理操作,包括格式转换。 首先,我们...

    Jacob实现word转PDF之格式最美转化

    Jacob库在Java编程环境中是一个非常实用的工具,它允许开发者通过COM接口与Microsoft Office应用程序进行交互,例如Word、Excel和PowerPoint。在这个场景中,我们使用Jacob来实现Word文档到PDF的转换,以保持格式的...

    java word转pdf 源码 jacob

    Java Word转PDF是一种常见的文档格式转换需求,在许多业务场景中都有应用,比如报告生成、文档共享等。在Java中,可以使用第三方库如Apache POI处理Word文档,但要将Word转换为PDF,通常需要借助像JACOB这样的库。...

    java将WORD转图片,转PDF来回转.zip

    在Java编程环境中,将Word文档转换为图片或PDF,以及进行图片与PDF之间的相互转换,是一种常见的需求。这种转换在处理大量文档时尤其有用,例如自动化报告生成、文档预览或者格式互换。本资源提供的"java将WORD转...

    java OpenOffice wordExcel转换PDF

    总结起来,"java OpenOffice wordExcel转换PDF"涉及的关键知识点包括Java编程、OpenOffice UNO接口、JODConverter库的使用、OpenOffice/LibreOffice的安装与配置,以及文档转换中的问题排查和性能优化。通过理解和...

    Java Word转Pdf需要依赖

    在Java编程环境中,将Word文档转换为PDF是一项常见的任务,特别是在文档处理和报告生成的场景中。这个过程通常需要依赖一些第三方库来实现,因为Java标准库并不直接支持这种转换。以下是一个详细的介绍如何在Java中...

    Word转pdf java实现

    本文将详细讲解如何使用Java编程语言来实现这个功能,主要涉及两个库:XDocReport和Docx4j。 首先,让我们了解XDocReport库。XDocReport是由OpenXML4J和FreeMarker支持的Java库,它允许我们使用模板引擎将Word文档...

    Java实现word转PDF文件

    在IT行业中,转换文件格式是一项常见的...总结来说,使用Java和Jacob库实现Word转PDF是一项实用的技术,但需要注意平台限制和可能存在的格式转换问题。在实际开发中,根据项目需求和环境选择合适的转换方案至关重要。

Global site tag (gtag.js) - Google Analytics