Я редактирую много файлов PDF каждый день, поэтому я трачу много времени на размышления о том, как сделать это наилучшим образом.
Для меня лучший способ - это разделить PDF на 1-страничный PDF-файл, затем редактировать с помощью GIMP, а затем объединить его. Я не использую imagemagick для всех файлов (я вообще не использую), поэтому я не теряю текстовый слой на всех страницах, а только на отредактированных. Не загружайте весь файл PDF сразу, потому что это приводит к исчерпанию памяти.
Сплит PDF в одностраничных файлах
Вы можете легко разделить PDF-файлы на 1-страничный PDF-файл с помощью этой функции bash (поместите ее в ~ / .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;
};
Теперь вы можете войти, split_pdf file.pdf
чтобы получить много файлов PDF.
Редактировать файлы
Но теперь вам нужно отредактировать все эти файлы. Вы можете сделать это с gimp original-filename-*.pdf
. Я предлагаю настроить ярлык в GIMP (Главное окно-> Редактировать-> Ярлык), чтобы заменить файл (я использую CTRL + R), фильтр размытия (например, CTRL + D), закрыть файл (например, CTRL + W) и выйти из GIMP ( eg.CTRL + Q). Не забудьте не загружать в GIMP много файлов одновременно, а GIMP, как вы загружаете после открытия, так что вы можете безопасно использовать gimp original-filename-*.pdf
тысячи файлов.
Объединить файлы
Вы можете легко комбинировать файлы с: pdftk originam-filename-*.pdf cat output "new-file-anon.pdf";
Соедините все это вместе
Эти операции очень повторяющиеся и скучные, поэтому я соединяю все это в один скрипт:
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;
};
Новейшая версия этого скрипта всегда доступна по адресу: http://dostep.jawne.info.pl/it/bashrc
Не забудьте закрыть GIMP (CTRL + Q) после всего редактирования, чтобы продолжить скрипт.
В зависимости от того, как я могу открыть отредактированные файлы (мне нравится читать, чтобы проверить, все ли), а также загрузить в Scribd с помощью моего другого скрипта - scribd_up , так что теперь я могу очень эффективно редактировать многие PDF-файлы.