Java 使用iText创建PDF而不将其保存到临时文件

Java 使用iText创建PDF而不将其保存到临时文件,java,itext,Java,Itext,代码: 一切正常,但我不想将pdf保存到临时文件夹中,而只是将其插入到私人文件或其他文件中。我正在创建一个具有下载PDF文件功能的web应用程序,我只需要将PDF放在一个变量中。PdfWriter有一个静态方法getInstance(Document Document,OutputStream os)。使用ByteArrayOutputStream将内容存储到字节数组中。稍后,使用此数组将文件发送给用户。也许您需要将数组包装成ByteArrayInputStream private String

代码:


一切正常,但我不想将pdf保存到临时文件夹中,而只是将其插入到
私人文件
或其他文件中。我正在创建一个具有下载PDF文件功能的web应用程序,我只需要将PDF放在一个变量中。

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

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();
        }
}

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

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

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文件(即,如果生成PDF文件不超过一秒钟),那么您可以创建一个servlet并写入
HttpServletResponse.getOutputStream()


您可以将
文档
写入
输出流
而不是文件。如果您希望能够动态生成和下载PDF文件(即,如果生成PDF文件不超过一秒钟),那么您可以创建一个servlet并写入
HttpServletResponse.getOutputStream()


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

PDF不能存储在变量中,将其保存到特定位置将其完整路径存储到变量中,并将该路径传递到下载文件函数以下载它。PDF不能存储在变量中,将其保存到特定位置将其完整路径存储到变量中,并将该路径传递给下载文件函数以下载它。