使用 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 并使用它。
我在我的项目中使用 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 并使用它。