Не так давно передо мной стояла задача удалить из 3000 отсканированных договоров пустые страницы и страницы приложений. Плюс к этому, документ pdf должен был поддерживать поиск по тексту, а значит формат такого документа должен был быть pdf/a. Вручную распознавание, удаление и сохранение файлов заняло бы слишком много времени, поэтому была необходимость найти редактор PDF с возможностью записи макросов или чем то подобным. Таким редактором оказался Adobe Acrobat Pro, он поддерживает JavaScript и умеет пакетно обрабатывать файлы.
Для того, чтобы создать список действий, открываем панель “инструменты” и видим раздел “мастер операций”. Создаем новую операцию. Для обработки документа в соответствии с моей поставленной задачей, сперва нужно распознать текст документа, поэтому первым добавляем “Распознать текст с помощью оптического распознавания символов OCR”. В настройках данного действия выбрать язык распознавания “Русский” и PDF на выходе “изображение с поиском (точно)”, сохраняем. Далее мне необходимо было определить ключевое слово по которому будут удалены страницы, содержащие данное слово.
Для этого был использован JS:
for (var p = 0; p < this.numPages; p++)
{
var numWords = this.getPageNumWords(p);
for (var i=0; i<numWords; i++)
{
var ckWord = this.getPageNthWord(p, i, true);
if ( ckWord == "Ключевое_слово")
{
this.deletePages(p);
}
}
}
В целях уменьшения задержек при воспроизведении операции, после каждого действия был добавлен шаг “Сохранить”. По каким то причинам операции с промежуточным шагом выполнялись быстрее.
Добавляем из раздела “дополнительные инструменты” “выполнить сценарий javascript” и вставляем указанный код в окно настроек шага. Следующим шагом мы удаляем все пустые страницы. Так же добавляем “выполнить сценарий javascript” и в окно настроек шага вставляем код ниже.
for(var i=this.numPages-1;i>=0;i--)
{
if(this.getPageNumWords(i)==0)
this.deletePages(i);
}
В конечном итоге, с учетом количества ключевых слов и промежуточных шагов сохранения документа, у меня получилось 8 шагов.
Хочу заметить, качество работы операций по удалению страниц, зависит от качества документа, но в целом результаты удовлетворительны. По завершению обработки документов, следует проверить все файлы на наличие пропущенных страниц.