先上一个链接pdf转word文件转换
接口层
java
@PostMapping("pdfToWord")
public String pdfToWord(@RequestParam("file") MultipartFile file) throws IOException {
String fileName = FileExchangeUtil.pdfToWord(file.getInputStream(),file.getName());
return fileName;
}
方法层-----一个方法直接搞定
java
/**
* 只是单纯的文字转换,没有任何的格式
*
* @param inputStream 文件流
* @return
*/
public static String pdfToWord(InputStream inputStream, String fileName) {
//创建一个堆系pdf对象
PDDocument document = null;
FileOutputStream outputStream = null;
if (Objects.isNull(fileName)) {
fileName = FileExchangeUtil.getRandomString();
}
try {
document = PDDocument.load(inputStream);
PDFTextStripper stripper = new PDFTextStripper();
//获取文本内容
String text = stripper.getText(document);
//创建word文档
XWPFDocument doc = new XWPFDocument();
XWPFParagraph p = doc.createParagraph();
XWPFRun r = p.createRun();
r.setText(text);
//保存word
outputStream = new FileOutputStream(new File("./file/"+fileName + ".docx"));
doc.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
try {
outputStream.close();
} catch (IOException ioException) {
ioException.printStackTrace();
return null;
}
return null;
}
return fileName;
}
需要的依赖
java
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.40</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>29.0-jre</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
经得起实操,不要怪我没有整理最终生成的格式,实在有些东西不好搞,只能放放了