java 用itextpdf 中的Document生成一个pdf文件,并返回给浏览器下载,请帮我写一个这个案例代码
时间: 2024-03-22 10:38:17 浏览: 52
java使用itext实现pdf文件下载
好的,以下是一个使用 iTextPDF 生成 PDF 文件并将其返回给浏览器下载的示例代码:
```
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
@WebServlet("/downloadPDF")
public class PDFServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("application/pdf");
resp.setHeader("Content-Disposition", "attachment; filename=example.pdf");
OutputStream outputStream = resp.getOutputStream();
try {
// 创建一个新的文档对象
Document document = new Document();
// 创建一个 PDFWriter 对象
PdfWriter.getInstance(document, outputStream);
// 打开文档
document.open();
// 添加内容
document.add(new Paragraph("Hello, World!"));
// 关闭文档
document.close();
} catch (DocumentException e) {
e.printStackTrace();
}
outputStream.flush();
outputStream.close();
}
}
```
在这个示例中,我们使用 `HttpServletResponse` 对象将生成的 PDF 文件返回给浏览器进行下载。在 `doGet` 方法中,我们设置了响应的 `Content-Type` 和 `Content-Disposition` 头信息,然后创建一个输出流来将 PDF 文件写入响应体中。最后,我们通过调用 `flush` 和 `close` 方法来完成输出流的操作。
阅读全文