`

word文件转换为html文件等

阅读更多

word转换为html的代码如下,同时需要在C:\WINDOWS\system32 的目录下添加一个.DLL文件,DLL文件见附件。JAVA代码如下

import java.io.File;
import java.util.Calendar;
import java.util.Date;

import com.hifly.common.db.Db;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

/**
 * Word转换成Html
 *         jacob jar与dll文件下载: http://www.matrix.org.cn/down_view.asp?id=13
 *         下载了jacob并放到指定的路径之后(dll放到path,jar文件放到classpath),就可以写你自己的抽取程序了,下面是一个简单的例子:
 *       
 * 
 */
public class WordToHtml {

	
	/*
     * 转换单个word文件
     *   origPath为原地址,包括扩展名doc
     *   destPath为转换后的文件地址,包括扩展名htm
     */
    public static void word_To_Htm(String origPath , String destPath) throws Exception{
        File ofile = new File(origPath);
        File dfile = new File(destPath);
        if(!destPath.endsWith(".htm")){
        	dfile = new File(destPath+".htm");
        }
        
        if(ofile.exists() && !dfile.exists()){
            
            ComThread.InitSTA();
            ActiveXComponent app = new ActiveXComponent(
                    "Word.Application");
            try {
                app.setProperty("Visible", new Variant(false));
                
                Dispatch docs = app.getProperty("Documents").toDispatch();
                Dispatch doc = Dispatch.invoke(
                        docs,
                        "Open",
                        Dispatch.Method,
                        new Object[] {origPath, new Variant(false),
                                new Variant(true) }, new int[1])
                        .toDispatch();
                Dispatch.invoke(doc, "SaveAs", Dispatch.Method,
                        new Object[] { destPath, new Variant(8) },
                        new int[1]);
                
                Variant f = new Variant(false);
                Dispatch.call(doc, "Close", f);
            } catch (Exception e) {
                throw e;
            } finally {
                app.invoke("Quit", new Variant[] {});
                ComThread.Release();
            }
            
        }
    }
    
	/**
	 * 把word文件转换成mht文件.转换完成后并自动关闭WORD文件
	 */
	public static void word_To_Mht(String wordFileName, String htmlFile) {
		ComThread.InitSTA();// 初始化com的线程,非常重要!!使用结束后要调用 realease方法

		// Instantiate objWord //Declare word object
		ActiveXComponent objWord = new ActiveXComponent("Word.Application");

		// Assign a local word object
		Dispatch wordObject = (Dispatch) objWord.getObject();

		// Create a Dispatch Parameter to show the document that is opened
		Dispatch.put((Dispatch) wordObject, "Visible", new Variant(true));// new
																			// Variant(true)表示word应用程序可见

		// Instantiate the Documents Property
		Dispatch documents = objWord.getProperty("Documents").toDispatch(); // documents表示word的所有文档窗口,(word是多文档应用程序)

		// Add a new word document, Current Active Document
		Dispatch document = Dispatch.call(documents, "Open", wordFileName)
				.toDispatch(); // 使用Add命令创建一个新文档,用Open命令可以打开一个现有文档
		Dispatch.invoke(document, "SaveAs", Dispatch.Method, new Object[] {
				htmlFile, new Variant(8) }, new int[1]);
		Dispatch.call(document, "Close");
		Dispatch.call(wordObject, "quit");
		ComThread.Release();// 释放com线程。根据jacob的帮助文档,com的线程回收不由java的垃圾回收器处理
	}

	/**
	 * 文档转换函数
	 * 
	 * @param docfile
	 *            word文档的绝对路径加文件名(包含扩展名)
	 * @param htmlfile
	 *            转换后的html文件绝对路径和文件名(不含扩展名)
	 */
	public static void change(String docfile, String htmlfile) {
		ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
		try {
			app.setProperty("Visible", new Variant(false));
			// 设置word不可见
			Object docs = app.getProperty("Documents").toDispatch();

			// Assign a local word object
			Dispatch wordObject = (Dispatch) app.getObject();

			// Create a Dispatch Parameter to show the document that is opened
			// Dispatch.put((Dispatch) wordObject, "Visible", new
			// Variant(true));// new Variant(true)表示word应用程序可见
			// Tip:设置一个对象的属性的时候,利用Dispatch的put方法,给属性赋值。上面这行语句相当于vb的
			// wordObject.Visible = true 语句
			//
			// //Instantiate the Documents Property
			// Dispatch documents =
			// objWord.getProperty("Documents").toDispatch();
			// //documents表示word的所有文档窗口,(word是多文档应用程序)

			// Add a new word document, Current Active Document
			// Dispatch document = Dispatch.call(app, "Add").toDispatch(); //
			// 使用Add命令创建一个新文档,用Open命令可以打开一个现有文档

			Object doc = Dispatch.invoke(
					app,
					"Open",
					Dispatch.Method,
					new Object[] { docfile, new Variant(false),
							new Variant(true) }, new int[1]).toDispatch();
			// 打开word文件
			Dispatch.invoke(app, "SaveAs", Dispatch.Method, new Object[] {
					htmlfile, new Variant(8) }, new int[1]);
			// 作为html格式保存到临时文件
			Variant f = new Variant(false);
			Dispatch.call(app, "Close", f);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			app.invoke("Quit", new Variant[] {});
		}
	}

	public static void wordToHtmlExpm(String wordFileName, String htmlFile) {
		ComThread.InitSTA();// 初始化com的线程,非常重要!!使用结束后要调用 realease方法

		// Instantiate objWord //Declare word object
		ActiveXComponent objWord = new ActiveXComponent("Word.Application");

		// Assign a local word object
		Dispatch wordObject = (Dispatch) objWord.getObject();

		// Create a Dispatch Parameter to show the document that is opened
		Dispatch.put((Dispatch) wordObject, "Visible", new Variant(true));// new
																			// Variant(true)表示word应用程序可见

		// Instantiate the Documents Property
		Dispatch documents = objWord.getProperty("Documents").toDispatch(); // documents表示word的所有文档窗口,(word是多文档应用程序)

		// Add a new word document, Current Active Document
		Dispatch document = Dispatch.call(documents, "Open", wordFileName)
				.toDispatch(); // 使用Add命令创建一个新文档,用Open命令可以打开一个现有文档
		// Dispatch document = Dispatch.call(documents, "Add").toDispatch(); //
		// 使用Add命令创建一个新文档,用Open命令可以打开一个现有文档

		// Dispatch wordContent = Dispatch.get(document,
		// "Content").toDispatch(); // 取得word文件的内容

		// Dispatch.call(wordContent, "InsertAfter", "这里是一个段落的内容");//插入一个段落

		// Dispatch paragraphs = Dispatch.get(wordContent,
		// "Paragraphs").toDispatch(); // 所有段落
		// int paragraphCount = Dispatch.get(paragraphs, "Count").toInt(); //
		// 一共的段落数

		// 找到刚输入的段落,设置格式
		/*
		 * Dispatch lastParagraph = Dispatch.call(paragraphs, "Item", new
		 * Variant(paragraphCount)). toDispatch(); // 最后一段 Dispatch
		 * lastParagraphRange = Dispatch.get(lastParagraph, "Range").
		 * toDispatch(); Dispatch font = Dispatch.get(lastParagraphRange,
		 * "Font").toDispatch(); Dispatch.put(font, "Bold", new Variant(true)); //
		 * 设置为黑体 Dispatch.put(font, "Italic", new Variant(true)); // 设置为斜体
		 * Dispatch.put(font, "Name", new Variant("宋体")); // Dispatch.put(font,
		 * "Size", new Variant(12)); //小四
		 */
		// Dispatch.call(document, "SaveAs", new Variant("C:\\abc.doc"));
		// //保存一个新文档
		// Dispatch.get(document, "SaveAs")
		// Dispatch.call(document, "SaveAs", new Variant(htmlFile)); // 保存一个新文档
		Dispatch.invoke(document, "SaveAs", Dispatch.Method, new Object[] {
				htmlFile, new Variant(9) }, new int[1]);
		Dispatch.call(document, "Close");
		Dispatch.call(wordObject, "quit");
		ComThread.Release();// 释放com线程。根据jacob的帮助文档,com的线程回收不由java的垃圾回收器处理
	}

	public static void deal(File file,Date lastTime){
		File[] files = file.listFiles();
		for(File f : files){
			if(f.isDirectory()){
				deal(f,lastTime);
			}else {
				//if (f.getName().toLowerCase().endsWith(".doc") || f.getName().toLowerCase().endsWith(".docx")){
				Long time = f.lastModified();
				Calendar cd = Calendar.getInstance();
			    cd.setTimeInMillis(time);
			    //System.out.println(DateUtils.format(cd.getTime(),"yyyy-MM-dd HH:mm:ss SSS"));
			    //if(cd.getTime().before(lastTime)){
			    	String name = f.getName().replace("“", "").replace("”", "");
					String docfile = f.getPath();
					String htmlfile = f.getParent()+"\\"+name.substring(0, name.indexOf("."))+".htm";
					word_To_Mht(docfile,htmlfile);	
									
				//	String fileName = name.substring(0,name.indexOf("."))+".htm";
				//	isnertReport(f.getName(),"doc");
				//	isnertReport(fileName,"html");
			    //}
			}
			
				try {
					Thread.sleep(1000*2);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
		}
		
	}
	
	public static void start(){
		String path = "e:\\file\\ab\\";
		Date lastTime  = new Date();
		File file = new File(path);
		deal(file,lastTime);
	}
	public static void main(String[] strs) {
		start();
		String wordFile = "D:\\temp\\1234.doc";
		String htmlFile = "d:\\temp\\alarm\\" + System.currentTimeMillis()
				+ ".mht";
		WordToHtml.word_To_Mht(wordFile, htmlFile);
	}
}

 

分享到:
评论
1 楼 lisafx 2014-09-12  

相关推荐

    实现word文件转换成html文件实现在线打开预览word文件

    标题和描述中提到的"实现word文件转换成html文件实现在线打开预览word文件",这是一个关于将Microsoft Word文档转换为HTML格式,以便在网页上预览的技术问题。下面将详细介绍这个过程涉及的关键知识点。 1. **...

    python语言写的将html格式文件转换为word文件

    html文件转为word文件 若有需要html页面的文章需要转为word格式的文件,可以通过此程序进行转换。 将html内容转为word格式的文件。

    Word文件转化成HTML

    本篇文章将深入探讨如何使用C#编程语言将Word文件转换为HTML格式,同时保持原有的格式不变。这一过程对于那些希望在网页上展示Word内容或者需要进行跨平台文档共享的用户来说尤其重要。 首先,我们需要理解的是,...

    C# HtmlToWord 将HTML文件转换成word文档

    总结来说,C#中将HTML文件转换为Word文档是一个涉及到HTML解析、图片处理和Word文档生成的过程。通过选择合适的库和编写适当的代码逻辑,可以高效地实现这个功能,即使在没有安装Word软件的环境下也能完成转换,并且...

    java将html文件生成word文件

    本示例主要涉及的是将HTML文件转换为Word文档,具体使用的是Java库——docx4j。这个库提供了强大的功能,可以方便地进行XML、XSL-FO到OpenXML(包括.docx和.xlsx)的转换。下面我们将深入探讨这个过程。 首先,`...

    QT基于HTML生成WORD文件

    在QT中生成基于HTML的Word文件,意味着我们可以利用QT的QTextDocument类来创建文档,然后通过将HTML内容转化为Word格式,实现复杂的文本格式化和布局设计。 QTextDocument是QT中的一个核心组件,它提供了丰富的文本...

    Java实现将word转换为html的方法示例【doc与docx格式】

    2. 将word文档转换为XHTML格式,使用XHTMLConverter类来实现转换。 3. 设置转换的配置,例如设置图片存放的目录、忽略无用的样式等。 4. 将XHTML格式的文档写入到html文件中。 知识点4:Java中word文档转换为html的...

    Java程序把Word文档直接转换成Html文件

    首先,我们需要启动Word.Application,然后打开要转换的Word文档,接着使用SaveAs方法将文档保存为Html文件。 在实现这个功能时,我们需要使用到Jacob库中的ActiveXComponent和Dispatch类。ActiveXComponent类是...

    java方式完整的word文件转html代码样例

    为了运行此代码,你需要调用`convertWordToHtml()`方法,传入Word文件的路径和期望输出的HTML文件路径。例如: ```java public static void main(String[] args) throws IOException { WordToHtmlConverter....

    通过thinkphp5+PHPOffice读取word文件写入到html文件

    // 替换为你的Word文件路径 $htmlFilePath = 'path_to_output_html.html'; // 输出HTML文件路径 $phpWord = IOFactory::load($docFilePath); $section = $phpWord->getFirstSection(); $html = ''; foreach ...

    C# CHtmlToWord 将HTML文件转换成word文档!

    在IT行业中,有时候我们需要将网页内容或HTML文件转换为Word文档格式,以便于编辑、打印或分享。"C# CHtmlToWord 将HTML文件转换成word文档!"这个项目提供了一个解决方案,允许开发者通过C#编程语言实现这一功能,...

    【ASP.NET编程知识】Asp.net中将Word文件转换成HTML的方法.docx

    在实际应用中,ASP.NET实现将Word文件转换成HTML文件的方法可以广泛应用于各种场景,例如在线文档预览、文档转换、文件格式转换等。 此外,这个示例代码还可以与其他技术结合使用,例如使用ASP.NET实现将Word文件...

    富文本html转word,word文件合并.zip

    综上所述,"Java富文本HTML转Word,word文件合并"是Java开发中的实用技能,涵盖了HTML解析、文档转换、样式处理和文件操作等多个技术领域。熟练掌握这些技能,能够帮助开发者更高效地处理文档,提升工作效率。在实际...

    C#NET实现Word转化为Html文件

    在.NET环境中,C#语言提供了一种有效的方式来处理Word文档,并将其转换为HTML格式,这在数据交换、网页展示或跨平台操作时非常有用。本文将深入探讨如何使用C#来实现这一功能,主要涉及的技术点包括:Microsoft ...

    NET Core通过预设的html模板,导出Word文件,Html文件,Pdf文件

    使用C# NET Core技术,通过预设的html模板,导出Word文件,Html文件,Pdf,使用说明参考https://blog.csdn.net/qq_27337291/article/details/120676751?spm=1001.2014.3001.5501

    word转化HTML预览

    总的来说,"word转化HTML预览"项目提供了一个实用的起点,帮助开发者学习和实践如何使用Apache POI将Word文档转换为HTML,并进行在线预览。这个过程涉及到文件读取、内容解析、HTML构造等多个技术点,对于提升Java...

    使用java将office word pdf excel ppt文件转换成html文件

    本篇文章将深入探讨如何使用Java将Office Word、PDF、Excel和PPT文件转换为HTML文件。 首先,我们需要了解的是,Java中的文件转换通常依赖于第三方库,因为Java标准库并不直接支持这些特定的转换功能。以下是一些...

    Txt、Word 2007转换Html文件工具

    【标题】:“Txt、Word 2007转换Html文件工具”是一款专为文本和Word文档格式转换设计的实用软件,旨在帮助用户方便快捷地将TXT纯文本文件和Word 2007文档转化为HTML网页格式。这款工具适用于那些需要在网页上发布...

    通过Js实现Html转换成Word下载

    这行代码会将ID为'myElement'的元素内容转换为Word并下载,文件名为'文件名'。 4. **保存文件**:最后,利用`FileSaver.js`库保存生成的Word文档到本地。例如: ```javascript saveAs(blob, 'download.docx'); ...

Global site tag (gtag.js) - Google Analytics