马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- @Override
- //word
- public Result<List<String>> call(MultipartFile file, String fileName,String bizPath) {
- InputStream inputStream=null;
- List<String> 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<List<String>> callPpt(MultipartFile file, String fileName, String bizPath) {
- InputStream inputStream= null;
- List<String> 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<List<String>> callPptx(MultipartFile file, String fileName, String bizPath) {
- InputStream inputStream= null;
- List<String> 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<List<String>> callPdf(MultipartFile file, String fileName, String bizPath) {
- InputStream inputStream=null;
- PDDocument doc = null;
- List<String> imgList= new ArrayList<>();
- try {
- inputStream = file.getInputStream();
- doc = PDDocument.load(inputStream);
- PDFRenderer renderer = new PDFRenderer(doc);
- for (int i = 0; i <doc.getNumberOfPages(); i++) {
- BufferedImage img = renderer.renderImageWithDPI(i, 100);
- PDFTextStripper pdfStripper = new PDFTextStripper();
- pdfStripper.setStartPage(i);
- pdfStripper.setEndPage(i);
- 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(doc!=null) {
- try {
- doc.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return Result.OK(imgList);
- }
复制代码 maven
- !--word转pdf -->
- <dependency>
- <groupId>com.aspose</groupId>
- <artifactId>aspose-words</artifactId>
- <version>15.12.0</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/src/main/resources/lib/aspose-words-15.12.0-jdk16.jar</systemPath>
- </dependency>
- <!--ppt转pdf -->
- <dependency>
- <groupId>com.aspose</groupId>
- <artifactId>aspose-slides</artifactId>
- <version>15.9.0</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/src/main/resources/lib/aspose.slides-15.9.0.jar</systemPath>
- </dependency>
- <dependency>
- <groupId>com.aspose</groupId>
- <artifactId>aspose-words</artifactId>
- <version>21.1.0</version>
- </dependency>
- <!-- Apache PDFBox -->
- <dependency>
- <groupId>org.apache.pdfbox</groupId>
- <artifactId>pdfbox</artifactId>
- <version>2.0.27</version> <!-- 确保使用最新版本 -->
- </dependency>
- <!-- 如果需要额外的功能,如字体处理,可以添加以下依赖 -->
- <dependency>
- <groupId>org.apache.pdfbox</groupId>
- <artifactId>fontbox</artifactId>
- <version>2.0.27</version> <!-- 确保版本与pdfbox一致 -->
- </dependency>
- <!--excel转pdf -->
- <dependency>
- <groupId>com.aspose</groupId>
- <artifactId>aspose-cells</artifactId>
- <version>8.5.2</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/src/main/resources/lib/aspose-cells-8.5.2.jar</systemPath>
- </dependency>
- <!-- https://mvnrepository.com/artifact/com.lowagie/itext -->
- <dependency>
- <groupId>com.lowagie</groupId>
- <artifactId>itext</artifactId>
- <version>2.1.7</version>
- </dependency>
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.3.3</version>
- </dependency>
复制代码 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包找不到的私信
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |