文件如何转换成pdf或html格式
1、使用jacob插件
2、使用方法
1)于word、ppt等上传文件转换为PDF格式文件的环境搭建,步骤如下:
① 首先电脑要先安装office软件(不可以是WPS软件)
② 需要把jacob.dll文件复制到JDK的bin目录下面,否则无法调用转换为PDF的功能。
2)使用的服务器上必须安装有office软件,因为原理是调用office的pdf转换器来实现的。
3)必须也要有PDF软件,因为office要通过调用本地的pdf软件来实现格式的转换。
3、office文件转PDF
- import java.io.File;
- import com.jacob.activeX.ActiveXComponent;
- import com.jacob.com.ComThread;
- import com.jacob.com.Dispatch;
- public class OfficeToPdf {
- private static final int wdFormatPDF = 17;
- private static final int xlTypePDF = 0;
- private static final int ppSaveAsPDF = 32;
- public static void main(String[] args) {
- convert2PDF("I:\\使用方法.txt","I:\\使用方法.pdf");
- }
- /*
- * 转换生存PDF文件,支持格式 doc docx txt ppt pptx xls xlsx
- * 1、需安装office软件,并有将office转化为PDF的插件 2、需有jacob(java com bridge),
- * java与com组件之间的桥梁
- */
- public static boolean convert2PDF(String inputFile, String pdfFile) {
- String suffix = getFileSufix(inputFile);
- File file = new File(inputFile);
- if (!file.exists()) {
- System.out.println("文件不存在!");
- return false;
- }
- if (suffix.equals("pdf")) {
- System.out.println("PDF not need to convert!");
- return false;
- }
- OfficeToPdf officeToPdf = new OfficeToPdf();
- if (suffix.equals("doc") || suffix.equals("docx")
- || suffix.equals("txt")) {
- return officeToPdf.word2PDF(inputFile, pdfFile);
- } else if (suffix.equals("ppt") || suffix.equals("pptx")) {
- return officeToPdf.ppt2PDF(inputFile, pdfFile);
- } else if (suffix.equals("xls") || suffix.equals("xlsx")) {
- return officeToPdf.excel2PDF(inputFile, pdfFile);
- } else {
- System.out.println("文件格式不支持转换!");
- return false;
- }
- }
- public static String getFileSufix(String fileName) {
- int splitIndex = fileName.lastIndexOf(".");
- return fileName.substring(splitIndex + 1);
- }
- public boolean word2PDF(String inputFile, String pdfFile) {
- try {
- // 打开word应用程序
- ActiveXComponent 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", inputFile, false, true)
- .toDispatch();
- // 调用Document对象的SaveAs方法,将文档保存为pdf格式
- /*
- * Dispatch.call(doc, "SaveAs", pdfFile, wdFormatPDF
- * //word保存为pdf格式宏,值为17 );
- */
- Dispatch.call(doc, "ExportAsFixedFormat", pdfFile, wdFormatPDF // word保存为pdf格式宏,值为17
- );
- // 关闭文档
- Dispatch.call(doc, "Close", false);
- // 关闭word应用程序
- app.invoke("Quit", 0);
- return true;
- } catch (Exception e) {
- return false;
- } finally {
- ComThread.Release();
- }
- }
- public boolean excel2PDF(String inputFile, String pdfFile) {
- try {
- ActiveXComponent app = new ActiveXComponent("Excel.Application");
- app.setProperty("Visible", false);
- Dispatch excels = app.getProperty("Workbooks").toDispatch();
- Dispatch excel = Dispatch.call(excels, "Open", inputFile, false,
- true).toDispatch();
- Dispatch.call(excel, "ExportAsFixedFormat", xlTypePDF, pdfFile);
- Dispatch.call(excel, "Close", false);
- app.invoke("Quit");
- return true;
- } catch (Exception e) {
- return false;
- } finally {
- ComThread.Release();
- }
- }
- public boolean ppt2PDF(String inputFile, String pdfFile) {
- try {
- ActiveXComponent app = new ActiveXComponent(
- "PowerPoint.Application");
- // app.setProperty("Visible", msofalse);
- Dispatch ppts = app.getProperty("Presentations").toDispatch();
- Dispatch ppt = Dispatch.call(ppts, "Open", inputFile, true,// ReadOnly
- true,// Untitled指定文件是否有标题
- false// WithWindow指定文件是否可见
- ).toDispatch();
- Dispatch.call(ppt, "SaveAs", pdfFile, ppSaveAsPDF);
- Dispatch.call(ppt, "Close");
- app.invoke("Quit");
- return true;
- } catch (Exception e) {
- return false;
- } finally {
- ComThread.Release();
- }
- }
- }
4、office文件转html
- import java.io.File;
- import com.jacob.activeX.ActiveXComponent;
- import com.jacob.com.ComThread;
- import com.jacob.com.Dispatch;
- public class OfficeToHtml {
- public static final int WORD_HTML = 8;
- public static final int WORD_TXT = 7;
- public static final int EXCEL_HTML = 44;
- public static final int PPT_HTML = 44;
- public static void main(String[] args) {
- convert2HTML("I:\\使用方法.txt","I:\\使用方法.html");
- }
- /*
- * 转换生存PDF文件,支持格式 doc docx txt xls xlsx 1、需安装office软件,并有将office转化为PDF的插件
- * 2、需有jacob(java com bridge), java与com组件之间的桥梁
- */
- public static boolean convert2HTML(String inputFile, String pdfFile) {
- String suffix = getFileSufix(inputFile);
- File file = new File(inputFile);
- if (!file.exists()) {
- System.out.println("文件不存在!");
- return false;
- }
- OfficeToHtml officeToHtml = new OfficeToHtml();
- if (suffix.equals("doc") || suffix.equals("docx")
- || suffix.equals("txt")) {
- return officeToHtml.word2HTML(inputFile, pdfFile);
- } else if (suffix.equals("xls") || suffix.equals("xlsx")) {
- return officeToHtml.excel2HTML(inputFile, pdfFile);
- } else {
- System.out.println("文件格式不支持转换!");
- return false;
- }
- }
- public static String getFileSufix(String fileName) {
- int splitIndex = fileName.lastIndexOf(".");
- return fileName.substring(splitIndex + 1);
- }
- /**
- * WORD转HTML
- *
- * @param docfile
- * WORD文件全路径
- * @param htmlfile
- * 转换后HTML存放路径
- */
- public boolean word2HTML(String docfile, String htmlfile) {
- ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
- try {
- app.setProperty("Visible", false);
- app.setProperty("DisplayAlerts", false);// 设置不显示弹出覆盖警告
- Dispatch docs = app.getProperty("Documents").toDispatch();
- Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method,
- new Object[] { docfile, false, true }, new int[1])
- .toDispatch();
- Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
- htmlfile, WORD_HTML }, new int[1]);
- Dispatch.call(doc, "Close", false);
- app.invoke("Quit", 0);
- return true;
- } catch (Exception e) {
- return false;
- } finally {
- ComThread.Release();
- }
- }
- /**
- * EXCEL转HTML
- *
- * @param xlsfile
- * EXCEL文件全路径
- * @param htmlfile
- * 转换后HTML存放路径
- */
- public boolean excel2HTML(String xlsfile, String htmlfile) {
- ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 启动exel
- try {
- app.setProperty("Visible", false);
- app.setProperty("DisplayAlerts", false);// 设置不显示弹出覆盖警告
- Dispatch excels = app.getProperty("Workbooks").toDispatch();
- Dispatch excel = Dispatch.invoke(excels, "Open", Dispatch.Method,
- new Object[] { xlsfile, false, true }, new int[1])
- .toDispatch();
- Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {
- htmlfile, EXCEL_HTML }, new int[1]);
- Dispatch.call(excel, "Close", false);
- app.invoke("Quit");
- return true;
- } catch (Exception e) {
- return false;
- } finally {
- ComThread.Release();
- }
- }
- }
附件源码:
文件如何转换成pdf或html格式的更多相关文章
- DWG文件怎么转换成PDF格式
在CAD中,设计师们绘制的图纸都是以dwg文件来进行保存的.Dwg文件是不能够直接进行打开查看的,就需要将其格式进行转换一下.将dwg文件转换为PDF格式的进行查看.那具体要怎么来进行操作呢?下面小编 ...
- 怎样把Linux的私钥文件id_rsa转换成putty的ppk格式
在Linux VPS下产生的私钥文件putty是不认识的,putty只认识自己的ppk格式,要在这两种格式之间转换,需要PuTTYgen这个程序. puttygen是putty的配套程序,putty的 ...
- vue文件流转换成pdf预览(pdf.js+iframe)
参考文档:https://www.jianshu.com/p/242525315bf6 PDFJS: https://mozilla.github.io/pdf.js/ 支持获取文件流到客户端 ...
- dvi文件和将dvi文件转换成pdf格式
dvi文件和将dvi文件转换成pdf格式 Latex只能把tex文件编译成dvi文件, 在cmd 中: 使用xdvi查看dvi格式的文件 若用texstudio编辑tex文件,则可直接将已编译成功的. ...
- 【文件】使用jacob将word转换成pdf格式
使用jacob将word转换成pdf格式 1.需要安装word2007或以上版本,若安装07版本学确保该版本已安装2downbank0204MicrosoftSaveasPDF_ XPS,否则安装 ...
- C# 将PowerPoint文件转换成PDF文件
PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...
- ABBYY如何把图片转换成pdf格式
在制作工作文件的时候,有时候会遇到需要进行文件格式转换的情况,比较常见的文件格式转换就包含了Office与pdf格式之间的转换.但除此之外,图片与pdf格式也是可以进行转换的,那么图片要怎么操作,才能 ...
- Linux不用使用软件把纯文本文档转换成PDF文件的方法
当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些.比如,PDF更适合打印,因为PDF文档有预定义布局.除此之外,还可以减少文档被意外修改的风险. 要将文本文件转换成PDF格式,你要按照 ...
- python3将docx转换成pdf,html文件,pdf转doc文件
直接上代码 # -*- encoding:utf-8 -*- """ author:lgh 简单的doc转pdf,html,pdf转doc脚本 依赖库pdfminer3k ...
随机推荐
- Java学习笔记29(IO字符流,转换流)
字符流:只能操作文本文件,与字节流的区别是,字节流是按照字节来读取文件,而字符流是按照字符来读取,因此字符流的局限性为文本文件 字符输出流:Write类,使用时通过子类 每一次写入都要刷新 pac ...
- 2.18 爬页面源码(page_source)
2.18 爬页面源码(page_source) 前言有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息.selenium的page_source方法可以获取到页 ...
- Django之路由控制配置
路由控制配置 简单的路由配置 Django即支持1.x版本的路由配置也支持2.x的路由配置 1.x版本的路由配置是使用re进行路由配置(re_path) 2.x版本的路由配置使用(path)进行路由配 ...
- help2man: can't get `--help' info from automake-1.15 Try `--no-discard-stderr' if option outputs to stderr Makefile:3687: recipe for target 'doc/automake-1.15.1' failed
/********************************************************************** * help2man: can't get `--hel ...
- html播放音乐
如何在网站网页中添加音乐代码 告诉你多种格式文件的详细使用代码. width_num——指定一个作为宽度的数字: height_num——指定一个作为高度的数字: 1.mp3 ...
- Java中如何正确的将byte[]数组转化为String类型?
很多人在编程时,总是喜欢用一下方法将数组转为字符串:(a为byte数组) String s=a.toString(); 可是每次返回的时候,新手看来返回的结果是乱码,比如说我,写RSA算法时,没有注意 ...
- C++学习(十八)(C语言部分)之 指针2
指针1.指针的概述 指针是什么? 指针是一个地址 是一个常量 int 整型 int a a是变量 指针用来做什么? 方便使用数组或者字符串 像汇编语言一样处理内存地址2.指针变量 什么是指针变量? 是 ...
- hdu6440 Dream(费马小定理)
保证 当 n^p=n(mod p) 是成立 只要保证n*m=n*m(mod p); #include<bits/stdc++.h> using namespace std; int ma ...
- 浅谈log4j-5-读取properties文件(转自godtrue)
#### 在代码中配置log4j环境的方式,我们已经见识过了,是不是感觉比较麻烦,我们试试使用配置文件的方式是否使您的应用程序更加的灵活.# Log4j支持两种配置文件格式,一种是XML格式的文件,一 ...
- 组合数据类型,英文词频统计 python
练习: 总结列表,元组,字典,集合的联系与区别.列表,元组,字典,集合的遍历. 区别: 一.列表:列表给大家的印象是索引,有了索引就是有序,想要存储有序的项目,用列表是再好不过的选择了.在python ...