Как запрограммировать текстовый поиск и заменить в файлах PDF - PullRequest
17 голосов
/ 21 октября 2008

Как бы я мог программно искать и заменять текст в большом количестве файлов PDF? Я хотел бы удалить URL-адрес, который был добавлен в набор файлов. Мне удалось удалить ссылку с помощью JavaScript в разделе «Пакетная обработка» в Adobe Pro, но текст ссылки остается. Я видел рекомендации по использованию обработки текста, которая работает вручную, но я не хочу изменять 1300 файлов вручную.

Ответы [ 8 ]

15 голосов
/ 21 октября 2008

Поиск текста в PDF может быть затруднен из-за графической природы формата документа - искомые буквы могут не быть смежными в файле. Тем не менее, CAM :: PDF обладает некоторыми возможностями поиска и замены и эвристики. Попробуйте changepagestring.pl и посмотрите, работает ли он в ваших PDF-файлах.

6 голосов
/ 28 мая 2009

Я тоже отчаялся. После 10 установок PDF Editor, которые все стоят денег, но безуспешно:

pdftk + достаточно редактора:

Заменить текст в файлах PDF

  • Используйте pdftk, чтобы распаковать страницу PDF потоки

    pdftk original.pdf вывод original.clear.pdf распаковать

  • Заменить текст (иногда этот работает, иногда нет).

  • Исправление измененного (и теперь сломанного) PDF

    pdftk original.clear.pdf вывод original.clear.fixed.pdf

(от Джоэла Даре)

2 голосов
/ 07 января 2011

Не уверен, что я хотел бы сделать всю работу по написанию кода для изменения ваших 1300 файлов, когда есть программа, которая может сделать это для вас. На днях я использовал профессиональную версию Infix для пакетного изменения почти 100 файлов с помощью функции «Поиск и замена в файлах». Работает отлично. Я оценил другие программы в надежде найти функциональность поиска и замены, аналогичную Microsoft Word. Инфикс был единственным, кого я нашел, который может это сделать. Проверить: http://www.iceni.com/infix-pro.htm

2 голосов
/ 28 июля 2010

Вы можете использовать функцию «редактирования» в Adobe Acrobat Pro, чтобы найти и заменить все ссылки в одном документе за один шаг ... не уверен, что его можно автоматизировать за несколько шагов.

http://help.adobe.com/en_US/Acrobat/9.0/Professional/WS5E28D332-9FF7-4569-AFAD-79AD60092D4D.w.html

1 голос
/ 15 января 2015

Вопрос касается программного решения, но я все же поделюсь этим бесплатным онлайн-инструментом, который помог мне массово заменить текст в некоторых файлах PDF:

http://www.pdfdu.com/pdf-replace-text.aspx

После замены текста я не заметил никаких объявлений или других изменений в полученных файлах PDF.

Мне не удалось внести изменения локально с помощью программного обеспечения, которое я попробовал. Я думаю, что основная проблема заключалась в том, что мне не хватало шрифта, используемого в PDF, и он не работал должным образом, даже с Acrobat Pro. Онлайн-инструмент не жаловался и дал отличный результат.

1 голос
/ 18 декабря 2012

Это только половина решения, но я использовал Touch up в сочетании с поддержкой AppleScript для отправки нажатий клавиш, чтобы заменить строку в тысячах ячеек таблицы. В зависимости от того, как ваши страницы макет, это может работать для вас. В моем случае мне приходилось вручную вставлять курсор в начало каждой таблицы (десятки таблиц - вполне управляемые для ручного процесса), но после этого я автоматически заменил тысячи ячеек.

1 голос
/ 12 ноября 2011

Я только что закончил пробовать инфикс для текста, который состоит из текста с диакритическими знаками, с надеждой создать еще один текст, в котором символы с двойными и составными диакритическими знаками заменяются на чередующиеся одиночными диакритическими знаками. Infix - определенно хорошее решение для тех, кому не безразлично понимать работу программных решений. Все изменения запроса были выполнены. Еще нужно понять, как осуществить перекомпоновку слов, которые меняют расположение текста.

0 голосов
/ 14 июля 2017

Я предлагаю вам использовать программу командной строки VeryPDF PDF Text Replacer для пакетной замены текста на страницах PDF, вы можете запустить pdftr.exe, чтобы легко заменить текст на страницах PDF, например,

pdftr.exe -contentreplace "Мое имя => Ваше имя" D: \ in.pdf D: \ out.pdf

pdftr.exe -searchandoverlaytext "Мое имя => Ваше имя" 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 "string" 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 -поиск и оверлейный текст "PDFcamp Printer => VeryPDF Printer" -overlaytextfontsize 8 D: \ in.pdf D: \ out.pdf

pdftr.exe -поиск и оверлейный текст "PDFcamp Printer => VeryPDF Printer" -overlaytextfontsize 80% D: \ in.pdf D: \ out.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...