我使用以下代码将swf书籍转换为pdf:
swftopdf () {
if [ ! -f "$1.pdf" ]; then
wget "http://content.yudu.com/android/dJcuwVV99lEgqWoc/content/$1.high";
mimetype=$(file $1.high --mime-type);
if [ "$mimetype" == "$1.high: application/x-shockwave-flash" ]; then
swfrender -Y 2500 "$1.high" -o "$1.png"; convert "$1.png" "$1.pdf";
else
convert "$1.high[x2500]" "$1.pdf";
fi;
rm -rf $1.high; rm -rf $1.png;
fi;
};
for i in {1..244}; do
while [ ! -f "$i.pdf" ]; do
swftopdf $i;
done;
done;
filelist=$(ls|sort -n);
pdftk $filelist cat output '/home/shane/Desktop/Complete Ebooks/Secondary Level/Leaving Cert/Folens/Othello.pdf' compress; rm -rf *.pdf
很少,.high文件会是jpg而不是swf,因此为什么有其他转换“$ i1.high [x2500]”段。但是,我最初没有[x2500]写在那里。
所以,我想知道的是,而不是删除我已经转换的所有书籍,有没有办法弄清楚是否有任何一个页面有高度在大pdf (.high,.png和个人.pdf已经删除)中不同于2500,所以我可以删除并重新转换该书,以便jpg页面的高度也是2500?
由于
此外,如果有人知道这样做的不那么复杂的方式,如果他们告诉我,我会很感激
如果你需要一个例子,1页是.swf,另一个是.jpg,为了解释的目的:
http://content.yudu.com/android/dJcuwVV99lEgqWoc/content/1.high - 瑞士法郎
http://content.yudu.com/android/dJcuwVV99lEgqWoc/content/2.high - jpg
答案 0 :(得分:1)
由于您安装了ImageMagick,因此您可以使用identify
来回答是否所有页面都具有相同高度的问题。以下是任意选择PDF的示例:
> identify MyFile.pdf
MyFile.pdf[0] PDF 524x751 524x751+0+0 16-bit Bilevel DirectClass 49.6KB 0.050u 0:00.050
MyFile.pdf[1] PDF 524x751 524x751+0+0 16-bit Bilevel DirectClass 49.6KB 0.050u 0:00.050
MyFile.pdf[2] PDF 524x751 524x751+0+0 16-bit Bilevel DirectClass 49.6KB 0.050u 0:00.040
如果identify
的输出没有告诉高度为2500,请不要感到惊讶:您的示例JPG文件的分辨率为149 ppi。 PDF通常需要72dpi。所以我希望你转换的JPG的高度为1208(= 2500 * 72/149):
> convert 2.high[x2500] 2.pdf
> identify 2.pdf
2.pdf PDF 870x1208 870x1208+0+0 16-bit Bilevel DirectClass 132KB 0.010u 0:00.000
希望有帮助...