Преобразование файлов PDF в файлы txt с помощью php

Есть программа pdftotext, которая может преобразовать файл PDF в текстовый файл. Чтобы использовать его непосредственно на консоли Linux:

pdftotext file.pdf

Это создаст файл .txt в том же каталоге, что и файл pdf. Я искал способ сделать это изнутри программы php, и после некоторого поиска в Google я нашел две команды, которые должны работать для меня: system() и exec(). Итак, я сделал файл php с этим:

<?php
    system('pdftotext file.pdf');
?>

Но когда я запускаю этот код, он не работает. Текстовый файл не создается. Поэтому я попытался создать тестовый файл с помощью другой команды:

<?php
    system('touch test.txt');
?>

Это сработало нормально. Я также использовал exec(), и результаты были такими же. Почему это не работает?

EDIT: следуя совету RoBorg, я добавил в команду аргумент 2>&1, поэтому:

<?php
    system('pdftotext file.pdf 2>&1');
?>

он напечатал сообщение об ошибке:

pdftotext: ошибка при загрузке общих библиотек: libfontconfig.so.1: невозможно открыть общий объектный файл: нет такого файла или каталога

Похоже на сервере чего-то не хватает.


person liewl    schedule 27.11.2008    source источник


Ответы (3)


Вероятно, это проблема с правами доступа, но попробуйте следующее:

<?php
    system('pdftotext file.pdf 2>&1');
?>

2>&1 перенаправляет stderr на stdout, поэтому любые сообщения об ошибках будут напечатаны. С этого момента это должно быть довольно легко исправить.

person Greg    schedule 27.11.2008
comment
он напечатал сообщение об ошибке pdftotext: ошибка при загрузке общих библиотек: libfontconfig.so.1: невозможно открыть общий объектный файл: нет такого файла или каталога, так как у меня нет корневого доступа к серверу, я думаю, я ничего не могу сделать. - person liewl; 27.11.2008

PHP имеет встроенную библиотеку функций PDF, которая должна дать вам то, что вам нужно:
http://nl3.php.net/pdf

person Pim Jager    schedule 27.11.2008
comment
Похоже, что эта библиотека в основном предназначена для вывода PDF. Мне нужно наоборот - person liewl; 28.11.2008

установить это. это решило проблему для меня.

http://www.ssforge.com/ssforge-standard/onlinehelp/help/faq/libstdc.html

теперь pdftotext отлично работает.

person T. Brian Jones    schedule 15.07.2011