使用 PDFBox 时不想在服务器端保存创建的 PDF 文件

Dont want to save created PDF file in server side while using PDFBox

我在我的项目中使用 PDFBox。我目前保存在将其发送给客户之前创建的 PDF。相反,要求是在不保存文件的情况下将 ByteArrayStream 发送到客户端。如何使用 PDFBox 做到这一点?

我知道 iText 可以做到这一点。但是我在当前项目中被限制使用iText。

下面是使用的代码。

    PDDocument document = new PDDocument();
    PDPage page = new PDPage();
    PDPageContentStream contentStream = new PDPageContentStream(document, page);
    contentStream.beginText();
    contentStream.showText("PDF created");
    contentStream.endText();
    contentStream.close();
    document.save(outputFilePath);// don't want to do this
    document.close();

您可以对输出流使用重载方法 PDDocument.save。这将导致类似这样的结果:

ByteArrayOutputStream outStream = new ByteArrayOutputStream();
document.save(outStream);
byte[] pdfData = outStream.toByteArray();

这将允许您直接获取 PDF 并使用它。