文档章节

文件如何转换成pdf或html格式

四叶草666
 四叶草666
发布于 2017/07/25 14:32
字数 1048
阅读 16
收藏 0

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

 
  1. import java.io.File;
  2.  
  3. import com.jacob.activeX.ActiveXComponent;
  4. import com.jacob.com.ComThread;
  5. import com.jacob.com.Dispatch;
  6.  
  7. public class OfficeToPdf {
  8. private static final int wdFormatPDF = 17;
  9. private static final int xlTypePDF = 0;
  10. private static final int ppSaveAsPDF = 32;
  11.  
  12. public static void main(String[] args) {
  13. convert2PDF("I:\\使用方法.txt","I:\\使用方法.pdf");
  14. }
  15.  
  16. /*
  17.  * 转换生存PDF文件,支持格式 doc docx txt ppt pptx xls xlsx
  18.  * 1、需安装office软件,并有将office转化为PDF的插件 2、需有jacob(java com bridge),
  19.  * java与com组件之间的桥梁
  20.  */
  21. public static boolean convert2PDF(String inputFile, String pdfFile) {
  22. String suffix = getFileSufix(inputFile);
  23. File file = new File(inputFile);
  24. if (!file.exists()) {
  25. System.out.println("文件不存在!");
  26. return false;
  27. }
  28. if (suffix.equals("pdf")) {
  29. System.out.println("PDF not need to convert!");
  30. return false;
  31. }
  32. OfficeToPdf officeToPdf = new OfficeToPdf();
  33. if (suffix.equals("doc") || suffix.equals("docx")
  34. || suffix.equals("txt")) {
  35. return officeToPdf.word2PDF(inputFile, pdfFile);
  36. } else if (suffix.equals("ppt") || suffix.equals("pptx")) {
  37. return officeToPdf.ppt2PDF(inputFile, pdfFile);
  38. } else if (suffix.equals("xls") || suffix.equals("xlsx")) {
  39. return officeToPdf.excel2PDF(inputFile, pdfFile);
  40. } else {
  41. System.out.println("文件格式不支持转换!");
  42. return false;
  43. }
  44. }
  45.  
  46. public static String getFileSufix(String fileName) {
  47. int splitIndex = fileName.lastIndexOf(".");
  48. return fileName.substring(splitIndex + 1);
  49. }
  50.  
  51. public boolean word2PDF(String inputFile, String pdfFile) {
  52. try {
  53. // 打开word应用程序
  54. ActiveXComponent app = new ActiveXComponent("Word.Application");
  55. // 设置word不可见
  56. app.setProperty("Visible", false);
  57. // 获得word中所有打开的文档,返回Documents对象
  58. Dispatch docs = app.getProperty("Documents").toDispatch();
  59. // 调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
  60. Dispatch doc = Dispatch.call(docs, "Open", inputFile, false, true)
  61. .toDispatch();
  62. // 调用Document对象的SaveAs方法,将文档保存为pdf格式
  63. /*
  64.  * Dispatch.call(doc, "SaveAs", pdfFile, wdFormatPDF
  65.  * //word保存为pdf格式宏,值为17 );
  66.  */
  67. Dispatch.call(doc, "ExportAsFixedFormat", pdfFile, wdFormatPDF // word保存为pdf格式宏,值为17
  68. );
  69. // 关闭文档
  70. Dispatch.call(doc, "Close", false);
  71. // 关闭word应用程序
  72. app.invoke("Quit", 0);
  73. return true;
  74. } catch (Exception e) {
  75. return false;
  76. } finally {
  77. ComThread.Release();
  78. }
  79. }
  80.  
  81. public boolean excel2PDF(String inputFile, String pdfFile) {
  82. try {
  83. ActiveXComponent app = new ActiveXComponent("Excel.Application");
  84. app.setProperty("Visible", false);
  85. Dispatch excels = app.getProperty("Workbooks").toDispatch();
  86. Dispatch excel = Dispatch.call(excels, "Open", inputFile, false,
  87. true).toDispatch();
  88. Dispatch.call(excel, "ExportAsFixedFormat", xlTypePDF, pdfFile);
  89. Dispatch.call(excel, "Close", false);
  90. app.invoke("Quit");
  91. return true;
  92. } catch (Exception e) {
  93. return false;
  94. } finally {
  95. ComThread.Release();
  96. }
  97.  
  98. }
  99.  
  100. public boolean ppt2PDF(String inputFile, String pdfFile) {
  101. try {
  102. ActiveXComponent app = new ActiveXComponent(
  103. "PowerPoint.Application");
  104. // app.setProperty("Visible", msofalse);
  105. Dispatch ppts = app.getProperty("Presentations").toDispatch();
  106.  
  107. Dispatch ppt = Dispatch.call(ppts, "Open", inputFile, true,// ReadOnly
  108. true,// Untitled指定文件是否有标题
  109. false// WithWindow指定文件是否可见
  110. ).toDispatch();
  111.  
  112. Dispatch.call(ppt, "SaveAs", pdfFile, ppSaveAsPDF);
  113. Dispatch.call(ppt, "Close");
  114. app.invoke("Quit");
  115. return true;
  116. } catch (Exception e) {
  117. return false;
  118. } finally {
  119. ComThread.Release();
  120. }
  121. }
  122. }

