<html>
2<head>
3<title>测试HTML导出内容至WORD</title>
4<script type="text/javascript" language="javascript">
5//指定页面区域内容导入Word
6function exportToWord(controlId) {
7var control = document.getElementById(controlId)
8try {
9var oWD = new ActiveXObject("Word.Application")
10var oDC = oWD.Documents.Add("", 0, 1)
11var oRange = oDC.Range(0, 1)
12var sel = document.body.createTextRange()
13try {
14sel.moveToElementText(control)
15} catch (notE) {
16alert("导出数据失败,没有数据可以导出。")
17window.close()
18return
19}
20sel.select()
21sel.execCommand("Copy")
22oRange.Paste()
23oWD.Application.Visible = true
24//window.close()
25}
26catch (e) {
27alert("导出数据失败,需要在客户机器安装Microsoft Office Word(不限版本),将当前站点加入信任站点,允许在IE中运行ActiveX控件。")
28try { oWD.Quit()} catch (ex) { }
29//window.close()
30}
31}
32</script>
33</head>
34<body>
35<div id="TestDiv">
36<div align="center">爱情公寓第三季成绩表</div>
37
38<table width="100%">
39<tr>
40<td style="background-color: #F50AE5font-weight: boldtext-align:center">
41名次
42</td>
43<td style="background-color: #F50AE5font-weight: boldtext-align:center">
44姓名
45</td>
46<td style="background-color: #F50AE5font-weight: boldtext-align:center">
47总分
48</td>
49</tr>
50<tr>
51<td style="text-align:center">
522012001
53</td>
54<td style="text-align:center">
55曾小贤
56</td>
57<td style="text-align:center">
5886
59</td>
60</tr>
61<tr>
62<td style="text-align:center">
632012002
64</td>
65<td style="text-align:center">
66胡一菲
67</td>
68<td style="text-align:center">
6985
70</td>
71</tr>
72</table>
73</div>
74<div>
75<div style="text-align:center">
76<input type="button" value="导出到WORD" onclick="return exportToWord('TestDiv')" />
77</div>
78</body>
79</html>
基乎不可能,就算可能,也不理智用php library比用js好,用js的话,首先使用者要先下载word文件,这样已经很慢,跟著js要把word转换,js那麼慢,再要等多一些时间,最後js又要重整样式,超麻烦…
package com.cectsims.utilimport java.io.BufferedInputStream
import java.io.File
import java.io.IOException
import java.io.InputStream
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
/**
* doc docx格式转换
*/
public class DocConverter {
private static final int environment = 1// 环境 1:windows 2:linux
private String fileString// (只涉及pdf2swf路径问题)
private String outputPath = ""// 输入路径 ,如果不设置就输出在默认的位置
private String fileName
private File pdfFile
private File swfFile
private File docFile
public DocConverter(String fileString) {
ini(fileString)
}
/**
* 重新设置file
*
* @param fileString
*/
public void setFile(String fileString) {
ini(fileString)
}
/**
* 初始化
*
* @param fileString
*/
private void ini(String fileString) {
this.fileString = fileString
fileName = fileString.substring(0, fileString.lastIndexOf("."))
docFile = new File(fileString)
pdfFile = new File(fileName + ".pdf")
swfFile = new File(fileName + ".swf")
}
/**
* 转为PDF
*
* @param file
*/
private void doc2pdf() throws Exception {
if (docFile.exists()) {
if (!pdfFile.exists()) {
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100)
try {
connection.connect()
DocumentConverter converter = new OpenOfficeDocumentConverter(connection)
converter.convert(docFile, pdfFile)
// close the connection
connection.disconnect()
System.out.println("****pdf转换成功,PDF输出:" + pdfFile.getPath()+ "****")
} catch (java.net.ConnectException e) {
e.printStackTrace()
System.out.println("****swf转换器异常,openoffice服务未启动!****")
throw e
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
e.printStackTrace()
System.out.println("****swf转换器异常,读取转换文件失败****")
throw e
} catch (Exception e) {
e.printStackTrace()
throw e
}
} else {
System.out.println("****已经转换为pdf,不需要再进行转化****")
}
} else {
System.out.println("****swf转换器异常,需要转换的文档不存在,无法转换****")
}
}
/**
* 转换成 swf
*/
@SuppressWarnings("unused")
private void pdf2swf() throws Exception {
Runtime r = Runtime.getRuntime()
if (!swfFile.exists()) {
if (pdfFile.exists()) {
if (environment == 1) {// windows环境处理
try {
// Process p = r.exec("D:/Program Files/SWFTools/pdf2swf.exe "+ pdfFile.getPath() + " -o "+ swfFile.getPath() + " -T 9")
Process p = r.exec("C:/Program Files (x86)/SWFTools/pdf2swf.exe "+ pdfFile.getPath() + " -o "+ swfFile.getPath() + " -T 9")
System.out.print(loadStream(p.getInputStream()))
System.err.print(loadStream(p.getErrorStream()))
System.out.print(loadStream(p.getInputStream()))
System.err.println("****swf转换成功,文件输出:"
+ swfFile.getPath() + "****")
if (pdfFile.exists()) {
pdfFile.delete()
}
} catch (IOException e) {
e.printStackTrace()
throw e
}
} else if (environment == 2) {// linux环境处理
try {
Process p = r.exec("pdf2swf " + pdfFile.getPath()
+ " -o " + swfFile.getPath() + " -T 9")
System.out.print(loadStream(p.getInputStream()))
System.err.print(loadStream(p.getErrorStream()))
System.err.println("****swf转换成功,文件输出:"
+ swfFile.getPath() + "****")
if (pdfFile.exists()) {
pdfFile.delete()
}
} catch (Exception e) {
e.printStackTrace()
throw e
}
}
} else {
System.out.println("****pdf不存在,无法转换****")
}
} else {
System.out.println("****swf已经存在不需要转换****")
}
}
static String loadStream(InputStream in) throws IOException {
int ptr = 0
in = new BufferedInputStream(in)
StringBuffer buffer = new StringBuffer()
while ((ptr = in.read()) != -1) {
buffer.append((char) ptr)
}
return buffer.toString()
}
/**
* 转换主方法
*/
@SuppressWarnings("unused")
public boolean conver() {
if (swfFile.exists()) {
System.out.println("****swf转换器开始工作,该文件已经转换为swf****")
return true
}
if (environment == 1) {
System.out.println("****swf转换器开始工作,当前设置运行环境windows****")
} else {
System.out.println("****swf转换器开始工作,当前设置运行环境linux****")
}
try {
doc2pdf()
pdf2swf()
} catch (Exception e) {
e.printStackTrace()
return false
}
if (swfFile.exists()) {
return true
} else {
return false
}
}
/**
* 返回文件路径
*
* @param s
*/
public String getswfPath() {
if (swfFile.exists()) {
String tempString = swfFile.getPath()
tempString = tempString.replaceAll("\\\\", "/")
return tempString
} else {
return ""
}
}
/**
* 设置输出路径
*/
public void setOutputPath(String outputPath) {
this.outputPath = outputPath
if (!outputPath.equals("")) {
String realName = fileName.substring(fileName.lastIndexOf("/"),
fileName.lastIndexOf("."))
if (outputPath.charAt(outputPath.length()) == '/') {
swfFile = new File(outputPath + realName + ".swf")
} else {
swfFile = new File(outputPath + realName + ".swf")
}
}
}
}
转换为PDF,然后转换为SWF,网上很多这个过程的代码,你可以看看