Saya mengurangi banyak file PDF setiap hari, jadi saya menghabiskan banyak waktu untuk memikirkan cara melakukannya dengan cara terbaik.
Bagi saya cara terbaik adalah membagi PDF dalam file PDF 1-halaman, selanjutnya mengedit dengan GIMP, selanjutnya menggabungkannya. Saya tidak menggunakan imagemagick pada semua file (saya tidak menggunakan sama sekali), jadi saya tidak kehilangan layer teks pada semua halaman, tetapi hanya pada redacted. Jangan memuat seluruh file PDF sekaligus, karena menyebabkan kehabisan memori.
Membagi PDF dalam file 1 halaman
Pisahkan file PDF dengan mudah menjadi PDF 1 halaman yang dapat Anda lakukan dengan fungsi bash ini (letakkan di ~ / .bashrc):
function pdf_split(){
for file in "$@"; do
if [ "${file##*.}" != "pdf" ]; then
echo "Skip $file because it's not PDF file";
continue
fi;
pages=$(pdfinfo "$file" | grep "Pages" | awk '{print $2}')
echo "Detect $pages in $file";
filename="${file%.*}";
unset Outfile;
for i in $(seq 1 "$pages"); do
pdftk "$file" cat "$i" output "$filename-$i.pdf";
Outfile[$i]="$filename-$i.pdf";
done;
done;
};
Anda sekarang dapat masuk split_pdf file.pdf
untuk mendapatkan banyak file PDF.
Hapus file
Tapi, sekarang Anda perlu mengedit semua file ini. Anda bisa melakukannya dengan gimp original-filename-*.pdf
. Saya sarankan untuk mengkonfigurasi pintasan di GIMP (Jendela utama-> Edit-> Pintasan) untuk mengganti file (saya menggunakan CTRL + R), mengaburkan filter (mis. CTRL + D), menutup file (mis. CTRL + W) dan keluar dari GIMP ( mis. ELECTRL + Q). Ingatlah untuk tidak memuat di GIMP ke banyak file sekaligus, tetapi GIMP saat Anda memuat setelah dibuka, jadi Anda bisa menggunakannyagimp original-filename-*.pdf
ribuan file dengan aman.
Gabungkan file
Anda dapat menggabungkan file dengan mudah dengan: pdftk originam-filename-*.pdf cat output "new-file-anon.pdf";
Hubungkan semuanya
Operasi ini sangat berulang dan membosankan, jadi saya menghubungkan semuanya dalam 1 skrip:
function pdf_redact(){
for file in "$@"; do
if [ "${file##*.}" != "pdf" ]; then
echo "Skip $file because it's not PDF file";
continue
fi;
pages=$(pdfinfo "$file" | grep "Pages" | awk '{print $2}')
echo "Detect $pages in $file";
filename="${file%.*}";
unset Outfile;
for i in $(seq 1 "$pages"); do
pdftk "$file" cat "$i" output "$filename-$i.pdf";
Outfile[$i]="$filename-$i.pdf";
done;
gimp "${Outfile[@]}";
pdftk "${Outfile[@]}" cat output "$filename-anon.pdf";
rm "${Outfile[@]}";
read -p "Do you want open output file? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
evince "$filename-anon.pdf";
fi
read -p "Do you want upload output file to Scribd.com? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
scribd_up "$filename-anon.pdf";
fi
done;
};
Versi terbaru dari skrip ini selalu dapat diakses di: http://dostep.jawne.info.pl/it/bashrc
Ingatlah untuk menutup GIMP (CTRL + Q) setelah semua redaksi untuk melanjutkan skrip.
Dalam kecanduan ketika saya membuka file yang dihapus (saya suka membaca untuk memeriksa apakah semua) dan untuk mengunggah ke Scribd dengan skrip saya yang lain - scribd_up , jadi sekarang saya dapat mengurangi banyak file PDF dengan sangat efisien.