- 安装软件
yum install libreoffice -y
yum install libreoffice-headless -y
yum install ImageMagick -y
- 安装字体
#上传宋体到
/usr/share/fonts
# 刷新字体缓存
#修改权限
chmod 644 simsun.ttc
#更新字体缓存:
fc-cache -fv
- 转换
soffice --headless --convert-to pdf name.pptx --outdir /path
convert -resize 1920x -density 300 -quality 100 网页的奇妙之旅.pdf 网页的奇妙之旅.jpg
- 使用 Java调用 sh
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-exec</artifactId>
<version>1.3</version>
</dependency>
File outputPath = new File(output);
outputPath.mkdir();
//生成图片
CommandLine cmdLine = CommandLine.parse(String.format("soffice --convert-to pdf %s --outdir %s", tempFile.getAbsolutePath(), output));
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
DefaultExecutor executor = new DefaultExecutor();
executor.execute(cmdLine, resultHandler);
//这里开始的代码会被立即执行下去,因为上面的语句不会被阻塞。
resultHandler.waitFor(50000);//等待50秒。
boolean b = resultHandler.hasResult();
log.info("convert to pdf:{}", b);
resultHandler.onProcessComplete(0);
String baseName = FilenameUtils.getBaseName(tempFile.getAbsolutePath());
cmdLine = CommandLine.parse(String.format("convert -resize 1920x -density 150 -quality 100 %s %s", output + baseName + ".pdf", output + baseName + ".jpg"));
resultHandler = new DefaultExecuteResultHandler();
executor = new DefaultExecutor();
executor.execute(cmdLine, resultHandler);
//这里开始的代码会被立即执行下去,因为上面的语句不会被阻塞。
resultHandler.waitFor(200 * 1000);//等待100秒。
b = resultHandler.hasResult();
log.info("convert to pdf:{}", b);
resultHandler.onProcessComplete(0);
网友评论