4、office文件转html

 
  1. import java.io.File;
  2.  
  3. import com.jacob.activeX.ActiveXComponent;
  4. import com.jacob.com.ComThread;
  5. import com.jacob.com.Dispatch;
  6.  
  7. public class OfficeToHtml {
  8.  
  9. public static final int WORD_HTML = 8;
  10. public static final int WORD_TXT = 7;
  11. public static final int EXCEL_HTML = 44;
  12. public static final int PPT_HTML = 44;
  13.  
  14. public static void main(String[] args) {
  15. convert2HTML("I:\\使用方法.txt","I:\\使用方法.html");
  16. }
  17.  
  18. /*
  19.  * 转换生存PDF文件,支持格式 doc docx txt xls xlsx 1、需安装office软件,并有将office转化为PDF的插件
  20.  * 2、需有jacob(java com bridge), java与com组件之间的桥梁
  21.  */
  22. public static boolean convert2HTML(String inputFile, String pdfFile) {
  23. String suffix = getFileSufix(inputFile);
  24. File file = new File(inputFile);
  25. if (!file.exists()) {
  26. System.out.println("文件不存在!");
  27. return false;
  28. }
  29. OfficeToHtml officeToHtml = new OfficeToHtml();
  30. if (suffix.equals("doc") || suffix.equals("docx")
  31. || suffix.equals("txt")) {
  32. return officeToHtml.word2HTML(inputFile, pdfFile);
  33. } else if (suffix.equals("xls") || suffix.equals("xlsx")) {
  34. return officeToHtml.excel2HTML(inputFile, pdfFile);
  35. } else {
  36. System.out.println("文件格式不支持转换!");
  37. return false;
  38. }
  39. }
  40.  
  41. public static String getFileSufix(String fileName) {
  42. int splitIndex = fileName.lastIndexOf(".");
  43. return fileName.substring(splitIndex + 1);
  44. }
  45.  
  46. /**
  47.  * WORD转HTML
  48.  * 
  49.  * @param docfile
  50.  *            WORD文件全路径
  51.  * @param htmlfile
  52.  *            转换后HTML存放路径
  53.  */
  54. public boolean word2HTML(String docfile, String htmlfile) {
  55. ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
  56. try {
  57. app.setProperty("Visible", false);
  58. app.setProperty("DisplayAlerts", false);// 设置不显示弹出覆盖警告
  59. Dispatch docs = app.getProperty("Documents").toDispatch();
  60. Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method,
  61. new Object[] { docfile, false, true }, new int[1])
  62. .toDispatch();
  63. Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
  64. htmlfile, WORD_HTML }, new int[1]);
  65. Dispatch.call(doc, "Close", false);
  66. app.invoke("Quit", 0);
  67. return true;
  68. } catch (Exception e) {
  69. return false;
  70. } finally {
  71. ComThread.Release();
  72. }
  73. }
  74.  
  75. /**
  76.  * EXCEL转HTML
  77.  * 
  78.  * @param xlsfile
  79.  *            EXCEL文件全路径
  80.  * @param htmlfile
  81.  *            转换后HTML存放路径
  82.  */
  83. public boolean excel2HTML(String xlsfile, String htmlfile) {
  84. ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 启动exel
  85. try {
  86. app.setProperty("Visible", false);
  87. app.setProperty("DisplayAlerts", false);// 设置不显示弹出覆盖警告
  88. Dispatch excels = app.getProperty("Workbooks").toDispatch();
  89. Dispatch excel = Dispatch.invoke(excels, "Open", Dispatch.Method,
  90. new Object[] { xlsfile, false, true }, new int[1])
  91. .toDispatch();
  92. Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {
  93. htmlfile, EXCEL_HTML }, new int[1]);
  94. Dispatch.call(excel, "Close", false);
  95. app.invoke("Quit");
  96. return true;
  97. } catch (Exception e) {
  98. return false;
  99. } finally {
  100. ComThread.Release();
  101. }
  102.  
  103. }
  104. }

