Codziennie redaguję wiele plików PDF, więc spędzam dużo czasu zastanawiając się, jak to zrobić najlepiej.
Dla mnie najlepszym sposobem jest podzielenie pliku PDF na 1-stronicowy plik PDF, obok edycji za pomocą GIMP, obok połączenia. Nie używam imagemagick na wszystkich plikach (nie używam w ogóle), więc nie tracę warstwy tekstowej na wszystkich stronach, ale tylko po redakcji. Nie ładuj całego pliku PDF naraz, ponieważ powoduje to wyczerpanie pamięci.
Podziel plik PDF na pliki 1-stronicowe
Łatwo dziel pliki PDF na 1-stronicowy PDF, dzięki tej funkcji bash (umieść go w ~ / .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;
};
Możesz teraz wejść, split_pdf file.pdf
aby uzyskać dużo plików PDF.
Redaguj pliki
Ale teraz musisz edytować wszystkie te pliki. Możesz to zrobić za pomocą gimp original-filename-*.pdf
. Proponuję skonfigurować skrót w GIMP (okno główne-> Edycja-> Skrót), aby zastąpić plik (używam CTRL + R), filtr rozmycia (np. CTRL + D), zamknąć plik (np. CTRL + W) i wyjść z GIMP ( np. CTRL + Q). Pamiętaj, aby nie ładować GIMP-a do wielu plików jednocześnie, ale GIMP-a jak ładujesz po otwarciu, abyś mógł bezpiecznie korzystać gimp original-filename-*.pdf
z tysiąca plików.
Łącz pliki
Możesz łatwo łączyć pliki za pomocą: pdftk originam-filename-*.pdf cat output "new-file-anon.pdf";
Połącz to wszystko razem
Te operacje są bardzo powtarzalne i nudne, więc łączę to wszystko w 1 skrypcie:
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;
};
Najnowsza wersja tego skryptu jest zawsze dostępna pod adresem : http://dostep.jawne.info.pl/it/bashrc
Pamiętaj, aby zamknąć GIMP (CTRL + Q) po całej redakcji, aby kontynuować skrypt.
Poza tym jako ja otwieram zredagowane pliki (lubię czytać, aby sprawdzić, czy wszystkie) oraz przesyłać do Scribd za pomocą mojego drugiego skryptu - scribd_up , dzięki czemu mogę bardzo skutecznie redagować wiele plików PDF.