Я щодня редагую багато PDF-файлів, тому витрачаю багато часу на роздуми, як зробити це найкращим чином.
Для мене найкращим способом є розділення PDF в 1-сторінковому PDF-файлі, поряд із редагуванням у GIMP, поруч із поєднанням. Я не використовую imagemagick для всіх файлів (я взагалі не використовую), тому я не втрачаю текстовий шар на всіх сторінках, а лише на редагуванні. Не завантажуйте одразу весь файл PDF, оскільки це спричиняє виснаження пам'яті.
Розділити PDF на 1-сторінкові файли
Легко розділити 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 ( наприклад.CTRL + Q). Не забудьте не завантажувати в GIMP відразу багато файлів, але GIMP, як ви завантажуєте після відкриття, так що ви можете використовувати gimp original-filename-*.pdf
в безпеці тисячі файлів.
Об'єднайте файли
Ви можете легко комбінувати файли з: pdftk originam-filename-*.pdf cat output "new-file-anon.pdf";
З’єднайте все це разом
Ці операції дуже повторюються і нудні, тому я з'єдную все це за 1 сценарій:
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.