Java最新springboot高级功能(九)jodconverter实现在线预览,成长路线图

最后

每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。

如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

DocumentConverter documentConverter;

@GetMapping(“/toPdfFile”)

public String toPdfFile(FileMessage fileMessage) {

// 获取HttpServletResponse

HttpServletResponse response =

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getResponse();

// 需要转换的文件

File file = new File(fileMessage.getFileDownloadUri());

try {

// 转换之后文件生成的地址

File newFile = new File(“D:/common_files/pdf”);

if (!newFile.exists()) {

newFile.mkdirs();

}

String converterPdf = “D:/common_files/pdf” + “/” + fileMessage.getFileName() + “-pdf.pdf”;

// 文件转化

documentConverter.convert(file).to(new File(converterPdf)).execute();

// 使用response,将pdf文件以流的方式发送的前段

ServletOutputStream outputStream = response.getOutputStream();

// 读取文件

InputStream in = new FileInputStream(new File(converterPdf));

// copy文件

int i = IOUtils.copy(in, outputStream);

System.out.println(i);

in.close();

outputStream.close();

} catch (Exception e) {

e.printStackTrace();

}

return “This is to pdf”;

}

}

但是这种会发生excle过长穿行的情况;

2.使用com.artofsolving

1.pom文件

com.artofsolving

jodconverter

2.2.2

org.openoffice

jurt

3.0.1

org.openoffice

ridl

3.0.1

org.openoffice

juh

3.0.1

org.openoffice

unoil

3.0.1

注意2.2.2是在maven服务器上没有 所以需要单独下载处理 直接上网盘地址

https://pan.baidu.com/s/1dwfLHhUUg9nXf1aRAYfJ8Q

提取码:57nm

2.Controller

import com.artofsolving.jodconverter.DocumentConverter;

import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;

import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;

import org.apache.commons.io.IOUtils;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

import org.springframework.web.context.request.RequestContextHolder;

import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServletResponse;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

@RestController

public class OnlinePreviewController {

@GetMapping(“/toPdfFile”)

public void toPdfFile(FileMessage fileMessage) throws IOException {

// 获取HttpServletResponse

HttpServletResponse response =

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getResponse();

// 源文件目录

File inputFile = new File(fileMessage.getFileDownloadUri());

if (!inputFile.exists()) {

System.out.println(“源文件不存在!”);

return;

}

// 转换之后文件生成的地址

File newFile = new File(“D:/common_files/pdf”);

if (!newFile.exists()) {

newFile.mkdirs();

}

String converterPdf = “D:/common_files/pdf” + “/” + fileMessage.getFileName() + “-pdf.pdf”;

// 输出文件目录

File outputFile = new File(converterPdf);

if (!outputFile.getParentFile().exists()) {

outputFile.getParentFile().exists();

}

// 调用openoffice服务线程

String command =

“C:/Program Files (x86)/OpenOffice 4/program/soffice.exe -headless -accept=“socket,host=127.0.0.1,port=8100;urp;””;

Process p = Runtime.getRuntime().exec(command);

// 连接openoffice服务

OpenOfficeConnection connection = new SocketOpenOfficeConnection(“127.0.0.1”, 8100);

connection.connect();

// 转换

DocumentConverter converter = new ConverterDocument(connection);

converter.convert(inputFile, outputFile);

ServletOutputStream outputStream = response.getOutputStream();

// 读取文件

InputStream in = new FileInputStream(new File(converterPdf));

// copy文件

int i = IOUtils.copy(in, outputStream);

in.close();

outputStream.close();

// 关闭连接

connection.disconnect();

// 关闭进程

p.destroy();

System.out.println(“转换完成!”);

}

}

转换方法为

DocumentConverter converter = new ConverterDocument(connection);

converter.convert(inputFile, outputFile);

因为excel折行问题 所以我们把纸张改变 重写了ConverterDocument

3.ConverterDocument

import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;

import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;

import com.sun.star.awt.Size;

import com.sun.star.beans.PropertyValue;

import com.sun.star.lang.XComponent;

import com.sun.star.uno.UnoRuntime;

import com.sun.star.view.PaperFormat;

import com.sun.star.view.XPrintable;

/**

  • 应用模块名称:

  • 代码描述:

  • Copyright: Copyright © 2020, Inc. All rights reserved.

  • Company: 万朋测绘科技有限公司

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

image

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

eeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

[外链图片转存中…(img-JlJhtow1-1715414153490)]

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值