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

文档展示:使用OpenOffice转换文档为HTML

阅读更多
上接  文档展示:使用OpenOffice转换文档为PDF
http://zhuyufufu.iteye.com/admin/blogs/2009827

文档展示:PDFRender 将PDF转换为图片
http://zhuyufufu.iteye.com/admin/blogs/2012236

将文档转换为HTML通过页面直接展示文档是一种非常好的思路,下面就来实现它

上代码

package com.zas.openoffice.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ConnectException;
import java.text.SimpleDateFormat;
import java.util.Date;

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;

public class Doc2HtmlUtil {
	static String soffice_host = "127.0.0.1";
	static String soffice_port = "8100";

	/**
	 * 转换文件
	 * @param fromFileInputStream
	 * @throws FileNotFoundException 
	 * */
	public static String doc2Html(String inputFilePath, String outputFolder) throws FileNotFoundException {
		File inputFile = new File(inputFilePath);
		if (!inputFile.exists()) {
			throw new FileNotFoundException("要转换的文件不存在:" + inputFilePath);
		}
		File toFileFolder = new File(outputFolder);
		if (!toFileFolder.exists()) {
			toFileFolder.mkdirs();
		}
		
		InputStream fromFileInputStream = new FileInputStream(inputFile);
		
//		Date date = new Date();
//		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
//		String timesuffix = sdf.format(date);
		
//		String htmFileName = inputFile.getName().substring(0, inputFile.getName().lastIndexOf(".")) + ".html";
//
//		File htmlOutputFile = new File(toFileFolder.toString() + File.separatorChar + htmFileName);
//		File docInputFile = new File(toFileFolder.toString() + File.separatorChar + inputFile.getName());
		
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		String timesuffix = sdf.format(date);
		String htmFileName = "htmlfile" + timesuffix + ".html";
		String docFileName = "docfile" + timesuffix + inputFilePath.substring(inputFilePath.lastIndexOf("."));

		File htmlOutputFile = new File(toFileFolder.toString() + File.separatorChar + htmFileName);
		File docInputFile = new File(toFileFolder.toString() + File.separatorChar + docFileName);
		
		/**
		 * 由fromFileInputStream构建输入文件
		 * */
		try {
			OutputStream os = new FileOutputStream(docInputFile);
			int bytesRead = 0;
			byte[] buffer = new byte[1024 * 8];
			while ((bytesRead = fromFileInputStream.read(buffer)) != -1) {
				os.write(buffer, 0, bytesRead);
			}
			os.close();
			
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				fromFileInputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		OpenOfficeConnection connection = new SocketOpenOfficeConnection(soffice_host, Integer.parseInt(soffice_port));
		try {
			connection.connect();
		} catch (ConnectException e) {
			System.err.println("文件转换出错,请检查OpenOffice服务是否启动。");
			e.printStackTrace();
		}
		// convert
		DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
		converter.convert(docInputFile, htmlOutputFile);
		connection.disconnect();

		// 转换完之后删除word文件
		// docInputFile.delete();
		return htmFileName;
	}

	public static void main(String[] args) throws IOException {
		//Doc2HtmlUtil.doc2Html("D://pdf//转换用.ppt", "D://pdf//ttttt444//");
		Doc2HtmlUtil.doc2Html("D://pdf//专业与院系对应关系.xls", "D://pdf//ttttt444//");
		//Doc2HtmlUtil.doc2Html("D://pdf//2010110档案管理系统需求分析说明书正式.doc", "D://pdf//ttttt444//");
	}
}


转换的效果出乎我的预料,Excel和PPT的表现非常完美

doc文档效果差强人意

效率也基本能够达到我的预期

还有一个工作日,最后再研究下POI转文档为HTML
0
1
分享到:
评论

相关推荐

    OpenOffice转换Office文档为PDF、HTML

    总之,OpenOffice提供了一个强大且灵活的工具集,能够轻松地将Office文档转换为PDF和HTML。开发者还可以利用Java API实现自动化转换,提高效率。无论是在日常办公还是开发项目中,了解如何使用OpenOffice进行文件...

    openoffice中文开发文档

    例如,用户可以在网页上提交一个文档,通过后端的OpenOffice服务进行格式转换、数据提取等处理,然后返回结果。这在B/S架构的应用中非常实用,尤其对于需要处理多种格式文档的场景。 3. 文档格式:OpenOffice支持...

    openoffice的C#应用各种文档格式转换pdf

    2. 打开Word文档:使用DocumentLoader服务加载Word文档到OpenOffice的内存中。 3. 转换操作:调用DocumentConverter的convert方法,指定源文档路径、目标PDF路径以及转换选项。 4. 关闭连接:完成转换后,记得关闭...

