@Override
//word
public Result> call(MultipartFile file, String fileName,String bizPath) {
InputStream inputStream=null;
List imgList= new ArrayList<>();
try {
inputStream= file.getInputStream();
Document doc= new Document(inputStream);
for (int i = 0; i < doc.getPageCount(); i++) {
Document page = doc.extractPages(i, 1);
ByteArrayOutputStream dstStream = new ByteArrayOutputStream();
page.save(dstStream, SaveFormat.PNG);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(dstStream.toByteArray());
BufferedImage img = ImageIO.read(byteArrayInputStream);
MultipartFile files = ImageUtil.multipartFile(img, System.currentTimeMillis()+"", "png");
//上传minio
Result> upload = uploadUtil.upload(files, bizPath, false);
dstStream.flush();
dstStream.close();
imgList.add(upload.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.OK(imgList);
}
@Override
public Result> callPpt(MultipartFile file, String fileName, String bizPath) {
InputStream inputStream= null;
List imgList= new ArrayList<>();
try {
inputStream= file.getInputStream();
HSLFSlideShow ppt = new HSLFSlideShow(inputStream);
Dimension pgsize = ppt.getPageSize();
for (int idx = 0; idx < ppt.getSlides().size(); idx++) {
HSLFSlide slide=ppt.getSlides().get(idx);
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide.draw(graphics);
ByteArrayOutputStream dstStream = new ByteArrayOutputStream();
boolean png = ImageIO.write(img, "png", dstStream);
if(png){
MultipartFile files = ImageUtil.multipartFile(img, System.currentTimeMillis()+"", "png");
Result> upload = uploadUtil.upload(files, bizPath, false);
dstStream.flush();
dstStream.close();
imgList.add(upload.getMessage());
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.OK(imgList);
}
@Override
public Result> callPptx(MultipartFile file, String fileName, String bizPath) {
InputStream inputStream= null;
List imgList= new ArrayList<>();
try {
inputStream= file.getInputStream();
XMLSlideShow ppt = new XMLSlideShow(inputStream);
Dimension pgsize = ppt.getPageSize();
for (int idx = 0; idx < ppt.getSlides().size(); idx++) {
XSLFSlide slide=ppt.getSlides().get(idx);
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide.draw(graphics);
ByteArrayOutputStream dstStream = new ByteArrayOutputStream();
boolean png = ImageIO.write(img, "png", dstStream);
if(png){
MultipartFile files = ImageUtil.multipartFile(img, System.currentTimeMillis()+"", "png");
Result> upload = uploadUtil.upload(files, bizPath, false);
dstStream.flush();
dstStream.close();
imgList.add(upload.getMessage());
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.OK(imgList);
}
@Override
public Result> callPdf(MultipartFile file, String fileName, String bizPath) {
InputStream inputStream=null;
PDDocument doc = null;
List imgList= new ArrayList<>();
try {
inputStream = file.getInputStream();
doc = PDDocument.load(inputStream);
PDFRenderer renderer = new PDFRenderer(doc);
for (int i = 0; i upload = uploadUtil.upload(files, bizPath, false);
dstStream.flush();
dstStream.close();
imgList.add(upload.getMessage());
}
}
}catch (Exception e) {
e.printStackTrace();
}finally {
if(doc!=null) {
try {
doc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.OK(imgList);
}
maven
!--word转pdf -->
com.aspose
aspose-words
15.12.0
system
${project.basedir}/src/main/resources/lib/aspose-words-15.12.0-jdk16.jar
com.aspose
aspose-slides
15.9.0
system
${project.basedir}/src/main/resources/lib/aspose.slides-15.9.0.jar
com.aspose
aspose-words
21.1.0
org.apache.pdfbox
pdfbox
2.0.27
org.apache.pdfbox
fontbox
2.0.27
com.aspose
aspose-cells
8.5.2
system
${project.basedir}/src/main/resources/lib/aspose-cells-8.5.2.jar
com.lowagie
itext
2.1.7
commons-fileupload
commons-fileupload
1.3.3
ImageUtil
public static MultipartFile multipartFile(Image image,String fileName,String suffix){
//创建一个ByteArrayOutputStream
ByteArrayOutputStream os = new ByteArrayOutputStream();
//把BufferedImage写入ByteArrayOutputStream
ImgUtil.write(image, suffix, os);
//ByteArrayOutputStream转成InputStream
InputStream input = new ByteArrayInputStream(os.toByteArray());
//InputStream转成MultipartFile
try {
return new MockMultipartFile(fileName, fileName+"."+suffix, ContentType.contentType(suffix), input);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
工具类和jar包找不到的私信