Spring Boot 如何创建使用数据库中的数据生成PDF的端点[已关闭]

kzipqqlq  于 2022-12-23  发布在  Spring
关注(0)|答案(1)|浏览(155)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

昨天关门了。
Improve this question
我的数据库中有以下JSON,它与数据一起提供:

[
    {
        "id_process": "87",
        "final_state": "FINISHED",
        "tag_rollgrinder": "LM_170A",
        "tag_roll": "LM170A123",
        "datetime_begin": "2022-09-30T18:15:00Z",
        "datetime_end": "2022-09-30T18:35:00Z",
        "profileRollStartDiameter": "[1, 2, 3]",
        "profileRollStartAdvanceDistance": "[1, 2, 3]"

    }
]

我需要在后端创建一个功能,通过一个端点(在Postman中测试)创建一个PDF文件,其中包含来自数据库的数据。然而,在PDF中,属性“profileRollStartDiameter”:“[1,2,3]”和“轮廓滚动开始前进距离”:“[1,2,3]",需要以图形的形式出现,其中profileRollStartDiameter是将位于Y轴上的数据,RollStartAdvanceDistance轮廓数据将位于X轴上,如图所示:
Modelo do gráfico X e Y
有人能帮我吗,我可以从哪里开始?我试过使用IText与PDFPTable,从这个链接:Spring Boot Export Data to PDF Example在端点上生成PDF,但它只将数据库数据放入表格中,如单元格。

wnavrhmk

wnavrhmk1#

您必须将任务分为两个步骤:

  • 公开返回PDF文件的端点
@PostMapping()
public ResponseEntity<byte[]> generatePDF() {
   
    YourData data = fetchDataService.getData();
    byte[] pdfFile = pdfGenerationService.generatePdf(data);
    
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_PDF);
    String filename = "yourname.pdf";
    headers.setContentDispositionFormData(filename, filename);
    headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
    ResponseEntity<byte[]> response = new ResponseEntity<>(pdfFile, headers, HttpStatus.OK);
    return response;
}
  • 处理请求并生成PDF

我个人会选择jasperSoft reports,它非常强大,我从来不需要其他的解决方案。

相关问题