我有大约1000个pdf文件,我需要将它们转换为300 dpi的tiff文件.做这个的最好方式是什么?如果存在可以编写脚本的SDK或其他工具或工具,那将是理想的.
使用Imagemagick,或者更好的是Ghostscript.
http://www.ibm.com/developerworks/library/l-graf2/#N101C2有一个imagemagick的例子:
convert foo.pdf pages-%03d.tiff
http://www.asmail.be/msg0055376363.html有一个ghostscript的例子:
gs -q -dNOPAUSE -sDEVICE=tiffg4 -sOutputFile=a.tif foo.pdf -c quit
我会安装ghostscript并阅读gs的手册页,看看需要哪些确切的选项和实验.
从命令行使用GhostScript,我在过去使用过以下内容:
在Windows上:
gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf
在*nix上:
gs -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf
对于大量文件,可以使用简单的批处理/ shell脚本来转换任意数量的文件......
我写了一个小的PowerShell脚本来完成目录结构,并使用ghostscript将所有pdf文件转换为tiff文件.这是我的脚本:
$tool = 'C:\Program Files\gs\gs8.63\bin\gswin32c.exe' $pdfs = get-childitem . -recurse | where {$_.Extension -match "pdf"} foreach($pdf in $pdfs) { $tiff = $pdf.FullName.split('.')[0] + '.tiff' if(test-path $tiff) { "tiff file already exists " + $tiff } else { 'Processing ' + $pdf.Name $param = "-sOutputFile=$tiff" & $tool -q -dNOPAUSE -sDEVICE=tiffg4 $param -r300 $pdf.FullName -c quit } }
1)安装GhostScript
2)安装ImageMagick
3)创建"Convert-to-TIFF.bat"(Windows XP,Vista,7)并使用以下行:
for %%f in (%*) DO "C:\Program Files\ImageMagick-6.6.4-Q16\convert.exe" -density 300 -compress lzw %%f %%f.tiff
将任意数量的单页PDF文件拖到此文件上会将它们转换为压缩的TIFF,速度为300 DPI.
使用python这是我最终得到的
import os os.popen(' '.join([ self._ghostscriptPath + 'gswin32c.exe', '-q', '-dNOPAUSE', '-dBATCH', '-r300', '-sDEVICE=tiff12nc', '-sPAPERSIZE=a4', '-sOutputFile=%s %s' % (tifDest, pdfSource), ]))