思路:
1.利用OpenOffice将文档型文件(doc,docx,xls,xlsx)转为化pdf文件;
2.利用SWFTools将pdf文件转为swf;
3.利用FlexPaper播放swf.
一、利用OpenOffice将文档型文件(doc,docx,xls,xlsx)转为化pdf文件
安装OpenOffice,并启动服务
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
执行telnet 127.0.0.1 8100,如果出现乱码则表示启动成功.
PS:当启动OpenOffice后,无法监听到8100端口时,请将-accpet里的参数host改为0.0.0.0尝试.
转化代码:
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
try {
connection.connect();
} catch(Exception e) {
e.printStackTrace();
request.setAttribute("errorMsg", "没有安装OpenOffice,不能预览!");
return;
}
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(tempFile, outputFile);
connection.disconnect();
注意:tempFile是以doc,docx,xls或xlsx为文件后缀名的文件,outputFile为以pdf后缀的文件.
现在,就把pdf文件准备好了。
二、利用SWFTools将pdf文件转为swf
public static int convertPDF2SWF(String pdfName, String swfName) throws IOException {
//创建swf文件
File dest = new File(swfName);
//if (!dest.exists()) dest.mkdirs();
//源文件不存在则返回
File source = new File(pdfName);
if(!source.exists())
return 0;
//调用pdf2swf命令进行转换
// String command = "pdf2swf.exe" + " -o \"" + destPath + "\\" + fileName + "\" <span style="color: rgb(255, 0, 0);">-s languagedir=D:\\xpdf\\xpdf-chinese-simplified</span> -s flashversion=9 \"" + sourcePath + "\"";
Map<String, String> envMap = System.getenv();
Object home = envMap.get("PDF2SWF_HOME");
String path = null;
if(home != null) {
path = home.toString();
}
String command = path + File.separator + "pdf2swf.exe " + pdfName + " -o " + swfName + " " + "-T 9 -f";
Process pro = Runtime.getRuntime().exec(command);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(pro.getInputStream()));
while(bufferedReader.readLine() != null)
;
try {
pro.waitFor();
} catch(InterruptedException e) {
e.printStackTrace();
}
return pro.exitValue();
}
注意,这儿使用了一个系统变量PDF2SWF_HOME,在windows下,安装好SWFTools后,做如下配置:“我的电脑”-右键“属性”-“高级”-“环境变量”,在“系统变量”点击“新建”,“变量名”为“PDF2SWF_HOME”,变量值为swftools的安装文件夹,如“D:\Program Files (x86)\SWFTools”,重新打开cmd窗口。
现在,swf文件也准备好了
三、利用FlexPaper播放swf
<body>
<a id="viewerPlaceHolder" style="width:920px;height:700px;display:block"></a>
<script type="text/javascript">
var fp = new FlexPaperViewer(
'<%=request.getContextPath()%>/swf/FlexPaperViewer',
'viewerPlaceHolder', { config : {
SwfFile : '<%=request.getContextPath()%>/htmlTemp/${fileName}.swf',
Scale : 0.6,
ZoomTransition : 'easeOut',
ZoomTime : 0.5,
ZoomInterval : 0.2,
FitPageOnLoad : true,
FitWidthOnLoad : true,
ProgressiveLoading : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
SearchMatchAll : false,
InitViewMode : 'SinglePage',
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
PrintEnable:false,
localeChain: 'en_US'
}});
</script>
</body>
最后,完成了.
小结:利用OpenOffice可以将文档型的文件转为了HTML、PDF等格式,但是,在转HTML时,效果不是很理想,主要是格式的问题.如果需要实现类似于163邮箱或QQ邮箱文档预览的功能也是可以的.
FlexPaper基本版是免费的,但有收费的版本,如果是企业级的应用,请注意.不过做个类似的东西也不难.
OpenOffice和SWFTOOL都是支持多平台的,无论windows或linux,都适用.
相关包:
引入jodconverter-2.2.2包,并引用相关其他包。
分享到:
相关推荐
总的来说,通过OpenOffice的文档解析能力,SwfTools的SWF转换功能,以及FlexPaper的前端展示技术,我们可以构建一个类似百度文库的在线阅读平台,让用户在网页上便捷、舒适地浏览和预览各种类型的文档。这样的系统...
本文档详细介绍了如何利用Java、FlexPaper和swfTools等技术构建一个类似百度文库的文档在线预览系统。通过OpenOffice进行文档格式转换、swfTools生成SWF文件以及FlexPaper实现在线播放,再加上JODConverter增强文档...
Java-FlexPaper-swfTools-仿百度文库文档在线预览系统设计与实现 本文主要介绍了使用 Java、FlexPaper 和 swfTools 实现在线文档预览系统的设计和实现。该系统可以将上传的文档(包括 ppt、word、excel、txt 等)...
根据提供的文档标题、描述、标签以及部分内容,本文将详细介绍如何使用Java、FlexPaper及swfTools来设计并实现一个类似于百度文库的文档在线预览系统。本系统旨在让用户能够在线预览各种类型的文档,无需下载或安装...
在他人基础上实现java实现仿百度文库预览文档功能, Txt/Word/Excel/PPT => PDF(OpenOffice+JodConverter) => SWF(pdf2swf)=>FlexPaper浏览。 包含了源代码,文档,部分较小文件的安装文件,部分较大文件的下载...
"Java实现百度文库文档在线预览系统设计与实现" 本文档介绍了如何使用Java实现百度文库文档在线预览系统的设计与实现。该系统能够将上传到管理系统的文档(包括ppt、word、excel、txt等)转换成swf文件,并实现在线...
本项目旨在创建一个类似于百度文库的在线预览系统,用户可以上传各种类型的文档,然后在浏览器中直接预览。以下是实现这一功能涉及的关键知识点: 1. **OpenOffice**: OpenOffice 是一套开源的办公软件套件,它包含...
根据给定的文件信息,以下是对“java实现类似百度文库预览pdf功能”的详细解析与相关知识点: ### Java实现在线预览PDF功能的核心技术与流程 #### 转换方式概览 实现类似百度文库在线预览文档功能,核心在于将多种...
在本文档中,作者介绍了一个基于Java技术的文档在线预览系统的设计与实现,该系统模仿了百度文库的功能,允许用户预览但不下载上传的文档。主要知识点包括: 1. **文档转换**: - 首先,利用开源软件OpenOffice将...
百度文库的在线预览系统是一种技术实现,允许用户在不下载文档的情况下预览各种类型的文件,如PPT、Word、Excel和TXT。这种系统通常通过将文档转换成Flash支持的SWF格式来实现。以下是对这一系统设计与实现的详细...
本文将详细介绍如何使用Java结合FlexPaper和swfTools技术来实现一个类似百度文库的文档在线预览系统。该系统的主要功能是允许用户在线浏览各种类型的文档(如PPT、Word、Excel和TXT等),但禁止下载文档本身,从而...
### 文档在线预览解决方案(仿百度文库) #### 总体思路 文档在线预览是一种常见的需求,尤其是在网络分享和协作场景中。百度文库、豆丁网等平台的成功应用,展示了文档在线预览的强大功能。实现文档在线预览的...
综上所述,Java实现文件在线预览的关键在于使用OpenOffice和JodConverter进行文件格式转换,通过Swftools的`pdf2swf`工具生成SWF,最后借助FlexPaper提供良好的用户体验。在实际开发中,还需要考虑性能优化、错误...
经本人测试,在线预览效果还不错 真正实现在线预览 PDF SWF flexpaper 文库 在线预览 文件上传转pdf再转swf然后实现在线预览PDF,SWF文件 Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)=>SWF(pdf2swf)=>...
总的来说,实现仿百度文库的Demo需要整合OpenOffice进行文档格式转换,利用SWFTools进行PDF到SWF的转换,然后通过FlexPaper展示文档。这个过程涉及到服务器端的处理、前端的展示以及可能的后端接口设计。每个环节都...
Java程序员可以利用OpenOffice和JodConverter进行文件格式转换,通过Swftools将PDF转为SWF,最后使用FlexPaper在网页上呈现预览效果。整个过程中还需要注意工具的选择、依赖库的管理以及Web服务端的处理逻辑。
总结起来,"java在线预览仿百度文库源代码"涉及到的技术栈包括Java后端开发、OpenOffice文档处理、swfTools转换工具、FlexPaper文档查看器,以及前端的JavaScript交互。这些技术的结合,实现了高效、安全的文档在线...