java实现类似百度文库预览pdf功能.docx
文本预览下载声明
实现类似百度文库在线观看功能笔记
(*.*文件-pdf文件-swf文件)
实现方式调研:
网上大致看了下实现的方式(借鉴了前人的文档,在此谢过),发现还是蛮多资料的。大体上有四种转换的方式:
Txt/Word/Excel/PPT=PDF(OpenOffice+JodConverter)=SWF(pdf2swf)=FlexPaper浏览
Txt/Word/Excel/PPT=PDF(MSOffice+JACOB)=SWF(pdf2swf)=FlexPaper浏览
Txt/Word/Excel/PPT=SWF (FlashPaper)= FlexPaper浏览
Txt/Word/Excel/PPT=SWF(print2flash)= FlexPaper浏览
上面1,2两种实现方式相对比较复杂,需要先将其他类型转换为PDF类型,再转成SWF类型在容器中显示。所以先看了下后2种,先说说flashpaper吧,此款软件确实是转换格式的神器,可惜是收费的。不过可以试用30天,对于这种小型的可试用的软件,我一般是装在虚拟机中,一直试用,到期了再恢复快照即可。说实话,效果不错,但不适合开发用,因为木有买的冲动,只能忍痛割???了!再说说print2flash,这款软件是开源的,也能实现转换swf的功能,但是上网找了半天,关于它的代码资料很是匮乏。Java的更是凤毛麟角,无从下手,只好先晾着。希望某位大虾有关于这个的代码资料可以共享,本人感激不尽啊!剩下的只有相对复杂的2种,不多说了,鉴于经典案例及网上资料的丰富性,我最终还是“屈服”在了第一种的组合上了。
资料和工具准备:
工具OpenOffice/new/zh_cn/downloads.htmlJodConverter/fd.php?i=992314146801277s=08dbee95a6e2dda1a95aa8cbf4df197bSwftools(pdf2swf)/fd.php?i=389133735472350s=2f7430ad3c00cca78ada8b4671a50b24FlexPaper/files/FlexPaper_1.4.5_flash.zip资料方面,大致搜索了百度文库和开源中国上的一些资料,其实都大同小异。前辈们已经为我们做了很多了,再次谢过各位分享的前辈。
项目目录及源码:
工程目录大致如下:
另外,在lib下需要加入JodConverter压缩包中lib目录下的jar包,全部复制进去即可。
ConvertServlet的servlet处理类代码如下:
package org.gfg.test.servlet;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
public class ConvertServlet extends HttpServlet {
private File sourceFile; //转换源文件
private File pdfFile; //PDF目标文件
private File swfFile; //SWF目标文件
private Runtime r;
public void init() throws ServletException {
sourceFile = new File(G:\\tomcat6\\webapps\\readonline\\swfFile\\1.doc);
显示全部