imagick pdf原来dpi_PDF 转 jpeg及一些格式的调整

9dc3077b4274e820df5aa6bc708e5d61.png

上传 一些资料给入境事务处,官网只支持两类文件的上传,JPG,TIF。 大致的规定是DPI > =200, Size < 1M .

结果多次失败,使用Adobe Acrobat Reader DC, Foxit Reader, 以及花钱买的PDFelement都搞不定。只得回到老办法,CLI工具集。

三个工具:1, pdftk,大名鼎鼎, 2, convert, 也是imagick的小命令,是不是也大名鼎鼎?3, 还需要额外 用一个工具 exiftool, 本来是没考虑它的。

先说pdftk. pdftk的功能太強大,我們在此只是使用它的簡單分割功能:

pdftk in_pdf burst output outdir/pg_%04d.pdf

pg%04d.pdf, 批分割後的pdf文件命名是pg_0001.pdf, pg_0002.pdf等。。。

convert 把pdf轉成圖像jpg。-density 300x300指定dpi,然沒什麼卵用好象,所以後面再使用exiftool修改一下meta值, 重新指定DPI

convert -colorspace RGB -interlace none -density 300x300 -quality 100 infile.pdf outfile.jpg

運行exiftool,修改meta值:

exiftool -jfif:Xresolution=300 -jfif:Yresolution=300 filename.jpg

上腳本,把上面的過程打包:

#!/bin/bash                                                                                                                                                                                                 

# Script to convert PDF file to JPG images                                                                                                                                                                  
#                                                                                                                                                                                                           
# Dependencies:                                                                                                                                                                                             
# * pdftk                                                                                                                                                                                                   
# * imagemagick                                                                                                                                                                                             

PDF=$1

echo "Processing $PDF"
DIR=`basename "$1" .pdf`

mkdir "$DIR"

echo '  Splitting PDF file to pages...'
pdftk "$PDF" burst output "$DIR"/%04d.pdf
pdftk "$PDF" dump_data output "$DIR"/metadata.txt

echo '  Converting pages to JPEG files...'
for i in "$DIR"/*.pdf; do
  convert -colorspace RGB -interlace none -density 300x300 -quality 100 "$i" "$DIR"/`basename "$i" .pdf`.jpg
  exiftool -jfif:Xresolution=300 -jfif:Yresolution=300 "$DIR"/`basename "$i" .pdf`.jpg
done

echo 'All done'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值