×

php将word转化成html

php将word转化成html(phpword转html页码)

admin admin 发表于2023-04-07 00:20:08 浏览69 评论0

抢沙发发表评论

本文目录一览:

如何利用openoffice读取word文档,并输出在页面上(HTML)

将Word转Html的原理是这样的:

1、客户上传Word文档到服务器

2、服务器调用OpenOffice程序打开上传的Word文档

3、OpenOffice将Word文档另存为Html格式

4、Over

至此可见,这要求服务器端安装OpenOffice软件,其实也可以是MS Office,不过OpenOffice的优势是跨平台,你懂的。恩,说明一下,本文的测试基于 MS Win7 Ultimate X64 系统。-php将word转化成html

下面就是规规矩矩的实现。

1、下载OpenOffice,

2、下载Jodconverter 这是一个开启OpenOffice进行格式转化的第三方jar包。

3、泡杯热茶,等待下载。

4、安装OpenOffice,安装结束后,调用cmd,启动OpenOffice的一项服务:C:\Program Files (x86)\OpenOffice.org 3\programsoffice -headless -accept="socket,port=8100;urp;"-php将word转化成html

5、打开eclipse

6、喝杯热茶,等待eclipse打开。

7、新建eclipse项目,导入Jodconverter/lib 下得jar包。

* commons-io

* jodconverter

* juh

* jurt

* ridl

* slf4j-api

* slf4j-jdk14

* unoil

* xstream

8、Coding...

查看代码

package com.mzule.doc2html.util;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.ConnectException;

import java.util.Date;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

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;

/**

* 将Word文档转换成html字符串的工具类

*

* @author MZULE

*

*/

public class Doc2Html {

public static void main(String[] args) {

System.out

.println(toHtmlString(new File("C:/test/test.doc"), "C:/test"));

}

/**

* 将word文档转换成html文档

*

* @param docFile

* 需要转换的word文档

* @param filepath

* 转换之后html的存放路径

* @return 转换之后的html文件

*/

public static File convert(File docFile, String filepath) {

// 创建保存html的文件

File htmlFile = new File(filepath + "/" + new Date().getTime()

+ ".html");

// 创建Openoffice连接

OpenOfficeConnection con = new SocketOpenOfficeConnection(8100);

try {

// 连接

con.connect();

} catch (ConnectException e) {

System.out.println("获取OpenOffice连接失败...");

e.printStackTrace();

}

// 创建转换器

DocumentConverter converter = new OpenOfficeDocumentConverter(con);

// 转换文档问html

converter.convert(docFile, htmlFile);

// 关闭openoffice连接

con.disconnect();

return htmlFile;

}

/**

* 将word转换成html文件,并且获取html文件代码。

*

* @param docFile

* 需要转换的文档

* @param filepath

* 文档中图片的保存位置

* @return 转换成功的html代码

*/

public static String toHtmlString(File docFile, String filepath) {

// 转换word文档

File htmlFile = convert(docFile, filepath);

// 获取html文件流

StringBuffer htmlSb = new StringBuffer();

try {

BufferedReader br = new BufferedReader(new InputStreamReader(

new FileInputStream(htmlFile)));

while (br.ready()) {

htmlSb.append(br.readLine());

}

br.close();

// 删除临时文件

htmlFile.delete();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

// HTML文件字符串

String htmlStr = htmlSb.toString();

// 返回经过清洁的html文本

return clearFormat(htmlStr, filepath);

}

/**

* 清除一些不需要的html标记

*

* @param htmlStr

* 带有复杂html标记的html语句

* @return 去除了不需要html标记的语句

*/

protected static String clearFormat(String htmlStr, String docImgPath) {

// 获取body内容的正则

String bodyReg = "BODY .*/BODY";

Pattern bodyPattern = Pattern.compile(bodyReg);

Matcher bodyMatcher = bodyPattern.matcher(htmlStr);

if (bodyMatcher.find()) {

// 获取BODY内容,并转化BODY标签为DIV

htmlStr = bodyMatcher.group().replaceFirst("BODY", "DIV")

.replaceAll("/BODY", "/DIV");

}

// 调整图片地址

htmlStr = htmlStr.replaceAll("IMG SRC=\"", "IMG SRC=\"" + docImgPath

+ "/");

// 把P/P转换成/div/div保留样式

// content = content.replaceAll("(P)([^]*.*?)(\\/P)",

// "div$2/div");

// 把P/P转换成/div/div并删除样式

htmlStr = htmlStr.replaceAll("(P)([^]*)(.*?)(\\/P)", "p$3/p");

// 删除不需要的标签

htmlStr = htmlStr

.replaceAll(

"[/]?(font|FONT|span|SPAN|xml|XML|del|DEL|ins|INS|meta|META|[ovwxpOVWXP]:\\w+)[^]*?",

"");

// 删除不需要的属性

htmlStr = htmlStr

.replaceAll(

"([^]*)(?:lang|LANG|class|CLASS|style|STYLE|size|SIZE|face|FACE|[ovwxpOVWXP]:\\w+)=(?:'[^']*'|\"\"[^\"\"]*\"\"|[^]+)([^]*)",-php将word转化成html

"$1$2");

return htmlStr;

}

}

php 怎么实现读取word文档内容,显示到html上面?能给个案例最好了,谢谢!

如果在win可以用com组件读取:

// 建立一个指向新COM组件的索引  

 $word = new COM("word.application") or die("Can't start Word!");  

 // 显示目前正在使用的Word的版本号  

//echo "Loading Word, v. {$word-Version}br";  

 // 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真)  

// to open the application in the forefront, use 1 (true)  

 //$word-Visible = 0;  

//打?一个文档  

 $word-Documents-OPen("d:\a.doc");  

 //读取文档内容  

 

 $test= $word-ActiveDocument-content-Text;  

echo $test;  

 echo "br";  

 //将文档中需要换的变量更换一下  

 $test=str_replace("{变量}","这是变量",$test);  

 echo $test;  

 $word-Documents-Add();  

 // 在新文档中添加文字  

 $word-Selection-TypeText("$test");  

//把文档保存在目录中  

 $word-Documents[1]-SaveAs("d:/myweb/comtest.doc");  

// 关闭与COM组件之间的连接  

$word-Quit();

linux可用antiword插件去实现

如何在php下实现word转换成HTML,都进来看看吧

你好,试试我这个吧

刚刚测试完的。

?php

/*

@author axgle axgle@126.com

直接用php把word文档转化成HTML文件

适用于windows和安装了word的环境

*/

function word2html($wfilepath)

{

$word=new COM("Word.Application") or die("无法打开 MS Word");

$word-visible = 1 ;

$word-Documents-Open($wfilepath)or die("无法打开这个文件");

$htmlpath= substr($wfilepath,0,-4);

$word-ActiveDocument-SaveAs($htmlpath,8);

$word-quit(0);

}

$w="G:/www/test.doc";

word2html($w);

print( "Word转html完成!" );

?

怎样能够在linux环境下使用php像word另存为那样吧word转化成html

这个需要用到linux下提供的开源软件,需要自己安装,比如openoffice ,wvHtml 这两款