1

代码:

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 放在变量中。

4

3 回答 3

3

ByteArrayOutputStream如果不想保存,可以使用PDF. 看看这个例子

于 2013-04-02T08:45:19.783 回答
1

PdfWriter有一个静态方法getInstance(Document document, OutputStream os)。使用 aByteArrayOutputStream将内容存储到字节数组。稍后,使用此数组将文件发送给用户。也许您需要将数组包装成ByteArrayInputStream.

这样,您不需要将文件存储在文件系统上。

于 2013-04-02T08:44:35.547 回答
0

您可以将 写入documentOutputStream不是文件。如果您希望能够动态生成和下载 PDF 文件(即,如果它不需要超过一秒钟左右的时间来生成),那么您可以创建一个 servlet 并写入HttpServletResponse.getOutputStream().

PdfWriter.getInstance(document, response.getOutputStream())
于 2013-04-02T08:45:14.013 回答