Springboot -- DOCX转PDF(二)

之前记录了按照模板生成 DOCX 文件、并转换为 PDF 文件的方法
https://blog.csdn.net/qq_40096897/article/details/131979177?spm=1001.2014.3001.5501

但是使用效果并不是很理想,转换完的 PDF 格式和原本的文档格式不匹配。所以在此重新找了一个文件转 PDF 的方法。

<dependency>
   <groupId>com.luhuiguo</groupId>
   <artifactId>aspose-pdf</artifactId>
   <version>23.1</version>
</dependency>
<dependency>
   <groupId>com.luhuiguo</groupId>
   <artifactId>aspose-words</artifactId>
   <version>23.1</version>
</dependency>

可以保存为输出流

InputStream inputStream = new FileInputStream("F:\\test.docx");
try (ByteArrayOutputStream  outPDF = new ByteArrayOutputStream()) {
    //转PDF
    com.aspose.words.Document doc = new com.aspose.words.Document(inputStream);
    doc.save(outPDF, com.aspose.words.SaveFormat.PDF);
} catch (IOException e) {
    e.printStackTrace();
}
inputStream.close();

也可以直接保存为指定文件

InputStream inputStream = new FileInputStream("F:\\test.docx");
com.aspose.words.Document doc = new com.aspose.words.Document(inputStream);
doc.save("F:\\test.pdf", com.aspose.words.SaveFormat.PDF);
inputStream.close();

效果如下:
这是DOCX模板,模板格式如下
在这里插入图片描述
这是按照模板生成文档后再转为PDF的效果:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
要在Ubuntu中使用Spring Boot实现docxpdf,您需要遵循以下步骤: 1. 首先,您需要确保已经安装了Java和Maven。 2. 创建一个Spring Boot项目,添加依赖项以使用Apache POI和Apache PDFBox。 3. 创建一个Controller类,注入Apache POI和Apache PDFBox,并编写一个方法来读取docx文件并将其换为pdf格式。 4. 在应用程序中创建一个上传文件的功能,以便用户可以上传docx文件。 5. 在应用程序中创建一个下载文件的功能,以便用户可以下载换后的pdf文件。 下面是一个简单的示例代码: ```java @Controller public class FileController { @Autowired private ApachePOIService apachePOIService; @Autowired private ApachePDFBoxService apachePDFBoxService; @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file, Model model) { try { // 读取docx文件并换为pdf byte[] pdfBytes = apachePOIService.convertDocxToPDF(file.getInputStream()); // 将pdf文件保存到本地 String pdfFilePath = apachePDFBoxService.savePDF(pdfBytes); model.addAttribute("message", "文件已换为PDF格式,您可以下载"); model.addAttribute("pdfFilePath", pdfFilePath); } catch (Exception e) { model.addAttribute("message", "文件换失败:" + e.getMessage()); } return "index"; } @GetMapping("/download") public ResponseEntity<ByteArrayResource> downloadFile(@RequestParam("path") String path) throws IOException { // 从本地读取pdf文件 byte[] pdfBytes = apachePDFBoxService.readPDF(path); ByteArrayResource resource = new ByteArrayResource(pdfBytes); HttpHeaders headers = new HttpHeaders(); headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + path + "\""); return ResponseEntity.ok() .headers(headers) .contentLength(pdfBytes.length) .contentType(MediaType.parseMediaType("application/octet-stream")) .body(resource); } } ``` 在上面的代码中,我们注入了ApachePOIService和ApachePDFBoxService,这些服务类负责将docx文件换为pdf格式,并将pdf文件保存到本地。在上传文件的方法中,我们使用MultipartFile读取上传的docx文件,并将其传递给ApachePOIService的convertDocxToPDF方法进行换。在下载文件的方法中,我们使用ApachePDFBoxService的readPDF方法从本地读取pdf文件,并将其作为ResponseEntity的响应体返回给用户。 请注意,这只是一个示例代码,并且可能需要根据您的具体需求进行修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mingvvv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值