`
yangpanwww
  • 浏览: 621503 次
  • 性别: 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 格式, 非常满意!!! 嘿嘿

分享到:
评论

相关推荐

    java实现word转pdf

    java实现word转pdf 效果及使用教程可以参考 https://blog.csdn.net/u012775558/article/details/121530527

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

    java 利用利用poi+itextpdf进行word转pdf,里面有源码和依赖还有效果图,无需安装插件,感觉是一种比较好的方法

    word 转PDF的几种方式

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

    最好用的word转pdf工具

    专业版的pdf软件,也就是700多兆大小的那个软件,具有转pdf的功能,但是,本人在使用过程中发现,通过visio画图工具所画的图形和汉字,在插入到word后,然后将word转pdf中,转换时常常不能将文字正常显示。...

    libreoffice实现word转pdf

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

    实现Word转PDF(基于SWT)

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

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

    将word转换成pdf确实有很多种方案!最近正好需要做一个这样的功能,需求是将word模板进行签名后转换为pdf。...这里记录一下最终的方案:利用poi+itextpdf进行word转pdf。此资源按包含源码和maven依赖。

    word转pdf工具

    word转pdf工具word转pdf工具word转pdf工具word转pdf工具word转pdf工具

    aspose实现word转pdf功能(去水印)

    java实现word转pdf功能,并实现去水印,本人测试真实有效。 操作简单,傻瓜式教程!!! 提供mvn安装本地依赖命令。

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

    大家在编辑Word的时候,会设置大纲目录,在看内容时通过导航页即可快速转到相应位置,但是转成pdf格式时,这个导航页就没了,本文旨在介绍Word转PDF带有导航页或书签详细步骤。转成pdf的方法,这里主要介绍两种,...

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

    自己项目中用到的技术,word转PDF然后实现在线预览的功能,代码可以运行 .

    word转pdf所需的jar包

    纯Java代码实现word转pdf,所需要用到的jar包。 https://juejin.cn/post/7087036463035973640/

    Aspose.Words Java实现word转pdf文件(高效不失真)

    Aspose.Words Java实现word转pdf文件(高效不失真)。提供license文件。提供源代码。提供jar。下载即可直接使用。Word2PdfUtil.java、license.xml、Aspose.Words-jdk16.jar

    word转pdf---虚拟打印

    word转pdf word转pdfword转pdfword转pdfword转pdfword转pdf

    word转pdf jar下载

    word转pdf jar下载,word转pdf jar下载,word转pdf jar下载word转pdf jar下载

    云夹免费word转pdf工具转换器 v2.21.zip

    云夹word转pdf工具(pdf转换成word转换器)是一款功能强大好用的word转pdf且pdf转换成word软件工具,df转换成word工具是一款Word文档格式转换成Pdf文档格式工具,是PDF与Word相互转换工具,用户可以很容易的得到转换...

    Word转PDF-java

    java用的Word转PDF工具jar包,

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

    JAVA利用poi完成word转pdf,内容包括两个现成工具类和使用到的所有jar包,易用简单,word转pdf在实际项目中有很多使用,工具类中已经包括了字节流,以及变参的替换

    XML Worker Word转PDF/html工具类

    代码用maven方式引入jar包 无嵌入式处理word文件,工具类包括 1. docx转html处理 ...3. word转pdf处理 Word2Pdf.java (poi itext7) 4. word模板填充 WordUtils.java (poi XWPF) 5. 序列id生成 6. 文件处理通用工具类

Global site tag (gtag.js) - Google Analytics