最后
每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。
如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的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算法,数据结构,加密算法,分布式缓存等等
高效学习视频
eeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等
[外链图片转存中…(img-JlJhtow1-1715414153490)]