
1.用java怎么将word文档转成图片格式
使用 java 操作 openoffice 实现格式转换 辛苦了几天。
不敢独享成果 首先,要安装 openoffice (废话- -) 创建JAVA项目的时候 需要至少以下4个包 juh.jar,jurt.jar,ridl.jar,unoil.jar 以下是路径 ..\OpenOffice.org 2.3\program\classes 我只实现了我要的功能,就是把一种文件格式转成另一种 Java代码 package testh; import java.io.*; import com.sun.star.uno.UnoRuntime; public class testcls { public static void readdoc(String paths, String savepaths) { File d = new File(paths); //取得当前文件夹下所有文件和目录的列表 File lists[] = d.listFiles(); String pathss = new String(""); //对当前目录下面所有文件进行检索 for(int i = 0; i < lists.length;="" i="" ++)="" {="" if(lists[i].isfile())="" {="" string="" filename="lists[i].getName();" string="" filetype="new" string("");="" 取得文件类型="" filetype="filename.substring((filename.length()" -="" 3),="" filename.length());="" 判断是否为doc文件="" if(filetype.equals("doc"))="" {="" system.out.println("当前正在检索。.");="" 打印当前目录路径="" system.out.println(paths);="" 打印doc文件名="" string="" fname="filename.substring(0," (filename.length()="" -="" 4));="" system.out.println("检索到文件"+fname);="" try="" {="" 指定文件路径和名称="" string="" path="savepaths+fname+".html";" file="" outfilename="new" file(path);="" *="" *//**="" *="" 检查文件是否存在.="" *="" @throws="" ioexception="" *="" */="" if="" (!outfilename.exists())="" {="" system.err.println("目标路径无同名文件,开始转换");="" system.out.print("正在转换文件:"+fname);="" dump(paths,fname,savepaths);="" }="" else="" {="">
\n"); continue; } RandomAccessFile mm = null; } catch(Exception e) { e.printStackTrace(); } } } } } public static void Dump(String FilePath,String FileName,String OutPath) { com.sun.star.uno.XComponentContext xContext = null; try { // get the remote office component context xContext = com.sun.star.comp.helper.Bootstrap.bootstrap(); System.out.println("Connected to a running office 。"); // get the remote office service manager com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager(); Object oDesktop = xMCF.createInstanceWithContext( "com.sun.star.frame.Desktop", xContext); com.sun.star.frame.XComponentLoader xCompLoader = (com.sun.star.frame.XComponentLoader) UnoRuntime.queryInterface( com.sun.star.frame.XComponentLoader.class, oDesktop); java.io.File sourceFile = new java.io.File(FilePath+FileName+".doc");//读取的文件 StringBuffer sLoadUrl = new StringBuffer("file:///"); sLoadUrl.append(sourceFile.getCanonicalPath().replace('\\', '/')); sourceFile = new java.io.File(OutPath+FileName+".html");//输出的文件 System.out.print(OutPath+" "+FileName); StringBuffer sSaveUrl = new StringBuffer("file:///"); sSaveUrl.append(sourceFile.getCanonicalPath().replace('\\', '/')); com.sun.star.beans.PropertyValue[] propertyValue = new com.sun.star.beans.PropertyValue[1]; propertyValue[0] = new com.sun.star.beans.PropertyValue(); propertyValue[0].Name = "Hidden"; propertyValue[0].Value = new Boolean(true); Object oDocToStore = xCompLoader.loadComponentFromURL( sLoadUrl.toString(), "_blank", 0, propertyValue ); com.sun.star.frame.XStorable xStorable = (com.sun.star.frame.XStorable)UnoRuntime.queryInterface( com.sun.star.frame.XStorable.class, oDocToStore ); propertyValue = new com.sun.star.beans.PropertyValue[ 2 ]; propertyValue[0] = new com.sun.star.beans.PropertyValue(); propertyValue[0].Name = "Overwrite"; propertyValue[0].Value = new Boolean(true); propertyValue[1] = new com.sun.star.beans.PropertyValue(); propertyValue[1].Name = "FilterName"; propertyValue[1].Value = "HTML (StarWriter)";//你一定发现了,把这里改成其他参数,可以保存为不同的文件 MS Word 97,writer_pdf_Export xStorable.storeAsURL( sSaveUrl.toString(), propertyValue ); System.out.println("\nDocument \"" + sLoadUrl + "\" saved under \"" + sSaveUrl + "\"\n"); com.sun.star.util.XCloseable xCloseable = (com.sun.star.util.XCloseable) UnoRuntime.queryInterface(com.sun.star.util.XCloseable.class, oDocToStore ); if (xCloseable != null ) { xCloseable.close(false); } else { com.sun.star.lang.XComponent xComp = (com.sun.star.lang.XComponent) UnoRuntime.queryInterface( com.sun.star.lang.XComponent.class, oDocToStore ); xComp.dispose(); } System.out.println("document closed!"); } catch( Exception e ) { e.printStackTrace(System.err。
2.java怎么由html生成word,保留html样式
@RequestMapping("download")public void exportWord( HttpServletRequest request, HttpServletResponse response) throws Exception {User user = AppContext.getLoginUser(); Student student = studentSvc.findByUserId(user.getId());try {//word内容String content="
";byte b[] = content.getBytes("utf-8"); //这里是必须要设置编码的,不然导出中文就会乱码。ByteArrayInputStream bais = new ByteArrayInputStream(b);//将字节数组包装到流中 /** 关键地方* 生成word格式*/POIFSFileSystem poifs = new POIFSFileSystem(); DirectoryEntry directory = poifs.getRoot(); DocumentEntry documentEntry = directory.createDocument("WordDocument", bais); //输出文件String fileName="实习考核鉴定表";request.setCharacterEncoding("utf-8"); response.setContentType("application/msword");//导出word格式response.addHeader("Content-Disposition", "attachment;filename=" +new String( (fileName + ".doc").getBytes(), "iso-8859-1"));OutputStream ostream = response.getOutputStream(); poifs.writeFilesystem(ostream); bais.close(); ostream.close(); }catch(Exception e){AppUtils.logError("导出出错:%s", e.getMessage());} }。
转载请注明出处51数据库 » javahtml转word
阿里馬雲