代码:
private String FILE = "e:/FirstPdf.pdf";
public void preparePDF() {
try {
Document document = new Document();
PdfWriter.getInstance(document, pdfFile);
document.open();
addTitlePage(document);
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
一切正常但我想要的是不将pdf保存到临时文件夹中,而只是将其插入private File
或其他东西。我正在创建一个具有下载PDF文件功能的Web应用程序,我只需要将pdf放在变量中。
答案 0 :(得分:3)
如果您不想保存ByteArrayOutputStream
,可以使用PDF
。看看这个 example
答案 1 :(得分:1)
PdfWriter
有一个静态方法getInstance(Document document, OutputStream os)
。使用ByteArrayOutputStream
将内容存储到字节数组中。稍后,使用此数组将文件发送给用户。也许你需要将数组包装成ByteArrayInputStream
。
这样,您就不需要将文件存储在文件系统上。
答案 2 :(得分:0)
您可以将document
写入OutputStream
而不是文件。如果您希望能够动态生成和下载PDF文件(例如,如果它不生成大约一秒钟左右),那么您可以创建一个servlet并写入HttpServletResponse.getOutputStream()
。
PdfWriter.getInstance(document, response.getOutputStream())