Как запрограммировать поиск и замену текста в файлах PDF

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

Я знаю, что он действительно старый, но я столкнулся с этой проблемой, и вы - первый результат в Google. Что вы использовали в конце?

eri0o 28.01.2015 22:10

Я использовал Perl, модуль CAM :: PDF и образец программы changepagestring.pl, как это было предложено в ответе Криса Долана. Это было разовое мероприятие, так что не спрашивайте меня, как это сделать сейчас ;-)

rpilkey 29.01.2015 17:05
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
20
2
43 986
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

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

Большое спасибо Крису за ответ и за модуль по CPAN. У меня это хорошо сработало. Надеюсь, Google подхватит эту страницу, я не видел модуля CAM :: PDF в моих поисках. Роджер

rpilkey 21.10.2008 22:26

для всех, кто ищет, я попробовал пробную версию verypdf.com/app/pdf-text-replacer/…, и она отлично сработала.

RozzA 07.01.2015 04:21

@rpilkey может ли кто-нибудь предоставить мне образец примера, поскольку я новичок в Perl, и я не знаю, как запустить этот пакет.

Sundeep Pidugu 29.04.2019 10:45

Я тоже в отчаянии. После 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 15.01.2015 12:53

@mkl Вы правы, спасибо, что указали на это. Я отредактировал свой ответ, чтобы сделать его более ясным. Я столкнулся с этим вопросом, когда искал одноразовое решение массовой замены текста в PDF-файлах. Я был в порядке с программным решением, но ничего из того, что я пробовал, не сработало. Этот онлайн-инструмент действительно работал, поэтому я все равно решил им поделиться.

Dimitar 17.01.2015 18:35

Я предлагаю вам использовать программу командной строки 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

Другие вопросы по теме