参考文献
Java实现word文档在线预览,读取office(word,excel,ppt)文件 https://blog.csdn.net/weixin_34004576/article/details/94525426?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_default&utm_relevant_index=2
Java 实现word pdf在线预览 https://blog.csdn.net/Black_Tshirt/article/details/81066520?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.pc_relevant_default&utm_relevant_index=6
SpringBoot读取Resource下文件的4种方法 http://cache.baiducontent.com/c?m=O4TEIcBO532jq6TszxU4g3APaU5-epsr6GjDxXiJmcb2mUbu3Zn3NLcVzn05T3fRjCkG9l-sJoCtBMS27gWNFu1duPewVlo8A51ySBdVDW6_1O4PLc6TDHIimjeoR-SsAzlYf2YBSd9RPT_ChLNg8EHBb6gzlx0QHTwLWQW32kqhpcnTjy0vWJyNDZ7fHNew&p=8e67c64ad4934eac59ecd23c48529f&newp=837e8b1e908912a05abd9b7d0c17c4231610db2151d7d11f6b82c825d7331b001c3bbfb422201a01d5ce7a6c03af485ce1f437783d0923a3dda5c91d9fb4c57479&s=cfcd208495d565ef&user=baidu&fm=sc&query=springboot++%B6%C1%C8%A1resources%CF%C2%CE%C4%BC%FE&qid=a9314b3f00084a77&p1=2
正文
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.12</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>test3</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>test3</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>
</project>
TestController.java
package com.example.test3.controller;
import org.apache.commons.io.IOUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
@RestController
public class TestController {
@GetMapping("/home")
public void home(HttpServletResponse response) throws IOException {
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("pdf/123.pdf");
ServletOutputStream outputStream = response.getOutputStream();
long length = IOUtils.copy(inputStream, outputStream);
System.out.println("该文件字节长度为 = " + length);
IOUtils.close(inputStream);
IOUtils.close(outputStream);
}
}
测试
进阶,增加前端代码
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>清算值班</title>
<style>
</style>
</head>
<body>
<div id="app">
<a href="http://localhost:8080/home" target="_blank">预览</a>
<el-button
type="success"
@click="openPdf()">预览
</el-button>
</div>
<script src="axios.min.js"></script>
<script src="vue.js"></script>
<script src="element-ui/index.js"></script>
<link rel="stylesheet" href="element-ui/index.css">
<script>
var app = new Vue({
el: '#app',
data: {},
methods: {
openPdf() {
window.open("http://localhost:8080/home", "_blank")
},
},
})
</script>
</body>
</html>
测试
点击预览
在新标签页打开pdf