java springboot2.7 写一个本地 pdf 预览的接口

依赖方面 创建的是 接口web项目就好了

然后包管理工具打开需要这些

java 复制代码
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

然后 例如这里我要预览 本地 E盘下的 ydzxmgf下的git分支管理规范.pdf文件 就可以这样写

java 复制代码
@GetMapping("/pdf")
    public ResponseEntity<Resource> previewPdfFile() throws IOException {
        // 指定文件路径
        String filePath = "E:/ydzxmgf/git分支管理规范.pdf";

        // 创建文件资源
        File file = new File(filePath);
        Path path = Paths.get(file.getAbsolutePath());
        Resource resource = new FileSystemResource(file);

        // 设置响应头
        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=" + file.getName());
        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_PDF_VALUE);

        // 返回响应实体
        return ResponseEntity.ok()
                .headers(headers)
                .contentLength(file.length())
                .contentType(MediaType.APPLICATION_PDF)
                .body(resource);
    }

然后在浏览器上访问接口

就达到这个预览的效果了

相关推荐
cui_ruicheng几秒前
Linux线程(三):线程同步、互斥与生产者消费者模型
linux·服务器·开发语言
snakeshe10101 分钟前
SpringBoot 多人协作平台实战(6):SpringBoot Controller 入门与登录模块开发
java
用户298698530142 分钟前
用 Java 操作 Word 文档?试试添加内容控件
java·后端
带刺的坐椅5 分钟前
Java AI 框架三国杀:Solon AI vs Spring AI vs LangChain4j 深度对比
java·ai·langchain4j·spring-ai·solon-ai
苍煜11 分钟前
K8s 集群快速搭建(系列第八篇:单机/多节点集群实战)
java·容器·kubernetes
Chase_______11 分钟前
Java 基础语言 ① —— Java 运行机制与开发环境:从 javac 到 JVM 全流程解析
java·jvm·python
北风toto12 分钟前
在 Axios 中发送 POST 请求并携带参数通常有以下两种方式
java
CryptoPP15 分钟前
解锁股票数据可视化新姿势:轻量级数据接口与动态图表实践
大数据·开发语言·人工智能·信息可视化·金融·区块链
cui_ruicheng18 分钟前
Linux线程(二):pthread 线程库与线程控制
java·开发语言·jvm
MATLAB代码顾问19 分钟前
【智能优化】杜鹃搜索算法(CSA)原理与Python实现
开发语言·python