java x86 模拟,Java模拟实现百度文档在线浏览
这个思路是我参考网上而来,代码是我实现。 采用Apache下面的OpenOffice将资源文件转化为pdf文件,然后将pdf文件转化为swf文件,用FlexPaper浏览。
ok,
A、下载OpenOffice (转换资源文件)
B、下载JodConverter(调用OpenOffice)
C、下载Swftools(Pdf2Swf)
D、下载 FlexPaper(浏览swf文件)
这里我已经全部下载好了,大家只需要下载:
http://download.csdn.net/detail/u010506940/8418553
下载之后,先别急安装,请看完这篇博文
1、先看我们的MyEclipse工程结构
2、将我们下载下来的
解压之后将所有的jar文件拷贝到baiduDoc的lib下面去
3、 在WebRoot下面新建文件夹
,将解压后的
全部拷贝到FlexPaper中去
4、新建BaiDuServlet.java文件
package com.baidu.util;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ConnectException;
import javax.imageio.stream.FileImageInputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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;
/**
* @Author:NuoYan
* @Date:2015-2-2 下午2:24:58
* TODO: 1、第一步,首先获取到需要查看的文件
* 2、第二部,将获取的文件(doc,xls,txt,ppt,03/07版本转化为PDF),这一步需要调用OpenOffice
* 3、第三部,将资源文件转换好的PDF文件转换为swf文件,使用FlexPaperViewer.swf进行浏览查看
*/
public class BaiDuServlet extends HttpServlet {
private File sourceFile;// 要转化的源文件
private File pdfFile;// pdf中间文件对象
private File swfFile;// swf目标文件对象
private String filePath;// 用来保存文件路径
private String fileName;// 不包括后缀名的文件名
public File getSourceFile() {
return sourceFile;
}
public void setSourceFile(File sourceFile) {
this.sourceFile = sourceFile;
}
public File getPdfFile() {
return pdfFile;
}
public void setPdfFile(File pdfFile) {
this.pdfFile = pdfFile;
}
public File getSwfFile() {
return swfFile;
}
public void setSwfFile(File swfFile) {
this.swfFile = swfFile;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String saveFileName = request.getParameter("savFile");
System.out.println(saveFileName);
String webPath = request.getRealPath("/");
filePath = webPath + "reader\\" + saveFileName;
fileName = filePath.substring(0, filePath.lastIndexOf("."));
// 创建三个文件对象
sourceFile = new File(filePath);
pdfFile = new File(fileName + ".pdf");
swfFile = new File(fileName + ".swf");
System.out.println(pdfFile);
System.out.println(swfFile);
// 1、将源文件转化为pdf格式文件
src2pdf();
try {
// 2、将pdf文件转化为swf文件
pdf2swf();
} catch (Exception e) {
e.printStackTrace();
}
// 将转化好的文件绑定到session上去
request.getSession().setAttribute("swfName", swfFile.getName());
System.out.println(swfFile.getName());
// 重定向到预览页面
response.sendRedirect(request.getContextPath() + "/reader/baseFile.jsp");
}
/**
* @Author:NuoYan
* @Date:2015-2-2 下午2:28:22 TODO://源文件转化为PDF文件
*/
private void src2pdf() {
if (sourceFile.exists()) {
// 如果不存在,需要转份为PDF文件
if (!pdfFile.exists()) {
// 启用OpenOffice提供的转化服务
OpenOfficeConnection conn = new SocketOpenOfficeConnection(8100);
// 连接OpenOffice服务器
try {
conn.connect();
// 建立文件转换器对象
DocumentConverter converter = new OpenOfficeDocumentConverter(
conn);
converter.convert(sourceFile, pdfFile);
// 断开链接
conn.disconnect();
System.out.println("转换成功");
} catch (ConnectException e) {
e.printStackTrace();
}
} else {
System.out.println("已经存在PDF文件,不需要在转换!!");
}
} else {
System.out.println("文件路径不存在!!!");
}
}
/**
* @Author:NuoYan
* @Date:2015-2-2 下午2:28:32
* @throws Exception
* TODO:PDF转化为SWF文件
*/
private void pdf2swf() throws Exception {
if (!swfFile.exists()) {
if (pdfFile.exists()) {
String command = "C:\\Pdf2swf\\pdf2swf.exe "
+ pdfFile.getPath() + " -o " + swfFile.getPath()
+ " -T 9";
System.out.println("转换命令:" + command);
// Java调用外部命令,执行pdf转化为swf
Runtime r = Runtime.getRuntime();
Process p = r.exec(command);
System.out.println(loadStream(p.getInputStream()));
System.out.println("swf文件转份成功!!!");
System.out.println(swfFile.getPath());
} else {
System.out.println("不存在PDF文件");
}
}
}
private static String loadStream(InputStream in) throws Exception {
int len = 0;
in = new BufferedInputStream(in);
StringBuffer buffer = new StringBuffer();
while ((len = in.read()) != -1) {
buffer.append((char) len);
}
return buffer.toString();
}
}
5、修改index.jsp
百度文库在线预览
在线预览
6、编写baseFile.jsp文件
pageEncoding="UTF-8"%>
在线阅读
html,body{height: 100%;}
body {
margin: 0;padding: 0;overflow: auto;
}
#flashContent { display:none; }
var fp = new FlexPaperViewer(
'../FlexPaper/FlexPaperViewer',
'viewerPlaceHolder', { config : {
SwfFile : escape('../reader/'),
Scale : 0.6,
ZoomTransition : 'easeOut',
ZoomTime : 0.5,
ZoomInterval : 0.2,
FitPageOnLoad : true,
FitWidthOnLoad : false,
FullScreenAsMaxWindow : false,
ProgressiveLoading : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
SearchMatchAll : false,
InitViewMode : 'Portrait',
PrintPaperAsBitmap : false,
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
localeChain: 'zh_CN'
}});
注意baseFile.jsp中的代码,不会你可以参考这里
/**************************************************************************************/
7、注意事项
1、这个
文件安装路径不要太深,免得Java调用外部命令,不能执行,我这里是C盘下的Pdf2swf文件夹
2、
2.1、红色1标记路径不能错,我就犯这个错误了
2.2、红色标记2还可以写http://127.0.0.1:8080/baiduDoc/reader/...
3、启动OpenOffice的命令,不是直接双击启动的。 官网启动方式如下:
安装完openoffice后,进入命令界面->cd 进入安装目录,如下:
1.安装服务
cd C:\Program Files (x86)\OpenOffice4\program
这一步你可以看你的OpenOffice安装哪里
执行
soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
2.查看是否安装成功
2.1查看端口对应的pid
netstat -ano|findstr "8100"
2.2查看pid对应的服务程序名
tasklist|findstr "ipd值"
效果图示:
有问题,请留言来找我吧!ok?不要闲我的资源贵哦!哈哈~
java x86 模拟,Java模拟实现百度文档在线浏览相关推荐
- java模拟器百度_Java模拟实现百度文档在线浏览
这个思路是我参考网上而来,代码是我实现. 采用Apache下面的OpenOffice将资源文件转化为pdf文件,然后将pdf文件转化为swf文件,用FlexPaper浏览. ok, A.下载OpenO ...
- PDF文档在线浏览防下载加密方案
PDF文档在线浏览防下载加密方案 (在线浏览防下载,文件不落地.禁止打印.禁止另存.禁止文字复制.动态添加防截图水印) 本方案针对PDF文档在线浏览的版权保护. 其突出特点表现在: 在线浏览防下载,文 ...
- php实现word文档在线浏览功能,配置安装手记
欢迎加入php架构师之旅 群:410028331(招纳贤人-大师中)方便技术的交流 一般类似oa或者crm等管理系统可能都会遇到需要再线查看word文档的功能,类似百度文库. 记得去年小组中的一个成员 ...
- 仿百度,豆丁文档在线浏览
将上传的Word, Excel, txt, PPT, Pdf等文档转换成 .SWF格式 如图: 核心代码: //文件转换 public void ConvertToSWF(string oldFil ...
- ASP.NET使用点聚WebOffice实现文档在线浏览
前段时间应导师要求,把他的那一堆堆word文档分类整理,并在此基础上做一个基于B/S的文件管理系统,并能实现查找浏览,文件管理系统问题不大,问题是怎把那一堆堆word文档给展示出来,上千个word文档 ...
- linux 源码 在线浏览,Linux下实现文档在线浏览
此次Linux下实现在线浏览功能已投入生产环境,生产环境是Centos6.4. 1.下载jodconverter压缩包,将相应jar包添加到工程目录下. 在openoffice下的RPMS目录下执行r ...
- 仿百度文档豆丁在线阅读文档
仿百度文档在线阅读文档 最近在做一个在线培训的项目有一个功能需要在线阅服务器上的文档,自己想做一个类似百度问库一样的在线阅读器,找了很多资料最后找到一个很好决绝方案,很多牛人都在博客园里发表了些了一些 ...
- 文档在线编辑软件dzzoffice安装
1. 准备环境 dzzoffice是php的web服务,需要php的环境和php的mysql连接模块,还有一个web服务器如apache或nginx,为了快速搭建好php环境,我选择了xampp来快速 ...
- java 豆丁,Java实现类似豆丁百度文科的文档在线阅读
Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用openoffice转换成pdf再用swftools转为swf.再用flexpaper组件显示swf. 此过 ...
最新文章
- MariaDB Window Functions窗口函数分组取TOP N记录
- 邮件系统三功能 建金字塔防护体系
- 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task4模型建立
- 高效的企业测试-结论(6/6)
- [js] 说说防止重复发送ajax请求的方法有哪些?各自有什么优缺点?
- 【HDU - 1326】Box of Bricks(模拟水题)
- 10个类手写实现 RPC 通信框架原理
- videojs 动态加载视频
- a.使用new关键字产生对象会调用构造方法_七夕面向对象编程,你知道Java有哪些创建对象的方式吗?...
- Java实现MD5加盐加密算法
- Kmeans算法实现
- 程序员如何实现财富自由?
- Latex数学用法总结
- ListFields
- 工业网络心脏—WiFi 6工业路由器方案IPQ5018方案介绍与应用分析功能特点
- 计算机科学与技术8G够,高手们.请问8G物理内存设置多少虚拟内存适合
- [Pandas] 分组比例计算求和
- 懒人HTML5笔记-1
- 贴吧楼中楼回复机器人_如何在贴吧引流?贴吧引流都有什么玩法,以及怎么操作...
- iOS Charts裤绘制蜡烛图