附件源码:

下载地址:http://pan.baidu.com/s/1c1PnkS4

© 著作权归作者所有

四叶草666
粉丝 0
博文 51
码字总数 50778
作品 0
深圳
程序员
私信 提问
用ABBYY把PDF如何转换成HTML的方法

将PDF转换成HTML网页格式,是快速打造专业级网站的方法之一。当用户找到了非常详实的PDF资料,打算将之制作成为网页格式时,如果重新开发往往需要耗费大量的时间,可是又不知道怎么样才可以将...

ABBYY
2016/10/20
8
0
该怎样才能将PDF转换成HTML

  将PDF转换成HTML网页格式,是快速打造专业级网站的方法之一。当用户找到了非常详实的PDF资料,打算将之制作成为网页格式时,如果重新开发 往往需要耗费大量的时间,可是又不知道怎么样才...

ABBYY
2016/07/05
22
0
ABBYY把图片转换成pdf格式的方法

在制作工作文件的时候,有时候会遇到需要进行文件格式转换的情况,比较常见的文件格式转换就包含了Office与pdf格式之间的转换。但除此之外,图片与pdf格式也是可以进行转换的,那么图片要怎么...

ABBYY
2016/12/21
42
0
将pdf转换成jpg转换器有什么好的方法

  当我们提到各种教程时,你应该有一个深刻的经验,PDF文件是最多的,唯一能更好地使用PDF文件的方法就是转换其格式,如果不转换其格式使用该文件就非常的不方便,所以PDF文件使用什么工具...

华夏后裔
2017/04/17
87
0
如何用ABBYY把pdf转换成word

有时候我们在网上下载的资料文献是PDF格式文档,遇到喜欢的字句总忍不住想要收藏起来,但是PDF文档不同于普通的Word文档可以直接进行复制粘贴,需要下载安装相关的编辑工具,才能对文字内容进...

ABBYY
2016/12/19
82
0

没有更多内容

加载失败,请刷新页面

加载更多

PCB设计-Allegro软件入门系列-allegro环境变量和快捷键

Allegro作为一款高速PCB设计的EDA软件,有完善的约束规则设计和信号完整性电源完整性仿真等各种专业工具深受电子行业从业者喜爱。 对于该软件来说,电子从业者接触最多的就是Allegro的画板功...

demyar
21分钟前
4
0
腾讯云存储

1、进入腾讯云平台,创建 2、进入配置查看域名 3、查看KEY参数 4、将2、3中的参数录入到cms后台 然后点测试按钮查看情况

迅睿CMS-PHP开源CMS程序
22分钟前
4
0
ES 6.x 版本 待验证的CURL命令查询操作

1. 查询数据 curl -H "Content-Type: application/json" -XGET http://elastic:123456@127.0.0.1:9200/alias1/_search -d '{"query": {"match_all": {}}}' 2. 添加数据 如果有不指定ID可以自......

coord
30分钟前
3
0
如何写好论文摘要:研究人员不得不知的小秘诀

我们为何要写摘要? 它的目的为何? 简而言之,摘要的目的就是简单的讨论这篇文章让读者更容易的了解这篇文。 它能在读者与作者之间搭起一条桥梁。当您搜索信息时,您无法一下阅读整篇文章,...

论文辅导员
32分钟前
3
0
移动端、PC端(前后台)、小程序常用的UI框架

移动端、PC端(前后台)、小程序常用的UI框架 1.移动端UI库 ①.Vant UI 官方地址:https://youzan.github.io/vant/#/zh-CN/intro github地址:https://github.com/youzan/vant 优点:用来做移...

jason_kiss
33分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部