`
Spring_g
  • 浏览: 64068 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java实现doc向swf格式的转换

阅读更多
   实现doc,ppt,txt等格式文件向可以在flexPaper中预览的翻页动画swf的格式转换,一般需要先把doc,ppt,txt等格式的文件先转换为pdf,然后再由pdf转换为swf才能实现在flexpaper中进行预览,实现类似百度豆丁的预览效果,其转换过程需要电脑安装 openoffice,swfTools软件,通过java代码:实现文档格式的转换,下面我将我在一个分布式项目中的一个文档预览部分的思路与大家共享:

1.安装openoffice,swfTools软件,配置好java代码的运行环境。
2.启动openOffice服务:
    ①、进入openoffice安装目录
         cd opeonofiice的安装路径/program
   ②、启动端口监听
          soffice -headless -accept="socket,host=127.0.0.1,port=8080;urp;" -nofirststartwizard
    ③、查看启动是否成功,存在8080端口即启动成功   netstat -an

3.在eclipse端运行以下java代码,实现文档的格式转换,并保存到
  
 

   JodDemo.java:
   public class JodDemo {   
    public static int convertPDF2SWF(String sourcePath, String destPath, String fileName) throws IOException {   
        //目标路径不存在则建立目标路径   
        File dest = new File(destPath);   
        if (!dest.exists()) dest.mkdirs();   
           
        //源文件不存在则返回   
        File source = new File(sourcePath);   
        if (!source.exists()) return 0;   
           
        //调用pdf2swf命令进行转换   
        String command = "D:\\SWFTools\\pdf2swf.exe" + " -o \"" + destPath + "\\" + fileName + "\"  -s languagedir=D:\\xpdf\\xpdf-chinese-simplified -s flashversion=9 \"" + sourcePath + "\"";
           
        Process pro = Runtime.getRuntime().exec(command);   
           
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(pro.getInputStream()));   
        while (bufferedReader.readLine() != null);    
           
        try {   
            pro.waitFor();   
        } catch (InterruptedException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
           
        return pro.exitValue();   
           
    }   
       
    public static void main(String []args) throws IOException {   
    	String a = "世界各地国庆节";
        String sourcePath = "d:\\"+a+".pdf";   
        String destPath = "d:\\swf\\";   
        String fileName = a+".swf";   
        JodDemo.convertPDF2SWF(sourcePath, destPath, fileName);   
    }   
}
Office2Pdf.java
public class Office2Pdf {

	public static void main(String[] args) throws Exception {
		String a = "世界各地国庆节";
		off2Pdf(a);
	}

	public static void off2Pdf(String fileName) {
		File inputFile = new File("d:/" + fileName + ".ppt");

		File outputFile = new File("d:/" + fileName + ".pdf");

		// connect to an OpenOffice.org instance running on port 8100

		OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);

		try {
			connection.connect();
		} catch (ConnectException e) {

			e.printStackTrace();
		}

		// convert

		DocumentConverter converter = new OpenOfficeDocumentConverter(
				connection);

		converter.convert(inputFile, outputFile);

		connection.disconnect();

	}

}

Pdf2Swf.java
public class Pdf2Swf {  
    //实现由pdf格式到swf格式的转换 
    public int convertPDF2SWF(String sourcePath, String destPath,   
            String fileName) throws IOException {   
        // 目标路径不存在则建立目标路径   
        File dest = new File(destPath);   
        if (!dest.exists()) {   
            dest.mkdirs();   
        }   
  
        // 源文件不存在则返回   
        File source = new File(sourcePath);   
        if (!source.exists()) {   
            return 0;   
        }   
    
        String[] envp = new String[1];   
        envp[0] = "PATH=D:\\SWFTools\\";   
        String command = "pdf2swf -z -s flashversion=9 \"" + sourcePath   
                + "\" -o \"" + destPath + fileName + "\"";   
  
        Process pro = Runtime.getRuntime().exec(command, envp);   
        // System.out.println(command);   
        BufferedReader bufferedReader = new BufferedReader(   
                new InputStreamReader(pro.getInputStream()));   
        while (bufferedReader.readLine() != null) {   
            String text = bufferedReader.readLine();   
            System.out.println(text);   
        }   
        try {   
            pro.waitFor();   
        } catch (InterruptedException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
        // 然后在套播放器   
          command = "swfcombine -z -X 720 -Y 540 \"D:/SWFTools/swfs/rfxview.swf\" viewport=\""  
                + destPath + fileName + "\" -o \"" + destPath + fileName + "\"";   
        pro = Runtime.getRuntime().exec(command, envp);   
        System.out.println(command);   
        bufferedReader = new BufferedReader(new InputStreamReader(pro   
                .getInputStream()));   
        while (bufferedReader.readLine() != null) {   
            String text = bufferedReader.readLine();   
            System.out.println(text);   
        }   
        try {   
            pro.waitFor();   
        } catch (InterruptedException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
        return pro.exitValue();   
  
    }   
  
    public static void main(String[] args) {   
        String sourcePath = "d:/document.pdf";   
        String destPath = "d:/";   
        String fileName = "document.swf";   
        try {   
            System.out.println(new Pdf2Swf().convertPDF2SWF(sourcePath,   
                    destPath, fileName));   
        } catch (IOException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }   
}  


   

代码已经在MyEclipse上运行测试无误,可以实现将本地文件实现格式转换,
4.注意:注意代码中加载各个软件的本地路径要正确,防止加载不到软件而报错
         在代码运行前要启动openoffice服务,否则不能完成文件格式的转换
4
0
分享到:
评论
3 楼 Spring_g 2012-09-04  
endual 写道
swfTools软件
我的空间是jsp虚拟空间,不能安装这个软件。请问还有其他的解决方案么

当时做这个项目只是参加比赛,其他实现方法没有考虑,不好意思
2 楼 endual 2012-08-15  
swfTools软件
我的空间是jsp虚拟空间,不能安装这个软件。请问还有其他的解决方案么
1 楼 Spring_g 2012-07-10  
想要完成文件的上传以及格式的自动转换需要在项目中自己实现具体的业务逻辑,本代码只是核心功能实现技术。

相关推荐

    java实现浏览器在线预览offic(doc、xls、ppt)和pdf文件

    java实现浏览器在线预览offic(doc、xls、ppt)和pdf文件,本人将例子集成到项目中,已成功。 技术原理:将文件先转换成pdf文件,再将pdf文件转换成swf文件,最后显示在浏览器上。 资源描述:本资源包括swftools...

    doc pdf转换成swf

    ### IT知识点:doc/pdf转换至SWF的Java实现方法 #### 核心概念与技术背景 在探讨如何将doc或pdf文件转换为SWF格式时,我们首先需要理解几个核心概念和技术背景。SWF(Shockwave Flash)是一种由Adobe Systems开发...

    格式转换__txt,doc,JPG等转为SWF或pdf转Flash

    ### 格式转换技术解析:将txt, doc, JPG等转为SWF或PDF转Flash #### 技术背景 随着互联网技术的发展,文档和图像的在线分享需求日益增加,尤其是像百度文库和豆丁网这样的平台,它们能够将各种格式的文档,包括...

    OpenOffice 实现JPG.DOC转PDF转SWF在线预览(Java版)

    总结,通过OpenOffice和相关的Java库,我们可以实现Java环境下的文件格式转换,包括JPG图片和DOC文档转PDF,以及PDF转SWF。这些操作对于构建在线文档预览系统至关重要。同时,确保正确配置和安装相关软件、字体以及...

    Java Aspose DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF互相转换

    "Java Aspose"是一个强大的库,它提供了丰富的功能,能够帮助开发者实现DOC, DOCX, OOXML, RTF, HTML, OpenDocument, PDF, EPUB, XPS, SWF等多种格式之间的转换。本篇文章将详细介绍如何利用Java Aspose进行文档格式...

    java+flexpaper+swftools office转为swf

    Java结合FlexPaper、SWFTools和OpenOffice是一个常见的解决方案,用于将Microsoft Office文档转换为SWF格式,以便在Web上以交互式的方式展示。这个过程涉及到多个步骤和技术,以下是详细的解释: 1. **Java**: Java...

    java代码将word转pdf,pdf转swf 操作文档及代码

    5. **PDF到SWF转换**:SWF(Small Web Format)是Adobe Flash Player支持的文件格式,常用于网络上的动画和交互式内容。要将PDF转换为SWF,我们可以使用SwfTools,这是一个开源的命令行工具集,其中包括pdf2swf工具...

    java将office文档pdf文档转换成swf文件在线预览

    通过上述步骤,我们可以实现一个完整的Java程序,用于将Office文档和PDF文档转换为SWF格式,并实现在线预览。整个过程涉及到了多个关键技术点,包括OpenOffice.org的安装与配置、JODConverter的使用、SWFTools的...

    Java实现文档在线阅读

    本文将详细介绍如何使用Java技术实现文档的在线阅读功能,包括从常见的文档格式(如.doc、.docx)转换为PDF,进而转换为SWF格式,最后通过FlexPaper组件进行展示的过程。 #### 技术架构与流程 1. **文档格式转换**...

    Office文档转换预览解决方案(JAVA)

    本解决方案主要探讨如何通过Java技术实现这一功能,同时涉及文档转换为PDF以及SWF格式,以便进行预览。 首先,我们需要了解的是,由于Office文档格式的复杂性,直接在浏览器中打开可能会导致兼容性问题。因此,通常...

    java实现类似文库功能(linux).doc

    3. 安装JodConverter,通过Java调用其API进行文档转换,例如,将DOC转换为PDF。 4. 安装Swftools,利用pdf2swf工具将PDF转换为SWF格式,这一步对于在线预览至关重要。 5. 配置FlexPaper,将生成的SWF文件上传至...

    java 将office文件转换为pdf格式的文件

    Java作为一种强大的编程语言,提供了丰富的库和工具来实现各种文件格式之间的转换,包括将Office文件(如Word、Excel、PowerPoint)转换为PDF格式。这个过程涉及到的技术点主要包括文件读取、内容解析以及格式转换。...

    java实现类似百度文库功能

    在Java中实现类似百度文库的功能,主要是为了提供在线阅读文档的能力,支持doc和pdf格式。这一过程涉及到多个步骤,包括文件的转换和展示。下面将详细介绍这些关键知识点。 首先,我们需要处理的是文件的转换。在...

    java将office文档pdf文档转换成swf文件在线预览.doc

    java将office文档pdf文档转换成swf文件在线预览

    java pdf加水印后生成swf

    4. FlexPaper SDK:Adobe FlexPaper是一个开源的PDF和文档查看器,它可以将PDF、DOC、XLS等格式的文档转换为SWF,以便在网页上嵌入和浏览。使用FlexPaper SDK,我们可以调用相关的Java方法,如`FlexPaperConverter....

    java实现在线文档预览(项目+相关软件)

    FlexPaper是一款开源的文档查看器,它可以将PDF和图像文件转换为Flash SWF格式,以实现流畅的在线预览体验。用户在浏览器中加载预览页面时,FlexPaper会显示这些SWF文件。swfTools则是一组命令行工具,主要用于PDF到...

    java实现在线预览demo

    本篇文章将详细讲解如何使用Java实现在线预览doc、txt、ppt、xls等多种类型的文档,并重点介绍其中涉及的关键技术——LibreOffice。 首先,我们要理解Java实现在线预览的基本原理。通常,这涉及到将非HTML格式的...

    Java实现文档在线阅读.docx

    在Java平台上实现文档在线阅读,通常需要处理各种不同的文件格式,如.doc或.docx。为了实现这一功能,我们可以采用一种常见的方法,即首先将这些文件转换为通用的PDF格式,然后再将其转化为SWF(ShockWave Flash)...

    Aspose转换WORD,EXCEL,PPT,TXT成PDF文件,swftools转成swf,实现FlexPaper在线浏览

    本话题主要涉及使用Aspose和Swftools这两个工具来处理不同类型的文件,并将其转换为PDF或SWF格式,以便于在线浏览。以下是关于这些工具及其功能的详细解释: Aspose是一个强大的文件处理组件库,它提供了多种编程...

Global site tag (gtag.js) - Google Analytics