原文出处:http://www.cnblogs.com/star-studio/archive/2011/12/09/2281807.html
本方案是笔者在网络上收集前人智慧,以及辛苦奋斗探索几周完成的成果。
由于网络上,大部分资料、文章都比较零碎、重复、不够全面。寻找全面系统的介绍该方案的资料实属不易。
本文从一个只会net、jsp零基础的开发者的角度,全面、琐碎的进行总结。
什么叫仿百度文库方案?
用户上传一个文档,格式有可能是doc、docx、xls、ppt、pdf 等。其他用户在前台查看的却是一个swf格式的flash文档。
flash文档可以起到防止用户下载,以及良好的浏览体验。
具体流程:
1.调用openoffice.org 的系统服务将office文档转换为pdf
2.调用swftools将pdf转换为swf
3.前台使用flexpaper浏览swf文件
为什么不用flashpaper+net?
flashpaper转换非常简单,直接就可以将office文档转换为swf文件。
但是,笔者在测试flashpaper转换时,只能将txt、ppt成功转换为swf。却无法转换doc、xls等文档。
笔者查看进程时,发现转换doc、xls时,flashpaper的进程内存压根就没有变化跳动。笔者估计它吖的压根就没有进行转换。
奈何笔者道行浅薄,无法解决此问题。遂放弃此方案。也许,收费版的可以成功转换。
本方案的一些缺点
1.OpenOffice对Microsoft Office有部分兼容问题,如果是客户端要求很严格,必须百分百转换成功的话,请不要选择此方案,
以免给自己烦恼和苦恼!
ASP+本方案
必须有服务器才可以配置java环境吧。笔者是先在asp上传文档后,在后台用response.write写一个ajax请求或iframe,
把完整的文档路径发送到文件转换器页面进行转换。
可能的形式如下:
response.Write("<iframe frameborder=0 framespacing=0 width=0 height=0 scrolling=no src=http://ip:8080/swfserver/DocConverter.jsp?upath=F:/网站根目录/uploaddoc/20120101.xls></iframe>")
第一步,tomcat6.0+jdk1.6环境配置
由于笔者是个jsp零基础的菜鸟。先从开发运行环境配置起。
这里笔者下载的是安装版:apache-tomcat-6.0.26.exe,jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe
1.首先安装jdk,安装以后,需要配置环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量
(假定你的jdk安装在C:\Program Files\Java):
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (.;一定不能少,因为它代表当前路径)
path=%JAVA_HOME%\bin
接着可以写一个简单的java程序来测试JDK是否已安装成功:
public class Test{
public static void main(String args[]){
System.out.println("This is a test program.");
}
}
将上面的这段程序保存为文件名为Test.java的文件。
然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令
javac Test.java
java Test
此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话,你需要仔细检查一下你的配置情况。
2.接下来安装Tomcat,安装以后,配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量
(假定你的tomcat安装在c:\tomcat):
CATALINA_HOME:C:\Program Files\Apache Software Foundation\Tomcat 6.0
CATALINA_BASE:C:\Program Files\Apache Software Foundation\Tomcat 6.0
TOMCAT_HOME: C:\Program Files\Apache Software Foundation\Tomcat 6.0
然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到classpath中去,修改后的classpath如下:
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;
【注意最新版本的Tomcat中可能没有common这个文件夹了。所以servlet-api.jar应该的路径为%CATALINA_HOME%\lib\servlet-api.jar;
请根据自己的情况自己修改!】
接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
3.建立自己的jsp app目录
1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;
2.在webapps目录下新建一个目录,起名叫myapp;
3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
4.WEB-INF下新建一个文件web.xml,内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description> A application for test. </description>
</web-app>
5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
6.重启Tomcat
7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。
4.建立自己的servlet
写入你的第一个Servlet:
在你新建的Application myapp/WEB-INF/classes/test目录下新建HelloWorld.java
package test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>");
out.println("This is my first Servlet");
out.println("</title></head><body>");
out.println("<h1>Hello,World!</h1>");
out.println("</body></html>");
}
}
然后照样用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servlet.*
那么就是应该把C:\Tomcat\common\lib里面的servlet-api.jar文件拷贝到C:\JDK\jre\lib\ext中,再次编译,就没有问题了!
仿百度文库方案[openoffice.org 3+swftools+flexpaper](一) 之 tomcat6.0+jdk1.6环境配置
仿百度文库方案[openoffice.org 3+swftools+flexpaper](二) 之 安装openoffice.org
仿百度文库方案[openoffice.org 3+swftools+flexpaper](三) 之 使用JODConverter将office文档转换为pdf