Spring boot 使用iText导出PDF 几种方式
在Spring Boot中使用iText导出PDF文件,可以通过以下几种方式实现:
- 直接在Controller中生成PDF并返回给客户端。
- 使用服务层生成PDF,然后存储到文件系统或数据库中。
以下是使用iText 7导出PDF的示例代码:
依赖添加(Maven):
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.1.15</version>
<type>pom</type>
</dependency>
示例代码:
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.*;
import com.itextpdf.layout.element.Paragraph;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@RestController
public class PdfController {
@GetMapping("/downloadPdf")
public void downloadPdf(HttpServletResponse response) throws IOException {
// 设置响应头
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\"sample.pdf\"");
// 创建PDF写入器
PdfWriter writer = new PdfWriter(response.getOutputStream());
// 初始化PDF文档
PdfDocument pdf = new PdfDocument(writer);
// 创建Document对象
Document document = new Document(pdf);
// 添加内容
document.add(new Paragraph("Hello, World!"));
// 关闭Document对象以触发内容的输出
document.close();
}
}
在上述代码中,我们创建了一个简单的Spring Boot REST Controller,提供了一个下载PDF文件的接口。当客户端向该接口发送GET请求时,服务器将生成一个包含文本 "Hello, World!" 的PDF文档,并将其作为附件发送回客户端。
请注意,在实际应用中,你可能需要添加更多的错误处理逻辑,例如处理文件创建过程中可能出现的异常,设置适当的响应状态码等。
评论已关闭