code 命令行 批量替换PDF中的颜色

1 篇文章 0 订阅

https://superuser.com/questions/488813/convert-a-colored-pdf-into-a-white-black/488866#488866

#!/bin/bash
if [ $# -lt 3 ];then
 echo "替换PDF中的颜色,根据RGB值"
 echo 示例:$0 i.pdf o.pdf "0,0,255,255,80,83  255,255,255,0,0,25"
 echo "3个参数:1.输入 2.输出 3.双引号6个一组,替换颜色,空格分开"
 exit 
fi

f=$1;o=$2;opt=$3

# 解压中间文件
pdftk $f output "tmp-$f" uncompress

# 循环参数
n=0
arr=$(echo $opt|tr " " "\n")
#echo $arr
for x in $arr 
do
   #echo $x
   i=(${x//,/ })
   a1=`awk 'BEGIN{printf "%.3f\n",('${i[0]}'/'255')}'` 
   a2=`awk 'BEGIN{printf "%.3f\n",('${i[1]}'/'255')}'` 
   a3=`awk 'BEGIN{printf "%.3f\n",('${i[2]}'/'255')}'` 
   b1=`awk 'BEGIN{printf "%.3f\n",('${i[3]}'/'255')}'` 
   b2=`awk 'BEGIN{printf "%.3f\n",('${i[4]}'/'255')}'` 
   b3=`awk 'BEGIN{printf "%.3f\n",('${i[5]}'/'255')}'`
   grep -a "$a1 $a2 $a3" "tmp-$f"  &> tmp-here.txt
   if [ -s tmp-here.txt ];then
     echo ${i[@]} $a1 $a2 $a3 'replace -> to' $b1 $b2 $b3 'Done'
     sed -i "s/$a1 $a2 $a3/$b1 $b2 $b3/g" "tmp-$f"
     let n++
   fi
   rm tmp-here.txt
done

# 判断是否替换了,存为新文件
if [ $n -eq 0 ];then
   echo "没有可替换的值"
else
   pdftk "tmp-$f" output "$o" compress
   echo "$o is OK"
fi
rm "tmp-$f"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值