j​a​v​a​实​现​访​百​度​文​库​、​道​客​巴​巴​、​豆​丁​阅​读(http://wenku.baidu.com/view/ad30168fbceb19e8b8f6baea.html)

j​a​v​a​实​现​访​百​度​文​库​、​道​客​巴​巴​、​豆​丁​阅​读

(6人评价)|911人阅读|45次下载|举报文档

在​线​预​览​w​o​r​d​,​p​p​t​,​e​x​c​e​l​,​t​e​x​t​,​P​D​F​,​S​W​F​文​件​,​类​似​百​度​文​库​效​果​​​j​a​v​a​实​现​访​百​度​文​库​、​道​客​巴​巴​、​豆​丁​阅​读​,​w​i​n​d​o​w​s​系​统​下​实​现​仿​百​度​文​库​效​果​,​使​文​档​只​能​浏​览​,​保​护​文​档​的​下​载​。​​​经​本​人​测​试​,​在​线​预​览​效​果​还​不​错​​​真​正​实​现​在​线​预​览​​​P​D​F​ ​S​W​F​ ​f​l​e​x​p​a​p​e​r​ ​文​库​ ​在​线​预​览​​​文​件​上​传​转​p​d​f​再​转​s​w​f​然​后​实​现​在​线​预​览​P​D​F​,​S​W​F​文​件​​​T​x​t​/​W​o​r​d​/​E​x​c​e​l​/​P​P​T​=​&​g​t​;​P​D​F​(​O​p​e​n​O​f​f​i​c​e​+​J​o​d​C​o​n​v​e​r​t​e​r​)​=​&​g​t​;​S​W​F​(​p​d​f​2​s​w​f​)​=​&​g​t​;​F​l​e​x​P​a​p​e​r

用手机扫此二维码:
以下结果由提供:
百科词条:
文字已复制
分享至: ×

java

实现访百度文库、道客巴巴、豆丁阅读

 

2013-01-14 

/

叶秋雨

 

前言:

 

 

最近在帮一个学校做培训系统,里面有一个模块是课程在线学习(笼统的讲

就是在线预览

word/ppt

之类的)

。由于学校要求文档是保密的,只能在线预览,

不提供下载、复制等操作。因此,我们想到了百度文库、道客巴巴、豆丁阅读等

实现方式。

前期在网上找了很多资料,

也请教了部分网友。

但总是觉得网上写的

不是那么的详细,

很多很多都是直接复制,

有些地方没有做必要的提示。

所以想

把自己的实现方式写下来,供大家参考。写的不好,请大家多多指教。

 

 

 

实现方式(来源于网络)

 

 

·

方式一

 

 

Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)=>SWF(pdf2swf)=>Flex

Paper 

 

·方式二

 

 

Txt/Word/Excel/PPT=>PDF(MSOffice+JACOB)=>SWF(pdf2swf)=>FlexPaper 

 

·方式三

 

 

Txt/Word/Excel/PPT=>SWF (

FlashPaper

)=> FlexPaper 

 

·方式四

 

 

Txt/Word/Excel/PPT=>SWF(print2flash)=> FlexPaper 

 

 

在此,

我选择了第一种方式,

选择其他三种方式的人,

欢迎百度

hi

我进行交

流。

 

 

工具支持:

 

OpenOffice

JodConverter

Swftools(pdf2swf)

FlexPaper 

 

至于下载地址,我本来想附上的(因为我前面写过几篇技术整合文档,都附

上了相应的工具下载地址)

,但我相信在搜索引擎这么强大的今天,身为技术人

员的你,

会有办法的,

所以本人以后的技术文档,

不再附上相应的工具下载地址,

请自行搜索下载,如实在解决不了,请联系我(文档最后会附上联系方式)

 

 

具体实现:

 

 

备注:

 

本人的开发环境(工具)为:

 

Microsoft Windows XP SP3 

eclipse3.7.0 

jdk1.6.0_29 

apache-tomcat-7.0.20 

 

第一步:

 

·下载工具

OpenOffice

JodConverter

Swftools(pdf2swf)

FlexPaper 

 

·安装

OpenOffice

,本人的安装路径为:

C:\Program Files\OpenOffice.org 3 

 

·

安装

Swftools(pdf2swf)

本人的安装路径为:

D:\Program 

Files\SWFTools 

 

第二步:

 

 

·打开

eclipse

,新建工程

readonline

 

 

·

解压

jodconverter-2.2.2.zip

把压缩包中

lib

目录下的

jar

包放到工程

WEB-INF/lib

中,如下图:

 

 

·在工程

readonline

下的

WebRoot

下新建

flexpaper

文件夹,然后把下载

FlexPaper_1.4.5_flash.zip

解压缩后的内容放到该文件夹中,如下图:

 

 

 

