`
yangpanwww
  • 浏览: 624888 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

word 转 PDF

 
阅读更多

     网上有很多 word 转 PDF 的例子,有些是根据 调用安装的服务来实现的,但是如果要实现跨平台或者在没有安装服务的服务器上面转,就很少有例子了。

 

    我也是经过千辛万苦的调试和在 stackoverflow 网站的才能找到答案, 难解决的问题一般都是老外的网站啊。。没办法。

 

   不多说了,我直接上代码。挺简单的。但是花了我好长时间啊!

   

   引入jar 

		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>3.15</version>
		</dependency>
		<dependency>
			<groupId>fr.opensagres.xdocreport</groupId>
			<artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
			<version>1.0.6</version>
		</dependency>

 

编码:

/**
     *@Description: docx 转 PDF
     *@Author:杨攀
     *@Since: 2016年11月24日下午2:01:58
     *@param docPath
     *@param pdfPath
     */
    public static void convertDocxToPDFByPOI(String docxPath,String pdfPath){
        try {
            InputStream doc = new FileInputStream (new File (docxPath));
            XWPFDocument document = new XWPFDocument (doc);
            PdfOptions options = PdfOptions.create ();
            OutputStream out = new FileOutputStream (new File (pdfPath));
            PdfConverter.getInstance ().convert (document, out, options);
        } catch (Exception ex) {
            ex.printStackTrace ();
        }
    }

 

   以上的确可以转 PDF ,而且在手机中实现转 PDF ,但是效果太差,没办法,只好转变思路, 在服务器上面转PDF ,手机端下载PDF来实现功能。

  

服务端 选择 Jacob 来实现;

   

   步骤:
   1、下载 Jacob 包, 但是maven 只下载 jar , 没有包括想对于的 dll 文件。 所以需要手动去下载
         地址: https://sourceforge.net/projects/jacob-project/files/jacob-project/
         选择自己版本对应的下载,我选择的是 1.14.3 

 

    2、下载的Jacob包中有几个dll, 64位的,86位的,拷贝对应的 dll 到 文件放置到C:\Windows\system32目录下,C为你的操作系统盘符,根据自己的系统版本放置不同的dll文件,名称上有写的,或 将dll文件放到当前JDk和jre的lib目录中

    3、编码

 

    引入 jar

<dependency>
		    <groupId>net.sf.jacob-project</groupId>
		    <artifactId>jacob</artifactId>
		    <version>1.14.3</version>
		</dependency>

 

   

  // PDF格式  值为17
    private static final int wdFormatPDF = 17;


/**
     *@Description: docx 转 PDF
     *@Author:杨攀
     *@Since: 2016年11月24日下午4:14:19
     *@param docxPath
     *@param pdfPath
     *@return
     */
    public static boolean convertDocxToPDFByJacob(String docxPath,String pdfPath){
        
        // 打开word应用程序
        ActiveXComponent app = null;
        try {
            // 打开word应用程序
            app = new ActiveXComponent ("Word.Application");
            // 设置word不可见
            app.setProperty ("Visible", false);
            // 获得word中所有打开的文档,返回Documents对象
            Dispatch docs = app.getProperty ("Documents").toDispatch ();
            // 调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
            Dispatch doc = Dispatch.call (docs, "Open", docxPath, false, true).toDispatch ();
            // 调用Document对象的SaveAs方法,将文档保存为pdf格式, 为pdf的插件 SaveAsPDFandXPS.exe 安装。(否则无法调用SaveAs方法)
            /*- 
            Dispatch.call(doc,"SaveAs",pdfPath,wdFormatPDF  //word保存为pdf格式宏,值为17); 
             */
            // word保存为pdf格式宏,值为17
            Dispatch.call (doc, "ExportAsFixedFormat", pdfPath, wdFormatPDF);
            // 关闭文档
            Dispatch.call (doc, "Close", false);
            
            return true;
        } catch (Exception e) {
            e.printStackTrace ();
            return false;
        }finally{
            if(app != null){
                // 关闭word应用程序
                app.invoke ("Quit", 0);
            }
        }
    }

 

经过测试, 转换的 PDF 格式, 非常满意!!! 嘿嘿

分享到:
评论

相关推荐

    word 转PDF的几种方式

    word 转PDF的几种方式 1、NPOI读取Word,只支持后缀名为.docx的,用iTextSharp生成pdf文件,存在读取word的段落,表格及先后顺序,导致生成的也不一致。 2、通过读取字节判断。 3、通过Aspose.Words来操作,在项目...

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

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

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

    "java+pdf转word+word转pdf 无水印 无页数限制"这一标题揭示了我们讨论的是一个能够进行这两种转换,并且在转换过程中不添加水印,且不受页面数量限制的解决方案。以下是对这个主题的详细知识点解释: 1. **PDF转...

    Word转PDF带有导航页或书签详细教程

    本文提供了一种详细的方法,确保在Word转PDF的过程中保留导航页或书签。 Word转PDF带有导航页或书签的教程主要分为两个部分:WPS版本和Office版本。无论你使用哪种版本的软件,关键在于确保Word文档中的大纲级别已...

    word转pdf,你终于找到有用的了。

    "Word转PDF"这个主题涉及到了文件兼容性、格式保留以及跨平台查看的问题。下面将详细讲解如何在不同的操作系统环境下,将Word文档转换为PDF格式。 1. **Word与PDF的差异** - **Word**:Microsoft Word是一款文字...

    word转pdf所需的jar包

    标题提到的是"word转pdf所需的jar包",这通常指的是Java库,这些库可以集成到Java项目中,帮助开发者处理文件格式的转换。下面将详细讲解如何使用Java进行Word到PDF的转换以及涉及到的关键知识点。 首先,要实现这...

    word转PDF然后实现在线预览的功能.rar

    这个压缩包“word转PDF然后实现在线预览的功能.rar”提供了一个技术解决方案,下面我们将深入探讨其中涉及的关键知识点。 1. **Word转PDF**: - **转换工具**:通常,我们可以使用各种库或服务来实现这个转换,...

    LibreOffice——word转pdf.zip

    在“LibreOffice——word转pdf.zip”这个压缩包中,重点是利用LibreOffice的Writer组件将Word文档转换为PDF格式。 首先,我们来详细了解一下为什么需要将Word转换为PDF。Word文档通常用于编辑和协作,但其格式在...

    JAVA实现Linux中word转换pdf

    在Java编程环境中,我们可以利用各种库来实现在Linux系统中将Word文档转换为PDF。...以上就是Java在Linux环境中实现Word转PDF所需的关键知识点。通过理解这些概念和工具,你可以编写出自己的转换程序,满足特定需求。

    word转pdf、word导出、pdf加水印

    2. **iText库用于Word转PDF**: iText是一个开源的Java库,专门用于处理PDF文档。在这里,它被用来将Word文档转换为PDF。iText提供了丰富的API,可以读取Word文档(通常是.doc或.docx格式),并将其内容复制到新的...

    word转pdf pdf虚拟打印机

    "word转pdf pdf虚拟打印机"这一主题就是围绕如何利用PDF虚拟打印机技术将Word文档转换为PDF格式来展开的。 首先,我们要理解什么是PDF虚拟打印机。PDF虚拟打印机其实是一种软件应用,它模拟了打印机的功能,但打印...

    word转pdf需要的jar包依赖

    "word转pdf需要的jar包依赖"指的是在Java项目中,我们需要引入特定的jar包来支持Word到PDF的转换。这里提到的`aspose-words-15.8.0-jdk16.jar`就是这样一个库,它是Aspose.Words for Java的一个版本,专门用于处理...

    .net WORD转PDF

    标题提到的".net WORD转PDF"是指使用.NET技术将Word文档转换为PDF文档的过程。这个过程在实际开发中具有广泛的用途,例如报告生成、合同制作、电子书籍发布等场景,因为PDF格式通常能更好地保留原始文档的格式和布局...

    word转pdf office文档转pdf

    "Word转PDF"是一个典型的例子,它涉及到Microsoft Office套件中的Word文档与Adobe PDF格式之间的互换。下面将详细介绍如何通过第三方控件实现这一转换,并探讨相关的技术细节。 首先,Word文档(.doc或.docx)是一...

    JAVA利用poi完成word转pdf,内容包括两个现成工具类和使用到的所有jar包

    总结起来,实现Java中的Word转PDF涉及到多个库的协同工作。Apache POI提供对Word文档的读取,Docx4j负责转换为PDF,而iText或PDFBox则用于格式优化。这种转换方法虽然涉及的组件较多,但能确保转换的准确性和灵活性...

    word 转pdf 可以跨平台同时也实现中文显示

    标题提到的“word 转pdf 可以跨平台同时也实现中文显示”揭示了一个重要的知识点,即如何将Microsoft Word文档转换为PDF格式,同时确保在任何平台上都能正确显示中文内容。下面将详细探讨这个过程以及相关的技术背景...

    libreoffice实现word转pdf

    使用Libreoffice 完美实现在线word转pdf.支持word和linux两个系统

    word转pdf工具

    "Word转PDF工具"就是专为此目的设计的应用程序,它允许用户方便快捷地将Microsoft Word文档(.doc或.docx)转换成PDF文件。这种转换在很多场景下都是必要的,例如为了保持文档格式的一致性、防止编辑或者方便在线...

    word转pdf.zip

    这个压缩包“word转pdf.zip”包含了实现此功能所需的jar文件和转换方法。通常,这些库如Apache POI(用于处理Word文件)和iText(用于生成PDF)会提供API,帮助开发者进行文档格式间的转换。 Apache POI是Java中...

    word转pdf并加水印

    下面我们将详细讲解如何进行“word转pdf并加水印”的过程。 1. **Word转PDF**: - **Microsoft Word内转换**:新版的Microsoft Office(如Office 2013及以后版本)提供了直接保存为PDF的功能。只需打开Word文档,...

Global site tag (gtag.js) - Google Analytics