精华内容
下载资源
问答
  • java实现word转pdf

    2017-04-07 09:18:57
    java实现word转pdf
  • JAVA 实现 Word转PDF

    千次阅读 2019-08-07 17:32:17
    JAVA 实现 Word转PDF需要的包 SaveAsPDFandXPS + jacob代码另外一种方法效果可能不太好包链接 需要的包 SaveAsPDFandXPS + jacob SaveAsPDFandXPS . jacob.jar . 先安装SaveAsPDFandXPS 打开 jacob-1.19.zip 把...

    需要的包 SaveAsPDFandXPS + jacob

    SaveAsPDFandXPS .
    jacob.jar .

    1. 先安装SaveAsPDFandXPS
    2. 打开 jacob-1.19.zip
      把jacob.jar 放到项目下 , 然后 这里注意把两个后缀为dll的文件放到 jre目录bin的里面,必须放进去,不然会报错(java.lang.NoClassDefFoundError)。
      注意 jacob 不要有版本冲突。
      在这里插入图片描述

    代码

    package utils.report;
    
    
    import java.io.File;
    
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.ComThread;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    
    public class WordToPdf {
    
    	private static final int wdFormatPDF = 17;// PDF 格式
    
    	public static void wordToPDF() {
    
    		ActiveXComponent app = null;
    		Dispatch doc = null;
    		try {
    			app = new ActiveXComponent( "Word.Application" );
    			app.setProperty( "Visible", new Variant( false ) );
    			Dispatch docs = app.getProperty( "Documents" ).toDispatch();
    			// 转换前的文件路径
    			String startFile = "C:/Users/Desktop/aaaab24.docx";
    			// 转换后的文件路劲
    			String overFile = "C:/Users/Desktop/我是结果3.pdf";
    			doc = Dispatch.call( docs, "Open", startFile ).toDispatch();
    			File tofile = new File( overFile );
    			if( tofile.exists() ) {
    				tofile.delete();
    			}
    			Dispatch.call( doc, "SaveAs", overFile, wdFormatPDF );
    		} catch( Exception e ) {
    			System.out.println( e.getMessage() );
    		} finally {
    			Dispatch.call( doc, "Close", false );
    			if( app != null )
    				app.invoke( "Quit", new Variant[] {} );
    		}
    		// 结束后关闭进程
    		ComThread.Release();
    	}
    
    	public static void main( String[] args ) {
    		wordToPDF();
    	}
    }
    

    另外一种方法效果可能不太好

    使用 aspose 相关包

    包链接

    SaveAsPDFandXPS
    1:首先需要引入相关的jar
    word转pdf需要引入 aspose-words-15.8.0-jdk16.jar
    excel转pdf需要引入aspose-cells-8.5.2.jar
    2:引入License.xml文件(备注:此License文件只能破解Word版本),将其放入src文件目录下

    <License>
    <Data>
    <Products>
    <Product>Aspose.Total for Java</Product>
    <Product>Aspose.Words for Java</Product>
    </Products>
    <EditionType>Enterprise</EditionType>
    <SubscriptionExpiry>20991231</SubscriptionExpiry>
    <LicenseExpiry>20991231</LicenseExpiry>
    <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
    </Data>
    <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
    </License>
    

    3.代码

    package utils.report;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    
    import com.aspose.cells.Workbook;
    import com.aspose.words.Document;
    import com.aspose.words.License;
    
    /**
    * Word或Excel 转Pdf 帮助类
    * 备注:需要引入 aspose-words-15.8.0-jdk16.jar / aspose-cells-8.5.2.jar
    */
    public class WordToPdf {
    
    	private static boolean getLicense() {
    		boolean result = false;
    		try {
    			InputStream is = WordToPdf3.class.getClassLoader().getResourceAsStream( "License.xml" ); // license.xml应放在..\WebRoot\WEB-INF\classes路径下
    			License aposeLic = new License();
    			aposeLic.setLicense( is );
    			result = true;
    		} catch( Exception e ) {
    			e.printStackTrace();
    		}
    		return result;
    	}
    
    	/**
    	* @param wordPath 需要被转换的word全路径带文件名
    	* @param pdfPath 转换之后pdf的全路径带文件名
    	*/
    	public static void doc2pdf( String wordPath, String pdfPath ) {
    		if( !getLicense() ) { // 验证License 若不验证则转化出的pdf文档会有水印产生
    			return;
    		}
    		try {
    			long old = System.currentTimeMillis();
    			File file = new File( pdfPath ); // 新建一个pdf文档
    			FileOutputStream os = new FileOutputStream( file );
    			Document doc = new Document( wordPath ); // Address是将要被转化的word文档
    			doc.save( os, com.aspose.words.SaveFormat.PDF );// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
    			long now = System.currentTimeMillis();
    			os.close();
    			System.out.println( "共耗时:" + ( ( now - old ) / 1000.0 ) + "秒" ); // 转化用时
    		} catch( Exception e ) {
    			e.printStackTrace();
    		}
    	}
    
    	/**
    	* @param excelPath 需要被转换的excel全路径带文件名
    	* @param pdfPath 转换之后pdf的全路径带文件名
    	*/
    	public static void excel2pdf( String excelPath, String pdfPath ) {
    		if( !getLicense() ) { // 验证License 若不验证则转化出的pdf文档会有水印产生
    			// return;
    		}
    		try {
    			long old = System.currentTimeMillis();
    			Workbook wb = new Workbook( excelPath );// 原始excel路径
    			FileOutputStream fileOS = new FileOutputStream( new File( pdfPath ) );
    			wb.save( fileOS, com.aspose.cells.SaveFormat.PDF );
    			fileOS.close();
    			long now = System.currentTimeMillis();
    			System.out.println( "共耗时:" + ( ( now - old ) / 1000.0 ) + "秒" ); // 转化用时
    		} catch( Exception e ) {
    			e.printStackTrace();
    		}
    	}
    
    	public static void main( String[] args ) {
    		// word 和excel 转为pdf
    		String filePaths = "D:/logs/Java.doc";
    		String fileName = "123";
    		String pdfPath = "D:/logs/" + fileName + ".pdf";
    		doc2pdf( "C:/Users/Desktop/aaaab24.docx", "C:/Users/Desktop/2.pdf" );// filePaths需要转换的文件位置 pdfPath为存储位置
    		String excel2pdf = "D:/logs/excel.xlsx";
    		excel2pdf( excel2pdf, pdfPath );
    	}
    

    生成的pdf效果没第一种好

    展开全文
  • java 实现word pdf

    2019-09-30 00:39:08
    java 实现word pdf 不知道网上为啥道友们写的这么复杂 ,自己看到过一篇还不错的 , 自己动手改了改 ,测试一下可以用 , 希望大家可以参考一下 , 对大家有帮助 1.引入jar包 (下载jar 地址亲测有效:jacob....

                            java 实现word  转 pdf

     

    不知道网上为啥道友们写的这么复杂  ,自己看到过一篇还不错的  , 自己动手改了改 ,测试一下可以用  , 希望大家可以参考一下 , 对大家有帮助

    1.引入jar包

    (下载jar 地址亲测有效:jacob.jar)

    2.代码

     1 public static void wToPdfChange(String wordFile,String pdfFile){//wordFile word 的路径  //pdfFile pdf 的路径 
     2         
     3          ActiveXComponent app = null;
     4            System.out.println("开始转换...");
     5            // 开始时间
     6           // long start = System.currentTimeMillis();  
     7            try {
     8             // 打开word
     9             app = new ActiveXComponent("Word.Application");
    10             // 获得word中所有打开的文档
    11             Dispatch documents = app.getProperty("Documents").toDispatch();
    12             System.out.println("打开文件: " + wordFile);
    13             // 打开文档
    14             Dispatch document = Dispatch.call(documents, "Open", wordFile, false, true).toDispatch();
    15             // 如果文件存在的话,不会覆盖,会直接报错,所以我们需要判断文件是否存在
    16             File target = new File(pdfFile);  
    17              if (target.exists()) {  
    18                 target.delete();
    19              }
    20             System.out.println("另存为: " + pdfFile);
    21             Dispatch.call(document, "SaveAs", pdfFile, 17);
    22             // 关闭文档
    23             Dispatch.call(document, "Close", false);
    24            }catch(Exception e) {
    25             System.out.println("转换失败"+e.getMessage());
    26            }finally {
    27              // 关闭office
    28             app.invoke("Quit", 0);
    29            }
    30     }

    3. 测试代码

    1 public static void main(String[] args) {
    2         
    3         
    4         String word = "D:/可成品/java.docx";
    5         String name = "zhukaixin".concat(".pdf");
    6         String pdf = "D:\\"+name;
    7         wToPdfChange(word, pdf);
    8     }

    4.运行代码结果

     

    哈哈哈   欢迎各位道友吐槽哟   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   哈哈哈

    转载于:https://www.cnblogs.com/zhukaixin/p/9154469.html

    展开全文
  • java 实现word 转PDF

    2018-04-18 16:13:59
    全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换 ,word转pdf已做测试很好用!
  • Java实现Word转PDF

    千次阅读 热门讨论 2019-03-13 20:27:44
    java实现word文档转pdf 最近在做一个Web项目,需要将Word转换成PDF然后展示出来。其中遇到许多问题,特此记录,如有不妥之处请指正。 实现功能 docx文档转换为PDF 转换之后排版不混乱 使用工具(Jar包) aspose...

    java实现word文档转pdf

    最近在做一个Web项目,需要将Word转换成PDF然后展示出来。其中遇到许多问题,特此记录,如有不妥之处请指正。

    • 实现功能
      • docx文档转换为PDF
      • 转换之后排版不混乱
    • 使用工具(Jar包)
      • aspose-words-15.11.0.jar(用于PDF转换 )
    • 环境
      • JDK1.8
    • 代码
    package com.utils;
    
    import com.aspose.words.Document;
    import com.aspose.words.License;
    import com.aspose.words.SaveFormat;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    
    /**
     * Word文件转PDF文件
     *
     * @author yq
     * @version V1.0
     * @Time 2019-03-11
     */
    public class WordToPdfUtils {
    
        private static Logger logger = LoggerFactory.getLogger(WordToPdfUtils.class);
    
        public static void main(String[] args) {
            doc2pdf("D:\\word.docx", "D:\\word.pdf");
        }
    
        /**
         * Word 转 PDF
         *
         * @param inPath  word文件地址
         * @param outPath pdf文件地址
         */
        public static void doc2pdf(String inPath, String outPath) {
            File wordFile = new File(inPath);
            if (!wordFile.exists()) {
                logger.info("源文件不存在:{}", inPath);
                return;
            }
    
            // 验证License 若不验证则转化出的pdf文档会有水印产生
            if (!getLicense()) {
                return;
            }
            try {
                logger.info("PDF转换开始");
                //开始时间
                long old = System.currentTimeMillis();
                //获取文件
                File file = new File(outPath);
                //获取文件流
                FileOutputStream os = new FileOutputStream(file);
                // Address是将要被转化的word文档
                Document doc = new Document(inPath);
                // 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF
                doc.save(os, SaveFormat.PDF);
                //结束时间
                long now = System.currentTimeMillis();
                logger.info("PDF转换结束 共耗时:" + ((now - old) / 1000.0) + "秒");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 去除水印
         *
         * @return
         */
        public static boolean getLicense() {
            boolean result = false;
            try {
                // license.xml应放在..\WebRoot\WEB-INF\classes路径下
                InputStream is = WordToPdfUtils.class.getClassLoader().getResourceAsStream("license.xml");
                License aposeLic = new License();
                aposeLic.setLicense(is);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    }
    
    
    展开全文
  • Java 实现word转pdf

    千次阅读 2019-07-10 17:51:08
    之前使用libreoffice实现word转PDF ,效果非常好,但是需要安装并且不支持并发。 推荐是aspose实现word转PDF,转换效果不错,并支持并发。 附上实现代码 maven依赖 <dependency> <groupId>...
    1. 之前使用libreoffice实现word转PDF ,效果非常好,但是需要安装并且不支持并发。
    2. 推荐是aspose实现word转PDF,转换效果不错,并支持并发。

         附上实现代码

         maven依赖

        

    <dependency>
       <groupId>com.aspose</groupId>
       <artifactId>aspose-words</artifactId>
       <version>15.8.0-jdk16</version>
       <scope>system</scope>
       <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/aspose-words-15.8.0-jdk16.jar</systemPath>
    </dependency>

    jar包连接

    链接:https://pan.baidu.com/s/1Nun4rMpvek8PIyomDoWuMA 提取码:0rw8

    Java代码 inPath为word原文件路径,outPath为新建的pdf文件 xxx.pdf

    /**
     * 读取License配置文件
     * @return
     */
    public static boolean getLicense() {
        boolean result = false;
        try {
            InputStream is = WordToPdf.class.getClassLoader().getResourceAsStream("license.xml");
            License aposeLic = new License();
            aposeLic.setLicense(is);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
    /**
     * 转pdf
     * @param inPath
     */
    public static void docTopdf(String inPath,String outPath) {
        // 验证License 若不验证则转化出的pdf文档会有水印产生
        if (!getLicense()) {
            return;
        }
        try {
            long old = System.currentTimeMillis();
            FileOutputStream os = new FileOutputStream(new File(outPath));
            //inPath是要被转化的word文档
            Document doc = new Document(inPath);
            doc.save(os, SaveFormat.PDF);
            os.close();
            long now = System.currentTimeMillis();
            System.out.println("Aspose转PDF共耗时:" + ((now - old) / 1000.0) + "秒");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    xml文件,该文件放在resources文件夹下

     

    <License>
      <Data>
        <Products>
          <Product>Aspose.Total for Java</Product>
          <Product>Aspose.Words for Java</Product>
        </Products>
        <EditionType>Enterprise</EditionType>
        <SubscriptionExpiry>20991231</SubscriptionExpiry>
        <LicenseExpiry>20991231</LicenseExpiry>
        <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
      </Data>
      <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
    </License>

     

    展开全文
  • JAVA实现WORD转PDF

    2019-10-15 18:15:39
    2、笔者采坑记录:jacob也可以实现word转PDF且Jacob是不收费的,但是Jacob只支持windows,不支持linux。 3、参考博客: Java利用aspose-words将word文档转换成pdf(破解 无水印) 使用com.aspose.w...
  • Java实现word转pdf

    2020-08-24 16:56:17
    Word文档转pdf,纯Java,无需安装libreoffice 百度上找了很多教程,要么需要安装libreoffice或者第三方软件辅助,要么CSDN要收费下载…emm 我的实现,分享出来希望能帮到大家 1.下载spire-doc.jar并依赖至工程 ...
  • java 实现word转pdf

    万次阅读 热门讨论 2017-07-11 17:17:17
    将DOCX文档转化为PDF是项目中常见的需求之一,目前主流的方法可以分为两大类,一类是利用各种Office应用进行转换,譬如Microsoft Office、WPS以及LiberOffice,另一种是利用各种语言提供的对于Office文档读取的接口...
  • java实现word转换pdf

    2018-12-11 16:32:24
     项目中遇到了office(word,excel,ppt,之后统称mssoft document)转pdf的需求。  最初借助java调用openoffice (OpenOffice.org 是一套跨平台的办公室软件套件)服务将mssoft document 转换成pdf,均能转换成功,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 714
精华内容 285
关键字:

java实现word转pdf

java 订阅