Mengubah CYMK dan layer PDF dengan Bash Script
Berikut adalah contoh bash script yang dapat digunakan untuk memeriksa secara rekursif apakah semua berkas PDF sudah format warna RGB dan tanpa layer, mengubah berkas PDF ke RGB jika masih dalam format CYMK, meratakan (flatten) layer PDF jika masih memiliki layer, dan menghapus print-mark pada halaman PDF jika ada:
`
!/bin/bash
function check_pdf { if [ -f "$1" ] && [ "${1##*.}" = "pdf" ]; then
Check if PDF is in RGB color space
color=$(identify -verbose "$1" | grep Colorspace | awk '{print $2}')
if [ "$color" != "RGB" ]; then
echo "Converting $1 to RGB"
gs -o "${1%.*}_rgb.pdf" -sDEVICE=pdfwrite -dColorConversionStrategy=/RGB "$1"
mv "${1%.*}_rgb.pdf" "$1"
fi
# Check if PDF has layers
layers=$(pdftk "$1" dump_data | grep -c "NumberOfLayers")
if [ "$layers" -ne 0 ]; then
echo "Flattening layers in $1"
pdftk "$1" output "${1%.*}_flat.pdf" flatten
mv "${1%.*}_flat.pdf" "$1"
fi
# Check if PDF has print-marks
if pdftk "$1" dump_data | grep -q "/Print"; then
echo "Removing print-marks from $1"
pdftk "$1" output "${1%.*}_noprint.pdf" "drop_xfa" "drop_attachments"
mv "${1%.*}_noprint.pdf" "$1"
fi
elif [ -d "$1" ]; then
# Recursively check files in directory
for file in "$1"/*; do
check_pdf "$file"
done
fi
}
panggil fungsi rekursif
check_pdf "/path/to/directory"
`