需求:
由于硬盘中的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