Сопоставление текста с шаблоном в теле PDF-файла и добавление гиперссылок с помощью PHP

StackOverflow https://stackoverflow.com/questions/3619462

Вопрос

Ситуация следующая:У меня есть серия больших, толстых PDF-файлов, полных изображений и случайно распределенного текста — это разделы огромного рекламного прайс-листа на широкий спектр продуктов.Мне нужно сопоставить все коды каталога в тексте каждого PDF-файла с шаблоном и обернуть его гиперссылкой, которая будет указывать на соответствующую страницу в интернет-магазине.

Итак, задача очень простая — отсканировать PDF-файл на наличие всего открытого текста. 10 последовательности цифр и преобразуйте их в ссылки, href которых равен http://something?code=[match].

Я также предпочел бы объединить это в PHP-скрипт, если это возможно, но подойдет любой язык.У меня есть нутром ощущение, что, возможно, даже вспышка может быть вариантом.

Есть идеи?Заранее спасибо.

РЕДАКТИРОВАТЬ:

Некоторые поступающие ответы учат меня синтаксису pcre.Проблема в том, что мне нужно выполнить поиск и замену в PDF-файле.Итак, проблема двоякая.Скажем, мы сделаем это на PHP:

  • Как читать/записывать PDF-файл на PHP?
  • Поскольку PDF-файлы не являются файлами с открытым текстом, я не могу просто использовать для них регулярные выражения, а также считаю, что ссылки PDF не связаны с текстом, а идут отдельно в виде регионов.Это также означает, что я мог бы наложить активный прямоугольник на координаты символов кода каталога, если бы я только знал, где на странице находится соответствующий код.

Что вы думаете?Другие языки также являются опцией.

Спасибо.

Это было полезно?

Решение

Заменить текст в PDF-файле сложно, и ни одно из PDF-решений с открытым исходным кодом не поддерживает эту возможность.

Компания Apago (www.apago.com) имеет разработанное коммерческое решение для замены текста в файлах PDF.Он используется производителем поздравительных открыток для изменения цен, текста «СДЕЛАНО», номеров продуктов и т. д.

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

<?
$s="
http://something.com?code=3000 asdf text
http://something.com?code=5000 asdf
";
echo preg_replace('/(http:\/\/something\.com\?code=(\d+))/s', '<a href="$1">$2</a>',$s);
?>

выход3000 текст в формате ASD

5000 ASDF

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top