admin管理员组文章数量:1605204
首先功能需要准备的依赖包:
aspose-words-15.8.0-jdk16.jar
<dependency>
<groupId>com.aspose.words</groupId>
<artifactId>aspose-words-jdk15</artifactId>
<version>15.8.0</version>
</dependency>
public class FileUtil {
public static File getFileStream(String fileName) {
//获取项目路径
String url="F:/test/";
//文件路径
String docPath = url+fileName;
//String docPath = "D://" + fileName;
if (!new File(docPath).exists()) {
return null;
}
String str[] = docPath.split("[.]");
if (str[str.length-1]=="pdf"){
return new File(docPath);
}
String pdfName = docPath.replace(str[str.length-1],"pdf");
System.out.println(pdfName);
File pdfFile = new File(pdfName);
try {
ResourceLoader resourceLoader=new DefaultResourceLoader();
String location="/Aspose.Words.lic";
//获取resource包下的Aspose.Words.lic文件
InputStream inputStream = resourceLoader.getResource(location).getInputStream();
License aposeLic = new License();
aposeLic.setLicense(inputStream);
Document document = new Document(docPath);
document.save(new FileOutputStream(pdfFile), SaveFormat.PDF);
} catch (Exception e) {
e.printStackTrace();
}
if (!pdfFile.exists()) {
return null;
}
return pdfFile;
}
}
serviceImpl层实现
@Override
public Map<String, Object> getFileStream(HttpServletResponse response, String fileName) {
File pdfFile = null;
OutputStream outputStream = null;
BufferedInputStream bufferedInputStream = null;
// String docPath = fileName + ".doc";
// String pdfPath = fileName + ".pdf";
try {
//获取生成的pdf
pdfFile = FileUtil.getFileStream(fileName);
outputStream = response.getOutputStream();
response.setContentType("application/pdf;charset=UTF-8");
bufferedInputStream = new BufferedInputStream(new FileInputStream(pdfFile));
byte buffBytes[] = new byte[1024];
outputStream = response.getOutputStream();
int read = 0;
//docx||doc文档流写入pdf文件
while ((read = bufferedInputStream.read(buffBytes)) != -1) {
outputStream.write(buffBytes, 0, read);
}
} catch (ConnectException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(outputStream != null){
try {
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bufferedInputStream != null){
try {
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
//创建一个Aspose.Words.lic放在resource下即可
```java
"<License>
<Data>
<Products>
<Product>Aspose.Total for Java</Product>
<Product>Aspose.Words for Java</Product>
</Products>
<EditionType>Enterprise</EditionType>
<SubscriptionExpiry>20991231</SubscriptionExpiry>
<LicenseExpiry>20991231</LicenseExpiry>
<SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
</Data>
<Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>"
需要依赖包可以
链接:https://pan.baidu/s/1Z4UHFMThaEj4D7Phbq7R3w
提取码:s18s
本文标签: SpringBootwordPDF
版权声明:本文标题:springboot实现word转pdf 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1728480052a1160010.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论