目录: |
1、转换成为html页面 |
2、html源代码转换成为doc文件 |
3、html源代码转换成为pdf文件 |
4、压缩多个文件成为一个zip文件 |
5、对文件进行删除 |
实施过程:
A、html页面的实现:拼装(获取)的html代码----->html页面,
B、doc文档文件的实现:拼装(获取)的html代码----->doc文档文件
C、pdf文件的实现:拼装(获取)的html代码----->html页面----->doc文档文件----->pdf文件(生成后可自行删除html、doc文件)
1、转换成为html页面
/** * 创建html文件 * name:传入生成的文件的文件名 * path:存放地址位置 * * * * @throws IOException */ public static boolean creatTxtFile(String name) throws IOException { boolean flag = false; filenameTemp = path + name + ".html"; File filename = new File(filenameTemp); if (!filename.exists()) { filename.createNewFile(); flag = true; }else{ //倘若文件存在则将原有文件移除并创建新的文件 filename.delete(); filename.createNewFile(); flag = true; } return flag; } /** * 将内容写到html文件中 * * @param newStr (html格式的字符串) * filenameTemp:文件路径 * * 新内容 * @throws IOException */ public static boolean writeHtmlFile (String newStr)throws IOException { // 先读取原有文件内容,然后进行写入操作 boolean flag = false; String filein = newStr + "\r\n"; String temp = ""; FileInputStream fis = null; InputStreamReader isr = null; BufferedReader br = null; FileOutputStream fos = null; PrintWriter pw = null; try { // 文件路径 File file = new File(filenameTemp); // 将文件读入输入流 fis = new FileInputStream(file); isr = new InputStreamReader(fis); br = new BufferedReader(isr); StringBuffer buf = new StringBuffer(); // 保存该文件原有的内容 for (int j = 1; (temp = br.readLine()) != null; j++) { buf = buf.append(temp); // System.getProperty("line.separator") // 行与行之间的分隔符 相当于“\n” buf = buf.append(System.getProperty("line.separator")); } buf.append(filein); fos = new FileOutputStream(file); pw = new PrintWriter(fos); pw.write(buf.toString().toCharArray()); pw.flush(); flag = true; } catch (IOException e1) { // TODO 自动生成 catch 块 throw e1; } finally { if (pw != null) { pw.close(); }if (fos != null) { fos.close(); }if (br != null) { br.close(); }if (isr != null) { isr.close(); }if (fis != null) { fis.close(); }} return flag; } |
2、html源代码转换成为doc文件
/** * HTML文件转换成为doc文件 * filePath:文件存储的地址 * con:html源代码 * FileName:生成的文件名 * * * @throws IOException */ //将源代码写入Doc文档中,转换成为Doc文档 public static boolean writeWordFile(String filePath,String con,String FileName) { boolean w = false; String path = filePath; try { if (!"".equals(path)) { // 检查目录是否存在 File fileDir = new File(path); if (fileDir.exists()) { // 生成临时文件名称 fileName的文件为生成的文件为word文件 String fileName = FileName + ".doc"; String content = con; byte b[] = content.getBytes(); ByteArrayInputStream bais = new ByteArrayInputStream(b); POIFSFileSystem poifs = new POIFSFileSystem(); DirectoryEntry directory = poifs.getRoot(); directory.createDocument("WordDocument", bais); FileOutputStream ostream = new FileOutputStream(path+ fileName); poifs.writeFilesystem(ostream); bais.close(); ostream.close(); } } } catch (IOException e) { e.printStackTrace(); } return w; } |
3、html源代码转换成为pdf文件(转换成为html页面不做雷同出来,请参考上文)
/** * HTML源代码转doc文件转pdf文件 * pdfFile :生成的pdf文件路径 * wordFile :doc已存在的文件路径 * FileName:生成的文件名 * * * @throws IOException */ //封装doc文件转换成为pdf文件 public void DocToPdf(String FileName){ //将doc文件转换成为pdf文件 String pdfPath = “D:/"+FileName+".pdf"; String wordPath = “D:/"+FileName+".doc"; ActiveXComponent app = null; String wordFile = wordPath; String pdfFile = pdfPath; //System.out.println("开始转换..."); // 开始时间 //long start = System.currentTimeMillis(); try { // 打开word app = new ActiveXComponent("Word.Application"); // 设置word不可见,很多博客下面这里都写了这一句话,其实是没有必要的,因为默认就是不可见的,如果设置可见就是会打开一个word文档,对于转化为pdf明显是没有必要的 //app.setProperty("Visible", false); // 获得word中所有打开的文档 Dispatch documents = app.getProperty("Documents").toDispatch(); //System.out.println("打开文件: " + wordFile); // 打开文档 Dispatch document = Dispatch.call(documents, "Open", wordFile, false, true).toDispatch(); // 如果文件存在的话,不会覆盖,会直接报错,所以我们需要判断文件是否存在 File target = new File(pdfFile); if (target.exists()) { target.delete(); } //System.out.println("另存为: " + pdfFile); // 另存为,将文档报错为pdf,其中word保存为pdf的格式宏的值是17 Dispatch.call(document, "SaveAs", pdfFile, 17); // 关闭文档 Dispatch.call(document, "Close", false); // 结束时间 //long end = System.currentTimeMillis(); //System.out.println("转换成功,用时:" + (end - start) + "ms"); }catch(Exception e) { System.out.println("转换失败"+e.getMessage()); }finally { // 关闭office app.invoke("Quit", 0); } } |
4、压缩多个文件成为一个zip文件
/** * 功能:压缩多个文件成一个zip文件 * @param srcfile:源文件列表 * @param zipfile:压缩后的文件 */ public static void zipFiles(File[] srcfile,File zipfile){ byte[] buf=new byte[1024]; try { //ZipOutputStream类:完成文件或文件夹的压缩 ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipfile)); for(int i=0;i<srcfile.length;i++){ FileInputStream in=new FileInputStream(srcfile[i]); out.putNextEntry(new ZipEntry(srcfile[i].getName())); int len; while((len=in.read(buf))>0){ out.write(buf,0,len); } out.closeEntry(); in.close(); } out.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } |
5、对文件进行删除
/** * 功能:压缩多个文件成一个zip文件 * @param pathName:源文件列表 */ //压缩完成后删除压缩文件 public void delFile(String pathName){ String path = “D:/" + pathName; File file = new File(path); if(file.isFile()){ file.delete(); } } |