0





306

Advertisement

There's this program, pdftotext, that can convert a pdf file to a text file. To use it directly on the linux console:

pdftotext file.pdf

That will generate a file.txt on the same directory as the pdf file. I was looking for a way to do it from inside a php program, and after some googling I ended with two commands that should work for me: system() and exec(). So I made a php file with this:

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

But when I run this code, it doesn't work. No txt file is created. So I tried to create a test file with another command:

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

This worked fine. I've also used exec() and the results were the same. Why doesn't it work?

EDIT: following RoBorg advice, i added the 2>&1 argument to the command, so:

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

it printed a error message:

pdftotext: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory

Seems like something is missing on the server.

Question author David-mcdavidson | Source

Advertisement


0


It's probably a permissions issue, but try this instead:

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

The 2>&1 redirects stderr to stdout, so any error messages will be printed. It should be pretty easy to fix from then on.

Answer author Greg