我使用以下代码将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 中,哪些不同于2500(.high's,.png和个体.pdf的pdf),因此我可以删除并重新转换该书,以便JPG页面的高度也为2500?谢谢
另外,如果有人知道这样做的不那么令人费解的方式,如果他们告诉我的话,我会很感激
如果您需要1页为.swf而另一个是.jpg的示例,则出于解释目的:
http://content.yudu.com/android/djcuwvv9999legqwoc/content/1.high -swf
http://content.yudu.com/android/djcuwvv99legqwoc/content/2.high-jpg
由于已安装了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
希望有帮助...