package com.product.file.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.math.RoundingMode; import java.text.DecimalFormat; import com.aspose.cells.Cells; import com.aspose.cells.PdfSaveOptions; import com.aspose.cells.Workbook; import com.aspose.cells.Worksheet; import com.aspose.cells.WorksheetCollection; import com.aspose.slides.Presentation; import com.aspose.words.Document; import com.aspose.words.ImportFormatMode; import com.aspose.words.SaveFormat; import com.product.core.exception.BaseException; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.file.config.FileCode; public class AsposeUtil { //是否初始了license private static boolean isInitLicense=false; /** * 获取license * @return */ public static boolean getLicense(int type)throws BaseException { //已经初始过,不再初始 if(isInitLicense) { return true; } boolean result = true; InputStream is = null; try { is = AsposeUtil.class.getClassLoader().getResourceAsStream("license.xml"); com.aspose.cells.License excel = new com.aspose.cells.License(); excel.setLicense(is); is = AsposeUtil.class.getClassLoader().getResourceAsStream("license.xml"); com.aspose.words.License word = new com.aspose.words.License(); word.setLicense(is); is = AsposeUtil.class.getClassLoader().getResourceAsStream("license.xml"); com.aspose.slides.License ppt = new com.aspose.slides.License(); ppt.setLicense(is); isInitLicense=true; } catch (Exception e) { result=false; throw new BaseException(FileCode.DOC_CONVERT_FALL,e); }finally{ if(is!=null) { try { is.close(); }catch(IOException e) { throw new BaseException(e); } } } return result; } /** * * @param officePath * @param OutPutPath * @throws BaseException */ public static void Excel2Pdf(String officePath,String OutPutPath)throws BaseException { // 验证License if (!getLicense(1)) { return; } FileOutputStream fileOS=null; try { File file = new File(OutPutPath); if (!file.exists()) { file.mkdirs(); } Workbook wb = new Workbook(officePath);// 原始excel路径 fileOS = new FileOutputStream(OutPutPath); //wb.save(fileOS, com.aspose.cells.SaveFormat.PDF); PdfSaveOptions pdfSaveOptions = new PdfSaveOptions(); pdfSaveOptions.setAllColumnsInOnePagePerSheet(true); wb.save(fileOS, pdfSaveOptions); } catch (Exception e) { throw new BaseException(FileCode.DOC_CONVERT_FALL,e); }finally{ if(fileOS!=null) { try { fileOS.flush(); fileOS.close(); }catch(IOException e) { throw new BaseException(e); } } } } public static void Excel2Html(String officePath,String OutPutPath)throws BaseException { // 验证License if (!getLicense(1)) { return; } FileOutputStream fileOS=null; try { File file = new File(OutPutPath); if (!file.exists()) { file.mkdirs(); } Workbook wb = new Workbook(officePath);// 原始excel路径 WorksheetCollection sheets=wb.getWorksheets(); System.out.println("sheet个数:"+sheets.getCount()); for(int i=0;i10){ return Size+"MB"; } //"doc", "docx", "xls","xlsx", "ppt", "pptx" try { if(officeType.equals("doc")||officeType.equals("docx")){ Word2Pdf(split[0],OutPutPath+"/"+officeName); }else if(officeType.equals("xls")||officeType.equals("xlsx")){ Excel2Pdf(split[0],OutPutPath+"/"+officeName); }else if(officeType.equals("ppt")||officeType.equals("pptx")){ PPT2Pdf(split[0],OutPutPath+"/"+officeName); }else{ System.out.println("无法识别该文件!"); return "Error"; } } catch (Exception e) { e.printStackTrace(); } } else { return "NotExists"; } return OutPutPath+officeName; } /** * word文档的合并 * @param targetWordFile * @param sourceWordFile * @return * @throws Exception */ public static File mergeWord(String targetWordFile,String sourceWordFile ) throws BaseException{ File target=new File(targetWordFile); File source=new File(sourceWordFile); return mergeWord(target,source); } /** * word文档的合并 * @param targetWordFile * @param sourceWordFile * @return * @throws Exception */ public static File mergeWord(File target,File source ) throws BaseException{ if(!target.exists() && !source.exists()) { return null; }else if(!source.exists() && target.exists()) { return target; }else if(source.exists() && !target.exists()) { return source; } // 验证License if (!getLicense(2)) { return null; } FileInputStream tin=null; FileInputStream sin=null; FileOutputStream out=null; String temp=target.getParent()+File.separator+"mergeTemp"; File temp_target=new File(temp+File.separator+target.getName()); try { tin=new FileInputStream(target); sin=new FileInputStream(source); Document targetDoc = new Document(tin); Document sourceDoc = new Document(sin); targetDoc.appendDocument(sourceDoc, ImportFormatMode.KEEP_SOURCE_FORMATTING); File dir=new File(temp); if(!dir.exists()) { if(dir.mkdirs()) { if(temp_target.createNewFile()) { out=new FileOutputStream(temp_target); targetDoc.save(out, SaveFormat.DOCX); } } } }catch(Exception e) { throw new BaseException(FileCode.DOC_MERGE_FALL,e); } finally{ try { if(tin!=null) { tin.close(); } if(sin!=null) { sin.close(); } if(out!=null) { out.flush(); out.close(); } }catch(IOException e) { throw new BaseException(FileCode.DOC_MERGE_FALL,e); } } return temp_target; } public static void main(String args[]) { String file="E:/work/沄崃/FE6.6产品报价工具-新 - 副本.xlsx"; AsposeUtil.OfficeToPdf(file); } }