最近做了一个在word中替换指定字符串,插入图片,转换成pdf的需求,弄了两天多才搞出来,本以为everything is ok,但是在本地调试什么都是好的。
放到服务器上以后。。。却乱码了。。。乱码了。。。码了。。。了,求大佬列出可能的情况。
乱码的样子是这样的:
刚刚问了下运维:服务器是这个alpine
贴上代码,各位大佬帮忙分析分析
public JSONObject createTemplatePdf(File file) throws Exception {
JSONObject res;
// 验证License
if (getLicense()) {
FileOutputStream fileOutputStream = null;
FileInputStream pdfInputStream = null;
try {
Document doc = new Document(new FileInputStream(file));
// 以下几行代码是把这个word文件转化成pdf文件
File pdfFile = mkDirectoryAndFile(FILE_TYPE_PDF);
fileOutputStream = new FileOutputStream(pdfFile);
doc.save(fileOutputStream, SaveFormat.PDF);
// 下面把这个文件传到文件服务器,并返回信息
pdfInputStream = new FileInputStream(pdfFile);
MultipartFile multipartFile = getMulFile(pdfFile);
JSONArray jsonArray = sharedServiceClient.saveFile(multipartFile);
res = jsonArray.getJSONObject(0);
// 删除临时文件
if (pdfFile.exists()) {
pdfFile.delete();
}
// 删除临时文件
if (file.exists()) {
file.delete();
}
} finally {
if (fileOutputStream != null) {
fileOutputStream.flush();
fileOutputStream.close();
}
if (pdfInputStream != null) {
pdfInputStream.close();
}
}
} else {
throw new Exception("授权文件失效!");
}
return res;
}
public MultipartFile getMulFile(File file) {
FileItem fileItem = createFileItem(file);
MultipartFile mfile = new CommonsMultipartFile(fileItem);
return mfile;
}
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
JSONArray saveFile(@Param("file") MultipartFile file);
调试了一下,发现是word转pdf的时候,有问题。帮忙看下这一段代码有什么地方会造成本地和服务器的差异吗?