springboot html转pdf
时间: 2023-10-12 13:14:43 浏览: 141
可以使用第三方库实现将 HTML 转换为 PDF,推荐使用 Flying Saucer。以下是实现步骤:
1. 在 pom.xml 中添加 Flying Saucer 依赖:
```xml
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf</artifactId>
<version>9.1.20</version>
</dependency>
```
2. 创建一个方法,将 HTML 转换为 PDF:
```java
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextRenderer;
public class HtmlToPdfConverter {
public static void convert(String html, OutputStream os) throws IOException {
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(html);
renderer.layout();
renderer.createPDF(os);
renderer.finishPDF();
}
}
```
3. 在 Spring Boot 中使用该方法:
```java
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class PdfController {
@GetMapping("/pdf")
public void generatePdf(HttpServletResponse response) throws IOException {
String html = "<h1>Hello, World!</h1>";
ByteArrayOutputStream os = new ByteArrayOutputStream();
HtmlToPdfConverter.convert(html, os);
byte[] pdf = os.toByteArray();
response.setContentType("application/pdf");
response.setContentLength(pdf.length);
response.setHeader("Content-Disposition", "attachment; filename=\"hello.pdf\"");
response.getOutputStream().write(pdf);
}
}
```
这个例子中,我们将一个简单的 HTML 页面转换为 PDF 并将其作为响应返回给客户端。你可以根据自己的需求修改代码来适应你的项目。
阅读全文