Android实现excel/pdf/word/odt/图片相互转换
作者:芝麻粒儿
这篇文章主要为大家详细介绍了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()); } }
以上就是Android实现excel/pdf/word/odt/图片相互转换的详细内容,更多关于Android excel pdf word odt图片转换的资料请关注脚本之家其它相关文章!