第三步:

 

·新建

servlet

包,然后在包下面新建

ConvertServlet

类,代码如下:

 

 

package

 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.OpenOfficeConnect

ion; 

import

 

com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeC

onnection; 

import

 

com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocument

Converter; 

 

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:/ 

apache-tomcat-7.0.20/webapps/readonline/swfFile/s.ppt"

); 

 

 

pdfFile

 = 

new

 File(

"G:/ 

apache-tomcat-7.0.20/webapps/readonline/swfFile/s.pdf"

); 

 

 

swfFile

 = 

new

 File(

"G:/ 

apache-tomcat-7.0.20/webapps/readonline/swfFile/s.swf"

); 

 

 

System.

out

.println(

"

第一步:生成文件对象,准备转换

"

); 

 

 

 

 

@Override

 

 

protected

 

void

 

doGet(HttpServletRequest 

request, 

HttpServletResponse 

response) 

 

 

 

throws

 ServletException, IOException { 

 

 

doPost(request, response); 

 

 

 

@Override

 

 

protected

 

void

 doPost(HttpServletRequest request, 

HttpServletResponse response) 

 

 

 

throws

 ServletException, IOException { 

 

 

//

转换成

pdf

文件

 

 

 

if

(

sourceFile

.exists()) { 

 

 

 

if

(!

pdfFile

.exists()) { 

 

 

 

 

OpenOfficeConnection connection = 

new

 

SocketOpenOfficeConnection(8100); 

 

 

 

 

try

 { 

 

 

 

 

 

connection.connect(); 

 

 

 

 

 

DocumentConverter converter = 

new

 

OpenOfficeDocumentConverter(connection);    

 

 

 

 

 

converter.convert(

sourceFile

pdfFile

); 

 

 

 

 

 

pdfFile

.createNewFile(); 

 

 

 

 

 

connection.disconnect();   

 

 

 

 

 

System.

out

.println(

"

第二步:转换为

PDF

格式

 

路径

"

 + 

pdfFile

.getPath()); 

 

 

 

 

catch

 (java.net.ConnectException e) { 

 

 

 

 

 

e.printStackTrace(); 

 

 

 

 

 

System.

out

.println(

"OpenOffice

服务未启动

"

); 

 

 

 

 

 

throw

 e; 

 

 

 

 

catch

 

(com.artofsolving.jodconverter.openoffice.connection.OpenOfficeExcept

ion e) { 

 

 

 

 

 

e.printStackTrace(); 

 

 

 

 

 

System.

out

.println(

"

读取文件失败

"

); 

 

 

 

 

 

throw

 e; 

 

 

 

 

catch

 (Exception e){ 

 

 

 

 

 

e.printStackTrace(); 

 

 

 

 

 

try

 { 

 

 

 

 

 

 

throw

 e; 

 

 

 

 

 

catch

 (Exception e1) { 

 

 

 

 

 

 

e1.printStackTrace(); 

 

 

 

 

 

 

 

 

 

 

 

 

else

 { 

 

 

 

 

System.

out

.println(

"

已转换为

PDF

,无需再次转换

"

); 

 

 

 

 

 

else

 { 

 

 

 

System.

out

.println(

"

要转换的文件不存在

"

); 

 

 

}  

 

 

//

转换成

swf

文件

 

 

 

r

 = Runtime.

getRuntime

(); 

 

 

if

(!

swfFile

.exists()){ 

 

 

 

if

(

pdfFile

.exists()) { 

 

 

 

 

try

 { 

 

 

 

 

 

//

注意路径

 

 

 

 

 

 

Process p = 

r

.exec(

"D:/Program 

Files/SWFTools/pdf2swf.exe "

 + 

pdfFile

.getPath() + 

" -o "

 + 

swfFile

.getPath() + 

" -T 9"

); 

 

 

 

 

 

p.waitFor(); 

 

 

 

 

 

swfFile

.createNewFile(); 

 

 

 

 

 

System.

out

.println(

"

第三步:转换为

SWF

格式

 

路径:

"

 + 

swfFile

.getPath()); 

 

 

 

 

 

System.

out

.println(

"

si

步:转换为

SWF

格式

mingcheng

"

 

swfFile

.getName()); 

 

 

 

 

 

if

(

pdfFile

.exists()) { 

 

 

 

 

 

 

pdfFile

.delete(); 

 

 

 

 

 

1234567890ABCDEFGHIJKLMNabcdefghijklmn!@#$%^&&*()_+.一三五七九贰肆陆扒拾,。青玉案元夕东风夜放花千树更吹落星如雨宝马雕车香满路凤箫声动玉壶光转一夜鱼龙舞蛾儿雪柳黄金缕笑语盈盈暗香去众里寻他千百度暮然回首那人却在灯火阑珊处
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值