记一次在manjaro下的pptx文件转换成长截图的经历

        最近有需求,需要将ppt文件转换成一个长截图,手上的电脑是manjaro系统和weindows双系统,日常使用manjaro,也懒得切换系统做切换,而且linux工具更多,在linux上操作更方便,最后选择用shell脚本来处理这个问题。

        查询几种工具,确定linux下没有直接一步到位从ppt文件转换成长截图的工具,最后选择方案只能是先转换成pdf后再转换成长截图。

        首先是选择libreoffice软件进行ppt格式文件转pdf,首先是要先安装这个软件,在manjaro上安装比较方便,直接执行下面的代码就行。如果没有yay建议先安装这个,这个包管理安装AUR上的软件实在是太方便了。

yay -S libreoffice 

        libreoffice转换的使用方法:

libreoffice --convert-to pdf:writer_pdf_Export in_filename  --outdir   out_filename

        本来计划使用pdftopm将pdf转换成长图片但是发现这个工具不行,只能将pdf转换成一张张的图片,不能转成长图片,最后选择imageMagick来将图片合成长图片。

#!bin/bash

pdf_to_png(){
current_path=`pwd`
ls *.pptx>./tmp.txt
while read fullfilename; 
do
		filename=${fullfilename%.*} #取文件名而不要文件后缀
		if [ -f "${filename}.png" ];then
			continue
		fi
		date +"%Y-%m-%d %X"
		echo 正在将pptx文件转换成PDF
		libreoffice --convert-to pdf:writer_pdf_Export  "${fullfilename}" --outdir   . 
		echo 正在将PDF转换成图片
		pdftoppm -png -f 1 -l 7 ./"${filename}".pdf ./tmp
		rm -f "${filename}".pdf
		echo 正在将图片拼接成长图片
		convert -append ./tmp-*.png "${filename}".png
		rm -f ./tmp-*.png
		date +"%Y-%m-%d %X"
		echo ------------------------------------
done<./tmp.txt
rm ./tmp.txt
}

fun(){
if [ -n "$(ls -F | grep '/$')" ];then
	ls -F | grep '/$'>./tmp.txt
	while read line;
	do
		cd "${line}"
		fun
		cd ..
	done<./tmp.txt
else
	echo `pwd`
fi
}

fun

       在写脚本的时候发现,要转的文件名经常有空格,操作的时候特别怪,经常找不到东西,后面没办法,把读取文件名这一步的内容写到文件里,一次读一行,这样就不会出现操作时空格碍事了。

        处理这个过程最痛苦的是速度,因为设备原因转化起来不是特别快,只能挂载后台处理。如果有哪位大佬有更快的方法还请评论区指导一下。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值