java开发_模仿百度文库_OpenOffice2PDF_源码下载
2012-11-05 17:44
399 查看
这几天在研究模仿着做类似于百度文库的东西,在这里给大家分享一下我自己做的东西。
由于需要做这样的项目,我查阅了很多资料,最后选定一下方案去做:
Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)=>SWF(pdf2swf)=>FlexPaper浏览
今天就完成第一步:
Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)
做之前,我们要先做一些准备:
1.下载:Apache_OpenOffice_incubating_3.4.1_Win_x86_install_zh-CN.exe
下载地址:http://www.openoffice.org/download/index.html
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105173407.png)
下载后得到:Apache_OpenOffice_incubating_3.4.1_Win_x86_install_zh-CN.exe
2.安装Apache_OpenOffice
双击Apache_OpenOffice_incubating_3.4.1_Win_x86_install_zh-CN.exe进行安装操作
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114643.png)
注意:这里的安装位置,要在项目中用到....我安装在:C:/Program Files (x86)/OpenOffice.org 3目录下面
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114653.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114731.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114742.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114750.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114800.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114808.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114859.png)
到这里,OpenOffice就算是安装完成了。
3.创建一个项目
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105172446.png)
/Office2PDF/src/com/b510/office2pdf/Office2PDF.java
4.效果
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105172007.png)
5.控制台效果
是不是很简单....
如果你想尝试一下,这里提供源码下载:http://files.cnblogs.com/hongten/Office2PDF.rar
希望大家多多交流,一起进步...
下面是注意事项:java开发_模仿百度文库_OpenOffice2PDF_注意事项
由于需要做这样的项目,我查阅了很多资料,最后选定一下方案去做:
Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)=>SWF(pdf2swf)=>FlexPaper浏览
今天就完成第一步:
Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)
做之前,我们要先做一些准备:
1.下载:Apache_OpenOffice_incubating_3.4.1_Win_x86_install_zh-CN.exe
下载地址:http://www.openoffice.org/download/index.html
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105173407.png)
下载后得到:Apache_OpenOffice_incubating_3.4.1_Win_x86_install_zh-CN.exe
2.安装Apache_OpenOffice
双击Apache_OpenOffice_incubating_3.4.1_Win_x86_install_zh-CN.exe进行安装操作
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114643.png)
注意:这里的安装位置,要在项目中用到....我安装在:C:/Program Files (x86)/OpenOffice.org 3目录下面
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114653.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114731.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114742.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114750.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114800.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114808.png)
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105114859.png)
到这里,OpenOffice就算是安装完成了。
3.创建一个项目
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105172446.png)
/Office2PDF/src/com/b510/office2pdf/Office2PDF.java
/** * */ package com.b510.office2pdf; import java.io.File; import java.util.Date; import java.util.regex.Pattern; import org.artofsolving.jodconverter.OfficeDocumentConverter; import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration; import org.artofsolving.jodconverter.office.OfficeManager; /** * 这是一个工具类,主要是为了使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) * 转化为pdf文件<br> * Office2010的没测试<br> * * @date 2012-11-5 * @author xhw * */ public class Office2PDF { /** * office中.doc格式 */ public static final String OFFICE_DOC = "doc"; /** * office中.docx格式 */ public static final String OFFICE_DOCX = "docx"; /** * office中.xls格式 */ public static final String OFFICE_XLS = "xls"; /** * office中.xlsx格式 */ public static final String OFFICE_XLSX = "xlsx"; /** * office中.ppt格式 */ public static final String OFFICE_PPT = "ppt"; /** * office中.pptx格式 */ public static final String OFFICE_PPTX = "pptx"; /** * pdf格式 */ public static final String OFFICE_TO_PDF = "pdf"; public static void main(String[] args) { Office2PDF office2pdf = new Office2PDF(); office2pdf.openOfficeToPDF("e:/test." + OFFICE_DOCX, "e:/test_" + new Date().getTime() + "." + OFFICE_TO_PDF); office2pdf.openOfficeToPDF("e:/test." + OFFICE_PPTX, null); } /** * 使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) 转化为pdf文件<br> * * @param inputFilePath * 源文件路径,如:"e:/test.docx" * @param outputFilePath * 目标文件路径,如:"e:/test_docx.pdf" * @return */ public boolean openOfficeToPDF(String inputFilePath, String outputFilePath) { return office2pdf(inputFilePath, outputFilePath); } /** * 根据操作系统的名称,获取OpenOffice.org 3的安装目录<br> * 如我的OpenOffice.org 3安装在:C:/Program Files (x86)/OpenOffice.org 3<br> * * @return OpenOffice.org 3的安装目录 */ public String getOfficeHome() { String osName = System.getProperty("os.name"); if (Pattern.matches("Linux.*", osName)) { return "/opt/openoffice.org3"; } else if (Pattern.matches("Windows.*", osName)) { return "C:/Program Files (x86)/OpenOffice.org 3"; } else if (Pattern.matches("Mac.*", osName)) { return "/Application/OpenOffice.org.app/Contents"; } return null; } /** * 连接OpenOffice.org 并且启动OpenOffice.org * * @return */ public OfficeManager getOfficeManager() { DefaultOfficeManagerConfiguration config = new DefaultOfficeManagerConfiguration(); // 获取OpenOffice.org 3的安装目录 String officeHome = getOfficeHome(); config.setOfficeHome(officeHome); // 启动OpenOffice的服务 OfficeManager officeManager = config.buildOfficeManager(); officeManager.start(); return officeManager; } /** * 转换文件 * * @param inputFile * @param outputFilePath_end * @param inputFilePath * @param outputFilePath * @param converter */ public void converterFile(File inputFile, String outputFilePath_end, String inputFilePath, String outputFilePath, OfficeDocumentConverter converter) { File outputFile = new File(outputFilePath_end); // 假如目标路径不存在,则新建该路径 if (!outputFile.getParentFile().exists()) { outputFile.getParentFile().mkdirs(); } converter.convert(inputFile, outputFile); System.out.println("文件:" + inputFilePath + "\n转换为\n目标文件:" + outputFile + "\n成功!"); } /** * 使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) 转化为pdf文件<br> * * @param inputFilePath * 源文件路径,如:"e:/test.docx" * @param outputFilePath * 目标文件路径,如:"e:/test_docx.pdf" * @return */ public boolean office2pdf(String inputFilePath, String outputFilePath) { boolean flag = false; OfficeManager officeManager = getOfficeManager(); // 连接OpenOffice OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager); long begin_time = new Date().getTime(); if (null != inputFilePath) { File inputFile = new File(inputFilePath); // 判断目标文件路径是否为空 if (null == outputFilePath) { // 转换后的文件路径 String outputFilePath_end = getOutputFilePath(inputFilePath); if (inputFile.exists()) {// 找不到源文件, 则返回 converterFile(inputFile, outputFilePath_end, inputFilePath, outputFilePath, converter); flag = true; } } else { if (inputFile.exists()) {// 找不到源文件, 则返回 converterFile(inputFile, outputFilePath, inputFilePath, outputFilePath, converter); flag = true; } } officeManager.stop(); } else { System.out.println("con't find the resource"); } long end_time = new Date().getTime(); System.out.println("文件转换耗时:[" + (end_time - begin_time) + "]ms"); return flag; } /** * 获取输出文件 * * @param inputFilePath * @return */ public String getOutputFilePath(String inputFilePath) { String outputFilePath = inputFilePath.replaceAll("." + getPostfix(inputFilePath), ".pdf"); return outputFilePath; } /** * 获取inputFilePath的后缀名,如:"e:/test.pptx"的后缀名为:"pptx"<br> * * @param inputFilePath * @return */ public String getPostfix(String inputFilePath) { return inputFilePath.substring(inputFilePath.lastIndexOf(".") + 1); } }
4.效果
![](http://images.cnblogs.com/cnblogs_com/hongten/425974/r_QQ%e6%88%aa%e5%9b%be20121105172007.png)
5.控制台效果
十一月 05, 2012 5:19:15 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager <init> INFO: ProcessManager implementation is PureJavaProcessManager 十一月 05, 2012 5:19:15 下午 org.artofsolving.jodconverter.office.OfficeProcess start INFO: starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir 'C:\Users\ADMINI~1\AppData\Local\Temp\.jodconverter_socket_host-127.0.0.1_port-2002' 十一月 05, 2012 5:19:15 下午 org.artofsolving.jodconverter.office.OfficeProcess start INFO: started process 十一月 05, 2012 5:19:16 下午 org.artofsolving.jodconverter.office.OfficeConnection connect INFO: connected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' 十一月 05, 2012 5:19:19 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop INFO: stopping 文件:e:/test.docx 转换为 目标文件:e:\test_1352107155307.pdf 成功! 十一月 05, 2012 5:19:19 下午 org.artofsolving.jodconverter.office.OfficeConnection$1 disposing INFO: disconnected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' 十一月 05, 2012 5:19:19 下午 org.artofsolving.jodconverter.office.ManagedOfficeProcess doEnsureProcessExited INFO: process exited with code 0 十一月 05, 2012 5:19:19 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop INFO: stopped 文件转换耗时:[2838]ms 十一月 05, 2012 5:19:19 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager <init> INFO: ProcessManager implementation is PureJavaProcessManager 十一月 05, 2012 5:19:19 下午 org.artofsolving.jodconverter.office.OfficeProcess start INFO: starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir 'C:\Users\ADMINI~1\AppData\Local\Temp\.jodconverter_socket_host-127.0.0.1_port-2002' 十一月 05, 2012 5:19:19 下午 org.artofsolving.jodconverter.office.OfficeProcess start INFO: started process 十一月 05, 2012 5:19:20 下午 org.artofsolving.jodconverter.office.OfficeConnection connect INFO: connected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' 文件:e:/test.pptx 转换为 目标文件:e:\test.pdf 成功! 十一月 05, 2012 5:19:26 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop INFO: stopping 十一月 05, 2012 5:19:26 下午 org.artofsolving.jodconverter.office.OfficeConnection$1 disposing INFO: disconnected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' 十一月 05, 2012 5:19:26 下午 org.artofsolving.jodconverter.office.ManagedOfficeProcess doEnsureProcessExited INFO: process exited with code 0 十一月 05, 2012 5:19:26 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop INFO: stopped 文件转换耗时:[6417]ms
是不是很简单....
如果你想尝试一下,这里提供源码下载:http://files.cnblogs.com/hongten/Office2PDF.rar
希望大家多多交流,一起进步...
下面是注意事项:java开发_模仿百度文库_OpenOffice2PDF_注意事项
相关文章推荐
- java开发_模仿百度文库_OpenOffice2PDF_源码下载
- java开发_模仿百度文库_OpenOffice2PDF_源码下载
- java开发_模仿百度文库_SWFTools_源码下载
- java开发_模仿百度文库_SWFTools_源码下载
- java开发_模仿百度文库_OpenOffice2PDF_注意事项
- java开发_模仿百度文库_OpenOffice2PDF_注意事项
- 阿里巴巴Java开发手册PDF下载
- 微信公众账号(平台)java开发源码下载
- Java开发相关书籍(PDF)-下载
- java开发_mysql中获取数据库表描述_源码下载
- 转:JAVA实现word doc docx pdf excel的在线浏览 - 仿百度文库 源码
- 模仿Hibernate的逆向工程_java版_源码下载
- Portal-Basic Java Web 应用开发框架(v2.5.4 - 源码、示例及文档可在 Google Code 下载)
- JAVA实现word doc docx pdf excel的在线浏览 - 仿百度文库 源码
- 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全
- java开发_模仿百度文库_FlexPaper
- java开发_模仿百度文库_FlexPaper
- Portal-Basic Java Web 应用开发框架(v2.5.4 - 源码、示例及文档可在 Google Code 下载)
- 230套java web开发PDF书籍和CHM参考手册资料大全 免费下载
- java开发_java小程序_邮死你(yousini)_源码下载