pdf文件批量转换成jpg文件

      最近由于课程安排,我们需要写一些文章。其中涉及讨论软件界面设计、JavaCC使用、解释器构造设计等等,我便有了发到blog的想法。由于文章又长又多,在向上发送和编辑时非常麻烦(其中涉及表格、图像、各种文字以及数学公式)。在这个时候我想到可以将文件导出成图片,这样虽然无法让浏览器检索到但是便于编辑、浏览和保存,当然它也在一定程度上起到了版权保护的作用(不过这个意义不大,譬如可以通过人肉啊、模式识别工具来把数据抠出来)。总之,我便遇到了一个新的问题:需要做一个方便转换的小工具。

      在这里,我通过组合Ubuntu上已有的各个小组件来实现这个工具。在前一个版本中主要是原理上面的实现,后面一个版本提高了速度(让数据交换在缓存中进行,第一个版本是通过文件交换的)以及一些注释达到软件工程的基本标准。

系统环境 写道
Ubuntu 8.04
GNOME 2.22.3
bash shell
 
工具运行环境 写道
第一版本:
Bash shell
pdftoppm
pnmtojpeg


第二版本:
在第一版本基础上添加
pdfinfo

以下是详细的shell代码,第二版本中有比较详细的注释。欢迎大家交流学习。

第一个版本:

#This shell is using for tanslate the pdf files to many jpg files.
#You can make your copyright more safely.
pdfFileName=${1%.pdf}
pdftoppm $pdfFileName.pdf $pdfFileName 
ppmFiles=`ls $pdfFileName-*.ppm`
jpgDir=$pdfFileName-pdf2jpg
mkdir $jpgDir
for pic in $ppmFiles
do
  jpgFile=${pic%ppm}jpg
  pnmtojpeg $pic > $jpgFile
  mv $jpgFile $jpgDir
done
rm -r $ppmFiles

 第二个版本:

#This shell is using for tanslate the pdf file to many jpg files.
#You can make your copyright more safely.

if [ $# != 1 ]
then
  echo 'pdftojpg version 0.01'
  echo 'Copyright 2001-2008 by QJGui'
  echo 'Usage: pdftojpg <PDF-file>'
  exit
fi

###############Get the basic information about the pdf file
#pdf File name
pdfFile=$1
if [  -e $pdfFile ]
then
  echo "Find File: $pdfFile"
else
  echo "Can not find the pdf File: $pdfFile"
  exit
fi
#pdf File name without the type(.pdf)
pdfFileName=${pdfFile%.pdf}
#Create the dictionary
jpgDir=$pdfFileName-pdf2jpg
if [ -e $jpgDir ]
then
  echo "The dictionary of $jpgDir exists. Removing it......"
  rm -r $jpgDir
fi
echo "Make a new dictionary $jpgDir......"
mkdir $jpgDir
#Get the total page of the pdf file
count=0
x=`pdfinfo $pdfFile | grep 'Pages:*' `
totPage=${x:6:${#x}}
echo "Total page number: $totPage"
#####################Get Basic Info End ###########

while [ $count -lt $totPage ] 
do
  count=`expr $count + 1`
  jpgFile=$pdfFileName-$count.jpg
  echo "Convert the page $count/$totPage......"
  pdftoppm -f $count -l $count $pdfFile | pnmtojpeg > ./$jpgDir/$jpgFile
done

echo "Success. Finish the job. Please see the $jpgDir "

  在编辑保存完后,建议大家将其添加到bin目录中以方便调用。

工具的进一步改进 写道
这个工具在很多方面还有改进的余地。
例如:
pdf文件信息截取方式
ppm(中间过渡文件)、jpg等图片还有调节的余地
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值