    openOffice转换doc文档类型代码

    OpenOffice支持多种文件格式,包括创建、编辑和转换不同的文档类型,如DOC(Microsoft Word文档)。本话题将深入探讨如何利用OpenOffice的API或命令行工具来实现DOC文档类型的转换。 首先,OpenOffice提供了两种...

    java使用openoffice转换pdf和html文件

    JODConverter是一个方便的API,它使用OpenOffice的转换服务将一种文档格式转换为另一种。例如,我们可以使用以下代码片段来将一个ODT文件转换为PDF: ```java import org.artofsolving.jodconverter.Document...

    Java用OpenOffice将office转换为PDF

    Java使用OpenOffice转换Office文档为PDF是一种常见的技术需求,尤其在企业级应用中,为了保持一致性和跨平台兼容性,可能会需要将Word、Excel或PowerPoint文档转换为PDF格式。以下将详细介绍如何在Java环境中利用...

    利用OpenOffice对html、word、pdf进行转换

    标题“利用OpenOffice对html、word、pdf进行转换”揭示了一个关键知识点,即如何使用开源办公软件OpenOffice处理不同格式的文档,特别是将其相互转换。OpenOffice是一个免费的办公套件,包含类似Microsoft Office的...

    Openoffice转换多列EXCEL为PDF行列对应解决方法

    因为百度文库中的文档通常是在线查看或下载的PDF或文档,可能需要先将其转换为Excel格式,才能用OpenOffice进一步转换。 总之,通过正确使用OpenOffice Calc,我们可以有效地将多列Excel文件转换为PDF,同时保持...

    web项目使用OpenOffice实现前端在线预览office、pdf等文档源码.rar

    在Java环境下,我们可以利用OpenOffice的API来实现在服务器端转换文档为HTML或其他适合浏览器显示的格式,然后将这些内容发送到前端展示。 首先,你需要在服务器上安装OpenOffice,并确保它可以正常运行。在Java...

    文档在线预览openoffice

    2. **文件转换API**:使用OpenOffice的API,你可以创建一个服务,该服务接受文件URL或上传的文件,然后调用OpenOffice的转换功能。例如,可以使用Java的JODConverter库,它封装了与OpenOffice的交互,提供简单的API...

    web项目使用OpenOffice实现前端在线预览office、pdf等文档源码

    OpenOffice是一款开源的办公软件套件,它提供了一个强大的API,可以用来转换文档格式,使得Web应用程序能够预览和处理非HTML内容。 首先,我们需要了解OpenOffice的工作原理。OpenOffice有一个名为UNO(Universal ...

    Openoffice转换多列EXCEL为PDF行列对应解决方法.rar

    在OpenOffice中将多列Excel转换为PDF时,可能会遇到行与列对应不正确的问题,尤其是在数据排列复杂或格式设置不当时。以下是一份详细的解决方法,旨在帮助用户正确地进行转换,确保PDF中的数据保持原始Excel文件的...

    Word、Excel等常用文档格式通过OpenOffice转换为pdf及图片

    Word、Excel等常用文档格式通过OpenOffice转换为pdf及图片,亲测,可用。Word、Excel等常用文档格式通过OpenOffice转换为pdf及图片,亲测,可用。Word、Excel等常用文档格式通过OpenOffice转换为pdf及图片,亲测,可用...

    OpenOffice转换成Pdf

    在IT行业中,转换文档格式是常见的需求之一,特别是在办公软件的使用中。本文将深入探讨如何在Java环境下,利用OpenOffice技术将文档转换为Pdf格式,以解决在Windows 7开发环境中仅支持Office 2007格式的问题。 ...

    office文档通过openoffice或者microsoft多线程转换成pdf文档并通过pdfjs显示

    文件列表中的"office2pdf-view-master"可能是一个项目仓库名,暗示了这个项目专注于将Office文档转换为PDF并使用PDF.js进行展示。项目可能包含了源代码、配置文件、示例和测试数据等资源,供开发者参考和使用。 ...

    java OpenOffice wordExcel转换PDF

    OpenOffice提供了一个称为UNO(Universal Network Objects)的接口,允许其他程序与OpenOffice进行交互,执行诸如读取、写入和转换文档等操作。 在Java中,我们可以使用JODConverter库来调用OpenOffice的UNO接口,...

    使用openoffice转换PDF工具类及所有jar包

    总结起来,使用OpenOffice转换PDF涉及的关键知识点有: 1. **JODConverter**:作为Java与OpenOffice/LibreOffice交互的桥梁,提供便捷的转换API。 2. **Java集成**:通过Java代码调用转换服务,方便集成到各种业务...

Global site tag (gtag.js) - Google Analytics