软件编程
位置:首页>> 软件编程>> Android编程>> Android实现excel/pdf/word/odt/图片相互转换

Android实现excel/pdf/word/odt/图片相互转换

作者:芝麻粒儿  发布时间:2021-12-05 23:08:16 

标签:Android,excel,pdf,word,odt,图片

实践过程

pdf转excel

public static long pdfToExcel(String inFile, String outFile) throws Exception {
   if (!com.yrnet.transfer.business.transfer.file.License.getPdfLicense()) {
       return 0;
   }
   try {
       long old = System.currentTimeMillis();
       Document doc = new Document(inFile);
       ExcelSaveOptions options = new ExcelSaveOptions();
       options.setFormat(ExcelSaveOptions.ExcelFormat.XLSX);
       doc.save(outFile, options);
       Out.print(inFile, outFile, System.currentTimeMillis(), old);
       return new File(outFile).length();
   }catch (Exception e) {
       e.printStackTrace();
       throw new Exception(e.getMessage());
   }
}

excel转pdf

public static long excelToPdf(String inFile, String outFile) throws Exception {
   if (!com.yrnet.transfer.business.transfer.file.License.getExcelLicense()) {
       return 0;
   }
   try {
       long old = System.currentTimeMillis();
       File pdfFile = new File(outFile);
       Workbook wb = new Workbook(inFile);
       PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
       pdfSaveOptions.setOnePagePerSheet(true);
       FileOutputStream fileOS = new FileOutputStream(pdfFile);
       wb.save(fileOS, SaveFormat.PDF);
       fileOS.close();
       long now = System.currentTimeMillis();
       Out.print(inFile, outFile, now, old);
       return pdfFile.length();
   }catch (Exception e) {
       e.printStackTrace();
       throw new Exception(e.getMessage());
   }
}

ppt转pdf

public static long pptToPdf(String inFile, String outFile) throws Exception {
if (!com.yrnet.transfer.business.transfer.file.License.getPptLicense()) {
       return 0;
   }
   try {
       long old = System.currentTimeMillis();
       File pdfFile = new File(outFile);
       FileOutputStream os = new FileOutputStream(pdfFile);
       Presentation pres = new Presentation(inFile);
       pres.save(os, com.aspose.slides.SaveFormat.Pdf);
       os.close();
       long now = System.currentTimeMillis();
       Out.print(inFile, outFile, now, old);
       return pdfFile.length();
   } catch (Exception e) {
       e.printStackTrace();
       throw new Exception(e.getMessage());
   }
}

pdf转ppt

public static long pdfToPpt(String inFile, String outFile) {
  if (!com.yrnet.transfer.business.transfer.file.License.getPdfLicense()) {
       return 0;
   }
   long old = System.currentTimeMillis();
   Document pdfDocument = new Document(inFile);
   PptxSaveOptions pptxOptions = new PptxSaveOptions();
   pptxOptions.setExtractOcrSublayerOnly(true);
   pdfDocument.save(outFile, pptxOptions);
   long now = System.currentTimeMillis();
   Out.print(inFile, outFile, now, old);
   return new File(outFile).length();
}

pdf转word

public static long pdfToDoc(String inFile, String outFile) {
 if (!com.yrnet.transfer.business.transfer.file.License.getPdfLicense()) {
       return 0;
   }
   log.info("开始转换...");
   long old = System.currentTimeMillis();
   Document pdfDocument = new Document(inFile);
   DocSaveOptions saveOptions = new DocSaveOptions();
   /** 或者DocSaveOptions.DocFormat.DocX*/
   saveOptions.setFormat(DocSaveOptions.DocFormat.Doc);
   pdfDocument.save(outFile, saveOptions);
   long now = System.currentTimeMillis();
   Out.print(inFile, outFile, now, old);
   log.info("转换结束...");
   return new File(outFile).length();
}

word转pdf

