Шаблон сопоставления текста в теле PDF и добавление гиперссылок с помощью PHP - PullRequest
0 голосов
/ 01 сентября 2010

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

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

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

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

EDIT:

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

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

Что ты думаешь? Также возможны другие языки.

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 сентября 2010

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

Apago (www.apago.com) разработало коммерческое решение для замены текста в файлах PDF. Используется производителем поздравительных открыток для изменения цен, текста "MADE IN", номеров продуктов и т. Д.

0 голосов
/ 01 сентября 2010
<?
$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 в формате PDF

5000 asdf

...