如何利用openoffice读取word文档,并输出在页面上(HTML)
将Word转Html的原理是这样的:1、客户上传Word文档到服务器2、服务器调用OpenOffice程序打开上传的Word文档3、OpenOffice将Word文档另存为Html格式4、Over至此可见,这要求服务器端安装OpenOffice软件,其实也可以是MS Office,不过OpenOffice的优势是跨平台,你懂的。
恩,说明一下,本文的测试基于 MS Win7 Ultimate X64 系统。
下面就是规规矩矩的实现。
1、下载OpenOffice,2、下载Jodconverter 这是一个开启OpenOffice进行格式转化的第三方jar包。
3、泡杯热茶,等待下载。
4、安装OpenOffice,安装结束后,调用cmd,启动OpenOffice的一项服务:C:\Program Files (x86)\OpenOffice.org 3\program>soffice -headless -accept="socket,port=8100;urp;"5、打开eclipse6、喝杯热茶,等待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 = ""; Pattern bodyPattern = Pattern.compile(bodyReg); Matcher bodyMatcher = bodyPattern.matcher(htmlStr); if (bodyMatcher.find()) { // 获取BODY内容,并转化BODY标签为DIV htmlStr = bodyMatcher.group().replaceFirst("", ""); } // 调整图片地址 htmlStr = htmlStr.replaceAll("转换成保留样式 // content = content.replaceAll("(]*>.*?)()", // ""); // 把转换成并删除样式 htmlStr = htmlStr.replaceAll("(]*)(>.*?)()", ""); // 删除不需要的标签 htmlStr = htmlStr .replaceAll( "]*?>", ""); // 删除不需要的属性 htmlStr = htmlStr .replaceAll( "]*)(?:lang|LANG|class|CLASS|style|STYLE|size|SIZE|face|FACE|[ovwxpOVWXP]:\\w+)=(?:'[^']*'|\"\"[^\"\"]*\"\"|[^>]+)([^>]*)>", ""); return htmlStr; }}
为什么我的电脑上打开WORD总是出现microsoft Office Word 已停止...
Word停止工作解决方法如下 方法一、双击打开“计算机”在右上方的搜索框中输入“Normal.dot”,此时Win7系统会自动搜寻名称包含“Normal.dot”这个名称的文件,搜索的结果可能有很多相似的文件,但你只需要找到“C:\Users\Administrator\AppData\Roaming\Microsoft\Templates”这个路径下面的“Normal.dot”这个文件,然后将其删除即可。
方法二、打开系统左下方的“开始”按钮,在“搜索程序和文件”中输入“ Regedit ”,然后选择“Regedit.exe”进入注册表; 进入以后,找到如下: HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins 将上面两个文件夹word和addins重命名为word2和addins,就可以了。
完毕后,再重新打开Word看看,以前的“Microsoft Office Word已停止工作”是不是不见了?...
OpenOffice比Microsoft Office好用吗?
其实你的问题就像是问QQ和msn哪个更好用一样……因为qq在国内几乎每台联网的电脑上都有,所以,如果你使用msn的话,跟朋友联系交流就不方便了——还必须别人下载安装和注册号码。
Ms Office就是现在的这种情况,因为其用户群体大,而且出现的比较早,等到用户群都熟悉了Ms Office的界面和操作了之后,别的软件就会在易用性上处于劣势。
虽然大部分的办公处理的功能别的办公自动化程序也有,但还就是有人因为不习惯而继续使用Ms Office。
再者,用户交流用的文档格式,多是doc,xls,ppt等MsOffice常用格式,如果你用金山wps或者Open Office保存成了其特有的格式的话,别的计算机上没有相应的程序怎么办?如果你想使用Open Office等程序,可以,但共享文件的时候,还是保存成doc文档格式才好。
除非你故意保存成别人看不了的文件,以增加保密性……
为什么 freemarker 生成的word openoffice 打不开
1.问:WORD里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉。
文件——页面设置——版式——页眉和页脚——首页不同 2.问:请问word中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。
简言之,分节符使得它们独立了。
这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来了 3.问:如何合并两个WORD文档,不同的页眉需要先写两个文件,然后合并,如何做?答:页眉设置中,选择奇偶页不同/与前不同等选项 4.问:WORD编辑页眉设置,如何实现奇偶页不同? 比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊 ?答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同 5.问:怎样使WORD文档只有第一页没有页眉,页脚?答:页面设置-页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式-边框和底纹,选择无,这个只要在“视图”——“页眉页脚”,其中的页面设置里,不要整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了。
6.问:如何从第三页起设置页眉?答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了 ●在新建文档中,菜单—视图—页脚—插入页码—页码格式—起始页码为0,确定; ●菜单—文件—页面设置—版式—首页不同,确定; ●将光标放到第一页末,菜单—文件—页面设置—版式—首页不同—应用于插入点之后,确定。
第2步与第三步差别在于第2步应用于整篇文档,第3步应用于插入点之后。
这样,做两次首页不同以后,页码从第三页开始从1编号,完成。
7.问:WORD页眉自动出现一根直线,请问怎么处理?答:格式从“页眉”改为“清除格式”,就在“格式”快捷工具栏最左边;选中页眉文字和箭头,格式-边框和底纹-设置选无 8.问:页眉一般是---------,上面写上题目或者其它,想做的是把这根线变为双线,WORD中修改页眉的那根线怎么改成双线的?答:按以下步骤操作去做: ●选中页眉的文字,包括最后面的箭头 ●格式-边框和底纹 ●选线性为双线的 ●在预览里,点击左下小方块,预览的图形会出现双线 ●确定▲上面和下面自己可以设置,点击在预览周围的四个小方块,页眉线就可以在不同的位置 9.问:Word中的脚注如何删除?把正文相应的符号删除,内容可以删除,但最后那个格式还在,应该怎么办?答:步骤如下:1、切换到普通视图,菜单中“视图”——“脚注”,这时最下方出现了尾注的编辑栏。
2、在尾注的下拉菜单中选择“尾注分隔符”,这时那条短横线出现了,选中它,删除。
3、再在下拉菜单中选择“尾注延续分隔符”,这是那条长横线出现了,选中它,删除。
4、切换回到页面视图,尾注和脚注应该都是一样的 10.问:Word 里面有没有自动断词得功能?常常有得单词太长了,如果能设置一下自动断词就好了答:在工具—语言—断字—自动断字,勾上,word还是很强大的 11.问:如何将word文档里的繁体字改为简化字?答:工具—语言—中文简繁转换 12.问:怎样微调WORD表格线?WORD表格上下竖线不能对齐,用鼠标拖动其中一条线,可是一拖就跑老远,想微调表格竖线让上下对齐,请问该怎么办?答:选定上下两个单元格,然后指定其宽度就可以对齐了,再怎么拉都行press "Alt",打开绘图,其中有个调整坐标线,单击,将其中水平间距与垂直间距都调到最小值即可。
打开绘图,然后在左下脚的绘图网格里设置,把水平和垂直间距设置得最小。
13.问:怎样微调word表格线?我的word表格上下竖线不能对齐,用鼠标拖动其中一条线,可是一拖就跑老远,我想微调表格竖线让上下对齐,请问该怎么办? 答:可以如下操作:●按住ctl键还是shift,你have a try ●double click the line, try it ●打开绘图,设置一下网格(在左下角)。
使水平和垂直都为最小,试一把! ●press "Alt" 14.问:怎么把word文档里已经有的分页符去掉?答:先在工具——> 选项——> 视图——> 格式标记,选中全部,然后就能够看到分页符,delete就ok了。
15.问:Word中下标的大小可以改的吗?答:格式—字体 16.问:Word里怎么自动生成目录啊?答:用“格式>>样式和格式”编辑文章中的小标题,然后插入->索引和目录 17.问:Word的文档结构图能否整个复制? 论文要写目录了,不想再照着文档结构图输入一遍,有办法复制粘贴过来吗?答:可以自动生成的,插入索引目录。
18.问:做目录的时候有什么办法时右边的页码对齐?比如: 1.1 标题...............................1 1.2 标题...............................2答:画表格,然后把页码都放到一个格子里靠右或居中,然后让表格的线条消隐就可以了,打印出来就很整齐。
19.问:怎样在word中将所有大写字母转为小写?比如一句全大写的转为全小写的答:格式->更改大小写->小写 20.问:在存...
MSoffice与Openoffice还有WPSoffice的使?
WPS office比OPENOFFICE兼容性要好的多。
WPS不兼容的现象已经很少了。
根据我的使用经验,至少99.9%的文档能够正常使用。
剩下的只是稍微有些变形,简单调整一下即可。
WPS专业版是带有VBA的。
是金山从微软购买的版权。
另外即使是微软OFFICE,ms office2007与ms office2003也有不兼容的现象。
openoffice由于是国外开发的软件,对中文支持较差,粘贴段落时经常会出现缺字现象。
对DOC格式支持不是很好。
速度也比较慢。
我的一个WORD文档打不开了。
它显示“无法打开OFFICE OPEN ...
在office 2007里面文件扩展名分别为.docx,.xlsx, .pptx。
这些后面加了x的文件就是open xml格式。
这种是开放式的文件, 估计是保存成了这个格式,所以文件格式和扩展名都变了,一般高版本的office可以兼容低版本的东西, 你可以试着用2010去打开看看,或者装一个MS的兼容包试试看~
Java怎么操作OpenOffice创建word文档并向其设置内容
创建Openoffice连接OpenOfficeConnection con = new SocketOpenOfficeConnection(8100);try {//:\Program Files (x86)\OpenOffice,其实也可以是MS Office.out,等待eclipse打开;program>soffice -headless -accept="socket;);*** 将Word文档转换成html字符串的工具类** @author MZULE**/,等待下载。
4、安装OpenOffice..");e.printStackTrace();}//public class Doc2Html {public static void main(String[] args) {System,安装结束后;"//,说明一下,本文的测试基于 MS Win7 Ultimate X64 系统。
下面就是规规矩矩的实现。
1、下载OpenOffice,启动OpenOffice的一项服务。
* commons-io* jodconverter* juh* jurt* ridl* slf4j-api* slf4j-jdk14* unoil* xstream 8;获取OpenOffice连接失败..artofsolving.jodconverter将Word转Html的原理是这样的:1、客户上传Word文档到服务器2、服务器调用OpenOffice程序打开上传的Word文档3、OpenOffice将Word文档另存为Html格式4、Over至此可见.Pattern.getTime()+ ".util;import java.io.FileInputStream.artofsolving.jodconverter,调用cmd.io.InputStreamReader;import java.net.ConnectException;import com.artofsolving,port=8100,你懂的; 连接con.connect();} catch (ConnectException e) {System..查看代码package com.mzule.doc2html.println(toHtmlString(new File(".SocketOpenOfficeConnection;import com; + new Date();}/、下载Jodconverter 这是一个开启OpenOffice进行格式转化的第三方jar包。
3、泡杯热茶。
** @param docFile* 需要转换的文档* @param filepath* 文档中图片的保存位置* @return 转换成功的html代码*/.util.Date;);//"*** 将word转换成html文件,并且获取html文件代码, "C:/test"return htmlFile.openoffice.connection。
恩.io.FileNotFoundException;import java.io.artofsolving.jodconverter、Coding..out;import java;import java,2.openoffice.converter.OpenOfficeDocumentConverter;/C、打开eclipse6、喝杯热茶;/ 转换文档问htmlconverter.convert(docFile, htmlFile):C.regex.org 3\.println(" 关闭openoffice连接con.disconnect().BufferedReader;import java.io.openoffice.connection;import java; 创建转换器DocumentConverter converter = new OpenOfficeDocumentConverter(con);/urp;5;));}/*** 将word文档转换成html文档** @param docFile* 需要转换的word文档* @param filepath* 转换之后html的存放路径* @return 转换之后的html文件*/, String filepath) {/、新建eclipse项目;import java。
7,导入Jodconverter/lib 下得jar包.html".File;import java.io;/ 创建保存html的文件File htmlFile = new File(filepath + "/.IOException:/test/public static File convert(File docFile.util.regex.Matcher;import java.util.jodconverter.DocumentConverter;import com.OpenOfficeConnection;import com;test.doc"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 = "";Pattern bodyPattern = Pattern.compile(bodyReg);Matcher bodyMatcher = bodyPattern.matcher(htmlStr);if (bodyMatcher.find()) {// 获取BODY内容,并转化BODY标签为DIVhtmlStr = bodyMatcher.group().replaceFirst("", "");}// 调整图片地址htmlStr = htmlStr.replaceAll("转换成保留样式// content = content.replaceAll("(]*>.*?)()",// "");// 把转换成并删除样式htmlStr = htmlStr.replaceAll("(]*)(>.*?)()", "");// 删除不需要的标签htmlStr = htmlStr.replaceAll("]*?>","");// 删除不需要的属性htmlStr = htmlStr.replaceAll("]*)(?:lang|LANG|class|CLASS|style|STYLE|size|SIZE|face|FACE|[ovwxpOVWXP]:\\w+)=(?:'[^']*'|\"\"[^\"\"]*\"\"|[^>]+)([^>]*)>","");return htmlStr;}},这要求服务器端安装OpenOffice软件,不过OpenOffice的优势是跨平台 展开
转载请注明出处51数据库 » openoffice 打印 word
有内涵的纯妹