关于PDF在浏览器预览展示文件名不一致问题解决
修改前文件名展示:
一、引入pom文件依赖
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
二、具体实现方法
try {
OutputStream out = response.getOutputStream();
Resource resource = new DefaultResourceLoader().getResource("classpath:doc/" + FileTypeEnum.ChangeCompanyTypeFile.getFileName());
InputStream inputStream = resource.getInputStream();
byte[] bytes = toByteArray(inputStream);
//加载pdf
PDDocument document = PDDocument.load(bytes);
//获得文档属性对象
PDDocumentInformation info = document.getDocumentInformation();
//修改标题属性 这个标题会被展示
info.setTitle(FileTypeEnum.ChangeCompanyTypeFile.getFileName());
document.setDocumentInformation(info);
//修改完直接输出到响应体中
document.save(out);
document.close();
out.close();
} catch (Exception e) {
log.error("查看失败", e);
}
public static byte[] toByteArray(InputStream input) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int n = 0;
while (-1 != (n = input.read(buffer))) {
output.write(buffer, 0, n);
}
return output.toByteArray();
}
修改后文件名展示:
预览文件地址: