Linux下ppt转换成图片

2019-05-01  本文已影响0人  王小杰at2019
  1. 安装软件
yum install libreoffice -y
yum install libreoffice-headless -y
yum install ImageMagick -y

  1. 安装字体
#上传宋体到
/usr/share/fonts
# 刷新字体缓存
#修改权限
chmod 644 simsun.ttc
#更新字体缓存:
fc-cache -fv

  1. 转换
soffice --headless --convert-to pdf name.pptx --outdir  /path
convert -resize 1920x -density 300  -quality 100 网页的奇妙之旅.pdf 网页的奇妙之旅.jpg
  1. 使用 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);
上一篇下一篇

猜你喜欢

热点阅读