Spring

스프링 Boot에서 PDF 출력하기

기록만이살길 2020. 6. 17. 21:10
반응형

스프링 Boot에서 PDF 출력하기

이 튜토리얼에서는 Spring (Spring MVC)에서 pdf 파일을 표시하고 다운로드하는 방법을 보여줍니다. 빠른 시작을 위해 Spring Boot를 사용하고 pdf를 표시하려면 jsp를보기로 사용하십시오 ( Spring Boot 에서 jsp를 사용하는 방법은 Spring Boot JSP 예제를 클릭하십시오 ).

프로젝트 구조

├─main
│  ├─java
│  │  └─com
│  │      └─henryxi
│  │          └─pdf
│  │                  DisplayDownloadPDFController.java
│  │
│  └─resources
│      │  application.properties
│      │
│      └─META-INF
│          └─resources
│              │  Accepted.pdf
│              │
│              └─WEB-INF
│                  └─jsp
│                          index.jsp
│
└─test
    └─java

POM.XML 파일

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <version>8.0.28</version>
</dependency>

자바 코드

@Controller
@EnableAutoConfiguration
public class DisplayDownloadPDFController{

    @RequestMapping("/")
    public String index() {
        return "index";
    }

    @RequestMapping(value = "/download", method = RequestMethod.GET)
    public void getFile(HttpServletResponse response) {
        try {
            DefaultResourceLoader loader = new DefaultResourceLoader();
            InputStream is = loader.getResource("classpath:META-INF/resources/Accepted.pdf").getInputStream();
            IOUtils.copy(is, response.getOutputStream());
            response.setHeader("Content-Disposition", "attachment; filename=Accepted.pdf");
            response.flushBuffer();
        } catch (IOException ex) {
            throw new RuntimeException("IOError writing file to output stream");
        }
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(DisplayDownloadPDFController.class, args);
    }
}

application.properties

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
server.port = 8090

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
</head>
<body>
<embed src="/Accepted.pdf" width="500" height="375" type='application/pdf'>
<a href="/download">download</a>
</body>
</html>

main 메소드를 실행 DisplayDownloadPDFController하고 http : // localhost : 8090 /에 액세스 하십시오 . pdf 컨텐츠 및 다운로드 링크를 볼 수 있습니다. 이 예제는 크롬과 파이어 폭스 모두에서 작동합니다.

반응형