【发布时间】:2018-09-18 15:02:30
【问题描述】:
我需要通过控制器将 PDF 文件导出给用户。我的 REST 看起来像这样,但是它返回空文件。
@RequestMapping(value="/pdfReport", method=RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
public void downloadPDFReport(HttpServletResponse response, @RequestBody PDFReport pdfReport) throws IOException{
StringBuilder sB = storageManager.getPDF(pdfReport);
System.out.println(sB.toString());
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);
contentStream.beginText();
contentStream.showText(sB.toString());
contentStream.endText();
contentStream.close();
document.save("pdfBoxHelloWorld.pdf");
PDStream pdfStream = new PDStream(document);
InputStream inputStream = pdfStream.createInputStream();
FileCopyUtils.copy(inputStream, response.getOutputStream());
}
我打印出 StringBuilder,所以我 100% 确定 StringBuilder 的内容是正确的。
【问题讨论】: