我正在使用 pdfbox 生成一个 pdf 文件,并尝试从 Jersey (jax-rs) REST API 返回它。问题是收到的 pdf 文件是空的。如果我将文件保存在服务器中,则文件正确。也许问题出在流或响应处理中。
我已经尝试解决这个问题很长一段时间了,希望它最终能正常工作。
这是我尝试使用的代码。
@GET
@Path("/generateReport/{name}/{id}")
@Produces("application/pdf")
public Response generateReport(@PathParam("name") String name) {
PDDocument document = new PDDocument();
PDPage page = new PDPage();
PDFont courierBoldFont = PDType1Font.COURIER_BOLD;
int fontSize = 12;
PDPageContentStream contentStream;
ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
document.addPage(page);
contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
contentStream.setFont(courierBoldFont, fontSize);
contentStream.newLineAtOffset(150, 750);
contentStream.showText("Hello " + name);
contentStream.endText();
contentStream.close();
document.save(output);
document.close();
} catch (IOException e) {
e.printStackTrace();
}
Response.ResponseBuilder responseBuilder = Response.ok(output.toByteArray()); …Run Code Online (Sandbox Code Playgroud)