[ubuntu][Shell]批量将压缩包中的图片转化为pdf文档


需求:

由于硬盘中的H漫画很多,并且都是图片的压缩包格式,阅读起来很不方便,并且零散不便于管理和维护,将其转化为pdf格式就不会存在这样的问题。


实施方式:

从网络上搜索相关资料,查找能够批量转化为pdf的方法。


方法:

windows平台下:

1、批量图片转PDF(软件PICTOPDF.exe)

2、Adobe reader自带图片合并pdf工具

linux平台下:

3、我写的Shell脚本(——。——)


选择:(各种方案的优缺点)

方案比较
方案优点缺点
方案一①windows平台可视化操作
②图片合并后会变小,容量减少
①图片减少,图像失真
②重复性操作太多
③不能智能的批量操作
方案二①windows平台可视化操作
②图片合并后不会失真
①只能对特殊的图片格式进行合并,不支持PNG格式图片
②重复性操作太多
③不能智能的批量操作
方案三智能①linux系统下非可视话操作
②合并后的pdf名有时会有乱码
③资源占用率太高,合并过程中基本不能干任何事情


使用说明:

方案一:

1. 批量图片转PDF

1、        批量将图片(格式可以是jpg,bmp,wmf,emf)合并转换成一个PDF,或则分别转换成一个个PDF

2、        支持整个目录含子目录,也可以一次选择多个文件,多种格式

3、        可以列举的文件,按文件名,按时间,按大小排序

4、        转出可以按图片大小,也可以转出指定纸张(A4,A3),同时可以对图片进行缩放,有两种方式:按图片比例缩放,另一种是缩放到纸张大小。



方案二:

特不好用,只有在没办法的时候使用。

软件: Adobe Acrobat

方案三:

支持的压缩格式:*.7z *.rar *.zip

支持的图片格式: *.jpg *.JPG *.PNG *.bmp *.BMP

ConvertToPdf.sh文件扔进有压缩包的文件夹下

①、例如:有如下压缩包,压缩包里没有文件夹
    (成年コミック) [雑誌] 漫画ばんがいち 2005年04月号.zip
    (成年コミック) [雑誌] 漫画ばんがいち 2005年05月号.zip
    (成年コミック) [雑誌] 漫画ばんがいち 2005年06月号.zip
    (成年コミック) [雑誌] 漫画ばんがいち 2005年07月号.zip
    (成年コミック) [雑誌] 漫画ばんがいち 2005年08月号.zip
    (成年コミック) [雑誌] 漫画ばんがいち 2006年01月号.zip
    (成年コミック) [雑誌] 漫画ばんがいち 2006年06月号.rar
    (成年コミック) [雑誌] 漫画ばんがいち 2007年05月号.7z
在命令窗口里输入sh ConvertToPdf.sh
在output文件夹下会有转化出来的pdf
output->
    (成年コミック) [雑誌] 漫画ばんがいち 2005年04月号.pdf 
    (成年コミック) [雑誌] 漫画ばんがいち 2005年05月号.pdf
    (成年コミック) [雑誌] 漫画ばんがいち 2005年06月号.pdf
    (成年コミック) [雑誌] 漫画ばんがいち 2005年07月号.pdf
    (成年コミック) [雑誌] 漫画ばんがいち 2005年08月号.pdf
    (成年コミック) [雑誌] 漫画ばんがいち 2006年01月号.pdf
    (成年コミック) [雑誌] 漫画ばんがいち 2006年06月号.pdf
    (成年コミック) [雑誌] 漫画ばんがいち 2007年05月号.pdf
    (成年コミック) [雑誌] 漫画ばんがいち 2007年07月号.pdf
②、例如:如果压缩包里有文件夹
    (成年コミック) [雑誌] 漫画ばんがいち 2005年04月号.zip
       ->123
           *.jpg
       ->234
           *.png
       ->345
           *.bmp
       *.jpg

会在output下输出以下四个pdf文档
output->
      123.pdf
      234.pdf
      345.pdf
       (成年コミック) [雑誌] 漫画ばんがいち 2005年04月号.pdf




./ConvertToPdf.sh运行

下载地址:

http://download.csdn.net/detail/kaisawind/5902937


代码:

以下为ConvertToPdf.sh代码:

#!bin/sh

filePath="$PWD"
echo "$PWD"
mkdir output

ConvertTopdf()
{
	echo "pdf文件转换中..."
	convert *.jpg *.JPG *.PNG *.bmp *.BMP "$filePath/output/${file%.*}.pdf"
	for file in *
	do 
		#如果是文件夹
		if [ -d "$file" ]; then
			echo "文件夹 :$file"
			cd "$file"
			ConvertTopdf
			cd ../
		fi
	done

	if [ $? -eq 0 ]; then
		echo "pdf文件转换成功"
		#rm -f "$file"
	elif [ $? -eq 1 ]; then
		echo "pdf文件转换error"
	fi
}

unPackage()
{
	fileoOrg="$file"
	#如果是rar压缩文件
	if [ ${file##*.} = rar ]; then
		echo "rar文件:${file%.*}"

		mkdir "./${file%.*}"
		unrar x "$file" "./${file%.*}"
		if [ $? -eq 0 ]; then
			echo "rar文件解压完了"
			cd "${file%.*}"
			ConvertTopdf	
			cd ../			
		elif [ $? -eq 1 ]; then
			echo "rar文件解压error"
		fi
		rm -rf "${fileoOrg%.*}"
	#如果是zip压缩文件
	elif [ ${file##*.} = zip ]; then
		echo "zip文件:${file%.*}"
		
		mkdir "./${file%.*}"
		unzip -o -d "./${file%.*}" "$file"
		if [ $? -eq 0 ]; then
			echo "zip文件解压完了"
			cd "${file%.*}"
			ConvertTopdf
			cd ../
		elif [ $? -eq 1 ]; then
			echo "zip文件解压error"
		fi
		rm -rf "${fileoOrg%.*}"
	#如果是7z压缩文件
	elif [ ${file##*.} = 7z ]; then
		echo "7z 文件:${file%.*}"
		
		mkdir "./${file%.*}"
		7z x "$file" -r -o"${file%.*}"
		if [ $? -eq 0 ]; then
			echo "7z 文件解压完了"
			cd "${file%.*}"
			ConvertTopdf
			cd ../
		elif [ $? -eq 1 ]; then
			echo "7z 文件解压error"
		fi
		rm -rf "${fileoOrg%.*}"
	fi
}

for file in *
do 
	#如果是文件夹
	if [ -d "$file" ]; then
		echo "文件夹 :$file" 
	#如果是文件
	elif [ -f "$file" ]; then
		echo "文件   :${file}"
		unPackage
	fi
done


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值