`
独爱秋
  • 浏览: 12557 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
文章分类
社区版块
存档分类
最新评论

利用OpenOffice和FlexPaper创建类百度文库的预览

阅读更多
思路:
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包,并引用相关其他包。
分享到:
评论

相关推荐

    openoffcie+swftools+flexpaper实现类似百度文库的阅读效果

    总的来说,通过OpenOffice的文档解析能力,SwfTools的SWF转换功能,以及FlexPaper的前端展示技术,我们可以构建一个类似百度文库的在线阅读平台,让用户在网页上便捷、舒适地浏览和预览各种类型的文档。这样的系统...

    Java+FlexPaper+swfTools_仿百度文库文档在线预览系统设计与实现

    本文档详细介绍了如何利用Java、FlexPaper和swfTools等技术构建一个类似百度文库的文档在线预览系统。通过OpenOffice进行文档格式转换、swfTools生成SWF文件以及FlexPaper实现在线播放,再加上JODConverter增强文档...

    Java-FlexPaper-swfTools-仿百度文库文档在线预览系统设计与实现.docx

    Java-FlexPaper-swfTools-仿百度文库文档在线预览系统设计与实现 本文主要介绍了使用 Java、FlexPaper 和 swfTools 实现在线文档预览系统的设计和实现。该系统可以将上传的文档(包括 ppt、word、excel、txt 等)...

    Java+FlexPaper+swfTools仿百度文库文档在线预览系统设计与实现.docx

    根据提供的文档标题、描述、标签以及部分内容,本文将详细介绍如何使用Java、FlexPaper及swfTools来设计并实现一个类似于百度文库的文档在线预览系统。本系统旨在让用户能够在线预览各种类型的文档,无需下载或安装...

    java实现仿百度文库预览文档功能

    在他人基础上实现java实现仿百度文库预览文档功能, Txt/Word/Excel/PPT =&gt; PDF(OpenOffice+JodConverter) =&gt; SWF(pdf2swf)=&gt;FlexPaper浏览。 包含了源代码,文档,部分较小文件的安装文件,部分较大文件的下载...

    Java实现百度文库文档在线预览系统设计与实现

    "Java实现百度文库文档在线预览系统设计与实现" 本文档介绍了如何使用Java实现百度文库文档在线预览系统的设计与实现。该系统能够将上传到管理系统的文档(包括ppt、word、excel、txt等)转换成swf文件,并实现在线...

    实现文档的在线预览(与百度文库类似)

    本项目旨在创建一个类似于百度文库的在线预览系统,用户可以上传各种类型的文档,然后在浏览器中直接预览。以下是实现这一功能涉及的关键知识点: 1. **OpenOffice**: OpenOffice 是一套开源的办公软件套件,它包含...

    java实现类似百度文库预览pdf功能

    根据给定的文件信息,以下是对“java实现类似百度文库预览pdf功能”的详细解析与相关知识点: ### Java实现在线预览PDF功能的核心技术与流程 #### 转换方式概览 实现类似百度文库在线预览文档功能,核心在于将多种...

    java-flexpaper-swftools仿百度文库文档在线预览系统设计与实现.doc

    在本文档中,作者介绍了一个基于Java技术的文档在线预览系统的设计与实现,该系统模仿了百度文库的功能,允许用户预览但不下载上传的文档。主要知识点包括: 1. **文档转换**: - 首先,利用开源软件OpenOffice将...

    百度文库文档在线预览系统设计与实现

    百度文库的在线预览系统是一种技术实现,允许用户在不下载文档的情况下预览各种类型的文件,如PPT、Word、Excel和TXT。这种系统通常通过将文档转换成Flash支持的SWF格式来实现。以下是对这一系统设计与实现的详细...

    Java+FlexPaper+swfTools仿百度文库文档在线预览系统设计与实现.pdf

    本文将详细介绍如何使用Java结合FlexPaper和swfTools技术来实现一个类似百度文库的文档在线预览系统。该系统的主要功能是允许用户在线浏览各种类型的文档(如PPT、Word、Excel和TXT等),但禁止下载文档本身,从而...

    文档在线预览解决方案(仿百度文库)

    ### 文档在线预览解决方案(仿百度文库) #### 总体思路 文档在线预览是一种常见的需求,尤其是在网络分享和协作场景中。百度文库、豆丁网等平台的成功应用,展示了文档在线预览的强大功能。实现文档在线预览的...

    Java仿百度文库,实现文件在线预览

    综上所述,Java实现文件在线预览的关键在于使用OpenOffice和JodConverter进行文件格式转换,通过Swftools的`pdf2swf`工具生成SWF,最后借助FlexPaper提供良好的用户体验。在实际开发中,还需要考虑性能优化、错误...

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

    经本人测试,在线预览效果还不错 真正实现在线预览 PDF SWF flexpaper 文库 在线预览 文件上传转pdf再转swf然后实现在线预览PDF,SWF文件 Txt/Word/Excel/PPT=&gt;PDF(OpenOffice+JodConverter)=&gt;SWF(pdf2swf)=&gt;...

    实现仿百度文库demo

    总的来说,实现仿百度文库的Demo需要整合OpenOffice进行文档格式转换,利用SWFTools进行PDF到SWF的转换,然后通过FlexPaper展示文档。这个过程涉及到服务器端的处理、前端的展示以及可能的后端接口设计。每个环节都...

    java实现类似百度文库预览pdf功能.pdf

    Java程序员可以利用OpenOffice和JodConverter进行文件格式转换,通过Swftools将PDF转为SWF,最后使用FlexPaper在网页上呈现预览效果。整个过程中还需要注意工具的选择、依赖库的管理以及Web服务端的处理逻辑。

    java在线预览仿百度文库源代码

    总结起来,"java在线预览仿百度文库源代码"涉及到的技术栈包括Java后端开发、OpenOffice文档处理、swfTools转换工具、FlexPaper文档查看器,以及前端的JavaScript交互。这些技术的结合,实现了高效、安全的文档在线...

Global site tag (gtag.js) - Google Analytics