JAVA 实现 Word转PDF

  • 需要的包 SaveAsPDFandXPS + jacob
  • 代码
  • 另外一种方法效果可能不太好
    • 包链接

需要的包 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 转为pdfString 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相关推荐

  1. Aspose.Java实现word转pdf,添加水印等操作

    Aspose.Java实现word转pdf,添加水印等操作 一. word转pdf 二. 文档插入水印 Aspose是一款商用版控件,支持各类文档操作,这里主要介绍如何在Springboot项目中使用 ...

  2. txt doc rtf html,JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例.docx

    JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例 JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例??2012-06-2 ...

  3. java实现word、pdf文件下载功能

    在SpringMVC的开发过程中,有时需要实现文档的下载功能.文档的下载功能涉及到了java IO流操作的基础知识,下面本文详细介绍java如何实现后台文档下载功能. 首先根据文档在项目中的存储路径建 ...

  4. java 模板 word转pdf 可分页 带图片

    java 模板 word转pdf 可分页 带图片 之前写过一个简单的案例,但是在项目中完全不能满足客户的需求,所以重新用啦一种方式来写,采用了word转换pdf的方式,这种经过不断研究,满足了可分页, ...

  5. Java实现Word转PDF方案选择

    Java实现Word转PDF方案选择 很多应用场景中都会涉及到Word转PDF,但Word转PDF的方案在网上一搜一大把,让人眼花缭乱,笔者踩过无数的坑后,最终总结出以下三种方案 OpenOffice ...

  6. [JAVA使用技巧]Java抽取Word和PDF格式文件_网络大本营

    Java抽取Word和PDF格式文件的四种武器(1) 很多人用java进行文档操作时经常会遇到一个问题,就是如何获得word,excel,pdf等文档的内容?我研究了一下,在这里总结一下抽取word, ...

  7. java实现word转pdf在线预览格式

    java实现word转pdf在线预览格式 前段时间的项目里涉及了此功能,调研过一些方案,踩过一些坑,一一总结在此. java转pdf的方案很多,但是很多都要收费,转pdf也有一些格式方面的问题. 方案 ...

  8. JAVA POI Word转PDF convert方法 NullPointException

    JAVA POI Word转PDF convert方法 NullPointException 如果操作过通过POI操作过Word,请保证创建run之后run的值不为null,为null将在转换时报错. ...

  9. Linux系统下Java 转换Word到PDF时,结果文档内容乱码的解决方法

    本文分享在Linux系统下,通过Java 程序代码将Word转为PDF文档时,结果文档内容出现乱码该如何解决.具体可参考如下内容: 1.问题出现的背景 在Windows系统中,使用Spire.Doc ...

  10. Java 将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML

    同一文档在不同的编译或阅读环境中,需要使用特定的文档格式来打开,通常需要通过转换文档格式的方式来实现.下面将介绍在Java程序中如何来转换Word文档为其他几种常见文档格式,如PDF.图片png.sv ...

最新文章

  1. 概率与统计在计算机应用,计算机技术在概率论和数理统计中的应用
  2. 看病(信息学奥赛一本通-T1371)
  3. 【opencv 学习】仿射变换(图像的旋转、缩放、平移)
  4. STL应用--SORT自定义排序
  5. java请求超时异常捕获_我异常了,快来捕获我,Java异常简述
  6. 百叶窗式的幻灯片切换效果原理
  7. [数据结构]前缀、中缀、前缀表达式
  8. [转]rails常用验证方法
  9. 量化选股模型—资金流模型
  10. cad2012打开后闪退_win10系统打开CAd2012出现闪退的恢复方法
  11. outlook分组邮件提醒
  12. 钢琴作品常用体裁名称及曲式
  13. 首页推荐流支持快捷修改兴趣标签,问答支持展示gif【2021.11.8】
  14. MySQL数据库——MySQL INSERT:插入数据(添加数据)
  15. jdbc不能识别别名_生命离开氧气就不能活了吗? 氢气告诉你,No~
  16. 工业触控一体机的特点和优势
  17. 概率统计:数学期望、方差、协方差、相关系数、矩
  18. Intellij Idea:禁忌,请勿手残
  19. discuzz论坛搭建
  20. 开课吧mysql课件百度云_开课吧web全栈十二期|百度云|天翼云下载

热门文章

  1. Html5下载功能实现
  2. 天锐绿盾防泄密软件6.0新版本功能已优化!!!
  3. cfree安装与使用
  4. [置顶] 原来JAVA对象转JSON格式的字符串如此简单,返回来暂时不会做,留下纪念下
  5. 摄像头实时画面转接到web页面
  6. php 自动换行,php imagettftext 规定宽度内自动换行
  7. 安装福昕高级PDF编辑器提示安装错误解决办法
  8. java通过密钥得到谷歌验证码
  9. python deap_Python遗传算法框架DEAP-Creating Types
  10. 【转载】GIS概念解析:大地高 | 海拔 | 正高 | 正常高