Как я могу программно искать и заменять текст в большом количестве файлов PDF? Я хочу удалить URL-адрес, добавленный к набору файлов. Мне удалось удалить ссылку с помощью javascript в разделе «Пакетная обработка» в Adobe Pro, но текст ссылки остался. Я видел рекомендации по использованию ретуши текста, которая работает вручную, но я не хочу изменять 1300 файлов вручную.
Я использовал Perl, модуль CAM :: PDF и образец программы changepagestring.pl, как это было предложено в ответе Криса Долана. Это было разовое мероприятие, так что не спрашивайте меня, как это сделать сейчас ;-)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Поиск текста в PDF-файле может быть затруднен по своей сути из-за графической природы формата документа - буквы, которые вы ищете, могут не быть смежными в файле. Тем не менее, CAM :: PDF имеет некоторые возможности поиска-замены и эвристику. Попробуйте changepagestring.pl и посмотрите, работает ли он с вашими PDF-файлами.
Большое спасибо Крису за ответ и за модуль по CPAN. У меня это хорошо сработало. Надеюсь, Google подхватит эту страницу, я не видел модуля CAM :: PDF в моих поисках. Роджер
для всех, кто ищет, я попробовал пробную версию verypdf.com/app/pdf-text-replacer/…, и она отлично сработала.
@rpilkey может ли кто-нибудь предоставить мне образец примера, поскольку я новичок в Perl, и я не знаю, как запустить этот пакет.
Я тоже в отчаянии. После 10 установок PDF Editor, которые стоили денег и не увенчались успехом:
pdftk + достаточно редактора:
Заменить текст в файлах PDF
Используйте pdftk для распаковки PDF-страницы потоки
pdftk original.pdf вывод original.clear.pdf распаковать
Замените текст (иногда это работает, иногда нет).
Отремонтировать модифицированный (а теперь сломанный) PDF
pdftk original.clear.pdf вывод original.clear.fixed.pdf
(from Joel Dare)
Вы можете использовать функцию «редактирования» в Adobe Acrobat Pro, чтобы найти и заменить все ссылки в одном документе за один шаг ... не уверен, что это можно автоматизировать в несколько шагов.
http://help.adobe.com/en_US/Acrobat/9.0/Professional/WS5E28D332-9FF7-4569-AFAD-79AD60092D4D.w.html
Не уверен, что хотел бы сделать всю работу по написанию кода для изменения ваших 1300 файлов, когда есть программа, которая может сделать это за вас. На днях я использовал профессиональную версию Infix для пакетного изменения почти 100 файлов с помощью функции «Найти и заменить в файлах». Отлично работает. Я оценивал другие программы в надежде найти функциональность поиска и замены, аналогичную Microsoft Word. Я обнаружил, что только Infix может это сделать. Выезд: http://www.iceni.com/infix-pro.htm
Я только что закончил опробовать инфиксный текст для текста, состоящего из текста, заполненного диакритическими знаками, в надежде создать другой текст, в котором символы с двойными и составными диакритическими знаками заменены на альтернативные с одинарными диакритическими знаками. Infix - определенно хорошее решение для тех, кто не заботится о проблемах понимания работы программных решений. Все изменения в запросе произведены. Еще нужно понять, как происходит перекомпоновка слов, изменяющая макет текста.
Это всего лишь половина решения, но я использовал Touch up в сочетании с поддержкой AppleScript для отправки нажатий клавиш для замены строки в тысячах ячеек таблицы. В зависимости от макета ваших страниц это может сработать для вас. В моем случае мне пришлось вручную вставлять курсор в начало каждой таблицы (десятки таблиц - вполне управляемо для ручного процесса), но после этого я автоматически заменил тысячи ячеек.
Вопрос в программном решении, но я все равно поделюсь этим бесплатным онлайн-инструментом, который помог мне массово заменить текст в некоторых файлах PDF:
http://www.pdfdu.com/pdf-replace-text.aspx
Я не заметил никакой рекламы или других изменений в полученных PDF-файлах после замены текста.
Мне не удалось внести изменения локально с помощью той программы, которую я пробовал. Я думаю, что основная проблема заключалась в том, что мне не хватало шрифта, используемого в PDF, и он не работал должным образом даже с Acrobat Pro. Онлайн-инструмент не пожаловался и дал отличный результат.
OP запросил решение программный, а не ручное.
@mkl Вы правы, спасибо, что указали на это. Я отредактировал свой ответ, чтобы сделать его более ясным. Я столкнулся с этим вопросом, когда искал одноразовое решение массовой замены текста в PDF-файлах. Я был в порядке с программным решением, но ничего из того, что я пробовал, не сработало. Этот онлайн-инструмент действительно работал, поэтому я все равно решил им поделиться.
Я предлагаю вам использовать программу командной строки VeryPDF PDF Text Replacer для пакетной замены текста на страницах PDF, вы можете запустить pdftr.exe, чтобы легко заменить текст на страницах PDF, например,
pdftr.exe -contentreplace "Мое имя => Ваше имя" D: \ in.pdf D: \ out.pdf
pdftr.exe -searchandoverlaytext "My Name => Your Name" D: \ in.pdf D: \ out.pdf
pdftr.exe -searchandoverlaytext "Мое имя => D: \ temp \ myname.png * 20 * 20" D: \ in.pdf D: \ out.pdf
pdftr.exe -pagerange 1-3 -contentreplace "Старый текст => Новый текст || VeryPDF => VeryDOC || Мое имя => Ваше имя" D: \ in.pdf D: \ out.pdf
pdftr.exe -searchtext "строка" C: \ in.pdf
pdftr.exe -pagerange 1 -searchtext "строка" C: \ in.pdf
pdftr.exe -pagerange 1 -searchandoverlaytext "Старый текст => Новый текст || VeryPDF => VeryDOC || Мое имя => Ваше имя" D: \ in.pdf D: \ out.pdf
pdftr.exe -overlaytextfontname "Arial" -overlaytextcolor FF0000 -overlaybgcolor 00FF00 -searchandoverlaytext "Старый текст => Новый текст || VeryPDF => VeryDOC || Мое имя => Ваше имя" D: \ in.pdf D: \ out.pdf
pdftr.exe -opw 123 -upw 456 -contentreplace "Старый текст => Новый текст || VeryPDF => VeryDOC || Мое имя => Ваше имя" D: \ in.pdf D: \ out.pdf
pdftr.exe -searchandoverlaytext "PDFcamp Printer => VeryPDF Printer" -overlaytextfontsize 8 D: \ in.pdf D: \ out.pdf
pdftr.exe -searchandoverlaytext "PDFcamp Printer => VeryPDF Printer" -overlaytextfontsize 80% D: \ in.pdf D: \ out.pdf
Я знаю, что он действительно старый, но я столкнулся с этой проблемой, и вы - первый результат в Google. Что вы использовали в конце?