小编sol*_*mar的帖子

Java - 为 JAX-RS REST 创建 pdf 文件,但响应包含空文件

我正在使用 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)

java pdf rest

5
推荐指数
0
解决办法
2140
查看次数

标签 统计

java ×1

pdf ×1

rest ×1