public static long wordToPdf(String inFile, String outFile) throws Exception {
   if (!com.yrnet.transfer.business.transfer.file.License.getWordLicense()) {
       return 0;
   }
   try {
       long old = System.currentTimeMillis();
       File file = new File(outFile);
       FileOutputStream os = new FileOutputStream(file);
       Document doc = new Document(inFile);
       Document tmp = new Document();
       tmp.removeAllChildren();
       tmp.appendDocument(doc, ImportFormatMode.USE_DESTINATION_STYLES);
       System.out.println("开始解析word文档" + inFile);
       doc.save(os, SaveFormat.PDF);
       long now = System.currentTimeMillis();
       log.info("target file size:{}",file.length());
       os.close();
       Out.print(inFile, outFile, now, old);
       return file.length();
   } catch (Exception e) {
       log.error(inFile + "转换失败,请重试",e);
       throw new Exception(e.getMessage());
   }
}

excel转图片

public static long excelToPic(String inFile, String outFile) throws Exception {
  if (!com.yrnet.transfer.business.transfer.file.License.getExcelLicense()) {
       return 0;
   }
   try {
       long old = System.currentTimeMillis();
       Workbook wb = new Workbook(inFile);
       Worksheet sheet = wb.getWorksheets().get(0);
       ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
       imgOptions.setImageFormat(ImageFormat.getPng());
       imgOptions.setCellAutoFit(true);
       imgOptions.setOnePagePerSheet(true);
       SheetRender render = new SheetRender(sheet, imgOptions);
       render.toImage(0, outFile);
       long now = System.currentTimeMillis();
       Out.print(inFile, outFile, now, old);
       return new File(outFile).length();
   }catch (Exception e) {
       e.printStackTrace();
       throw new Exception(e.getMessage());
   }
}

pdf转图片

public static long pdfToPng(String inFile, List<String> outFile) throws Exception {
 long size = 0;
  if (!com.yrnet.transfer.business.transfer.file.License.getPdfLicense()) {
      return size;
  }
  try {
      long old = System.currentTimeMillis();
      Document pdfDocument = new Document(inFile);
      Resolution resolution = new Resolution(960);
      JpegDevice jpegDevice = new JpegDevice(resolution);
      for (int index=1;index<=pdfDocument.getPages().size();index++) {
          String path = inFile.substring(0,inFile.lastIndexOf(".")) + "_"+index+".png";
          File file = new File(path);
          size += file.length();
          FileOutputStream fileOs = new FileOutputStream(file);
          jpegDevice.process(pdfDocument.getPages().get_Item(index), fileOs);
          outFile.add(path);
          fileOs.close();
          long now = System.currentTimeMillis();
          Out.print(inFile, path, now, old);
      }
      return size;
  }catch (Exception e){
      log.error(e.getMessage(),e);
      throw new Exception(e.getMessage());
  }
}

odt转pdf

public static long pdfToPng(String inFile, List<String> outFile) throws Exception {
 long size = 0;
   if (!com.yrnet.transfer.business.transfer.file.License.getPdfLicense()) {
       return size;
   }
   try {
       long old = System.currentTimeMillis();
       Document pdfDocument = new Document(inFile);
       Resolution resolution = new Resolution(960);
       JpegDevice jpegDevice = new JpegDevice(resolution);
       for (int index=1;index<=pdfDocument.getPages().size();index++) {
           String path = inFile.substring(0,inFile.lastIndexOf(".")) + "_"+index+".png";
           File file = new File(path);
           size += file.length();
           FileOutputStream fileOs = new FileOutputStream(file);
           jpegDevice.process(pdfDocument.getPages().get_Item(index), fileOs);
           outFile.add(path);
           fileOs.close();
           long now = System.currentTimeMillis();
           Out.print(inFile, path, now, old);
       }
       return size;
   }catch (Exception e){
       log.error(e.getMessage(),e);
       throw new Exception(e.getMessage());
   }
}

来源:https://blog.csdn.net/qq_27489007/article/details/130099912

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com