如何通过响应导出PDFBox(pdf文件)?

时间:2018-04-09 08:58:58

标签: java pdf pdfbox

我需要通过控制器将PDF文件导出给用户。我的REST看起来像然而它返回空文件。

this.afs.collection<Client>('clients').add(this.form.value).then(docRef => {
  console.log("Need to output the firestore generated doc id of the document here: ...")
})

我打印出StringBuilder,所以我100%确定StringBuilder的内容是正确的。

1 个答案:

答案 0 :(得分:1)

您的代码

PDStream pdfStream = new PDStream(document);
InputStream inputStream = pdfStream.createInputStream();
FileCopyUtils.copy(inputStream, response.getOutputStream());
根据{{​​1}}构造函数

的JavaDocs,

没有任何意义

PDStream

/** * Creates a new empty PDStream object. * * @param document The document that the stream will be part of. */ public PDStream(PDDocument document) 是一个新的空pdfStream对象,它是 PDStream的一部分。因此,它并不令人惊讶它返回空文件。

考虑简单地使用

document

代替。

或者,如果在流式上下文中需要在实际流式传输内容之前设置内容长度属性,请执行以下操作:

document.save(response.getOutputStream());