form1.cn
Make a little progress every day

centos中用unoconv和imagemagick命令行工具将pptx转为图片

04th of March 2021 Linux Command 304

关于unoconv的介绍:

unoconv,全称为 Universal Office Converter ,是一个命令行工具,可在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。

unoconv 支持批量转换文档,还可以结合 asciidoc和 docbook2odf / xhtml2odt 来创建 PDF 或 Word(.doc) 文件。


关于ImageMagick的介绍:

使用ImageMagick的创建,编辑,撰写,或转换位图图像。它可以读取和写入各种格式(超过200种)的图像,包括PNG,JPEG,GIF,HEIC,TIFF,DPX,EXR,WebP,Postscript,PDF和SVG。使用ImageMagick可以调整图像大小,翻转,镜像,旋转,变形,剪切和变换图像,调整图像颜色,应用各种特殊效果或绘制文本,线条,多边形,椭圆和贝塞尔曲线。

ImageMagick是免费软件,可以即用型二进制分发形式提供,也可以作为源代码提供,您可以在开放应用程序和专有应用程序中使用,复制,修改和分发它们。它是在派生的Apache 2.0 许可下分发的。

ImageMagick利用多个计算线程来提高性能,并且可以读取,处理或写入兆,千兆或兆像素图像大小。


解决方案分成两步:

1,调用 unoconv 命令将 pptx 可 docx 转 pdf

2,使用 imagemagick 命令将 pdf 转图片


安装unoconv:

[root@xxx]# yum -y install unoconv


查看是否安装成功:

[root@xxx]# unoconv --version

unoconv 0.6
Written by Dag Wieers <dag@wieers.com>
Homepage at http://dag.wieers.com/home-made/unoconv/
platform posix/linux2
python 2.7.5 (default, Nov 16 2020, 22:23:17) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
LibreOffice 5.3


安装imagemagick:

[root@xxx]# yum install -y ImageMagick ImageMagick-devel


是否安装成功:

[root@xxx]# convert -version

Version: ImageMagick 6.9.10-68 Q16 x86_64 2021-02-24 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(3.1) 
Delegates (built-in): bzlib cairo fontconfig freetype gslib jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps rsvg tiff wmf x xml zlib


将pptx文档转换成pdf格式:

[root@xxx]# unoconv -f pdf /datafile/text.pptx
[root@xxx]# ll /datafile

就会看到有一个pdf的文档


将pdf转成图片格式:

[root@xxx]# convert text.pdf t_%d.jpg


自定义图片大小:

-resize '200x100>'

只有当src.jpg的宽小于200或高小于100时候,才进行放大处理,否则生成的dest.jpg和src.jpg具有一样的尺寸。注意在linux下要用单引号替换双引号,即'200x100<'

/usr/local/bin/convert /tmp/big.jpg -resize 200x200! /tmp/big_200x200.jpg

加上!强制转换,图片大小设置原文:https://blog.csdn.net/dalaoshu321/article/details/84609473

就会看到生成图片,把图片下载到本地查看是否正确

convert更多用法:https://www.cnblogs.com/robben/p/4315123.html


中文乱码问题:

本人参考的这文章:https://zhidao.baidu.com/question/922374822257653899.html

但其中加载字体与重启并没有操作

只是把需要的中文字体从windows的Fonts中复制到了centos的/usr/share/fonts/Fonts中


复制完成后重新进行转换,字体就正常了


查看中文字体:fc-list :lang=zh


其于参考:

https://blog.csdn.net/guo_qiangqiang/article/details/107150181

https://blog.csdn.net/weixin_34301307/article/details/89009709