Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php将pdf文件转换为txt文件_Php_Pdf_Text Files - Fatal编程技术网

使用php将pdf文件转换为txt文件

使用php将pdf文件转换为txt文件,php,pdf,text-files,Php,Pdf,Text Files,有一个程序,pdftotext,可以将pdf文件转换成文本文件。要在linux控制台上直接使用它,请执行以下操作: pdftotext file.pdf 这将在与pdf文件相同的目录中生成file.txt。我一直在寻找一种在php程序中实现这一点的方法,在谷歌搜索之后,我使用了两个应该适合我的命令:system()和exec()。因此,我用以下内容制作了一个php文件: <?php system('pdftotext file.pdf'); ?> 但当我运行这段代码时

有一个程序,pdftotext,可以将pdf文件转换成文本文件。要在linux控制台上直接使用它,请执行以下操作:

pdftotext file.pdf
这将在与pdf文件相同的目录中生成file.txt。我一直在寻找一种在php程序中实现这一点的方法,在谷歌搜索之后,我使用了两个应该适合我的命令:system()和exec()。因此,我用以下内容制作了一个php文件:

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

但当我运行这段代码时,它不起作用。未创建任何txt文件。 因此,我尝试使用另一个命令创建一个测试文件:

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

这很有效。我还使用了exec(),结果是一样的。为什么不起作用

编辑:根据RoBorg的建议,我在命令中添加了2>&1参数,因此:

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

它打印了一条错误消息:

pdftotext:加载共享时出错 库:libfontconfig.so.1:无法 打开共享对象文件:没有此类文件 或目录


服务器上似乎缺少一些内容。

PHP有一个内置的PDF函数库,应该能够提供您所需的内容:

这可能是权限问题,但请尝试以下方法:

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


2>&1
将stderr重定向到stdout,因此将打印任何错误消息。从那时起,它应该很容易修复。

安装这个。它为我解决了问题


现在,pdftotext工作得很好。

它打印了一条错误消息“pdftotext:加载共享库时出错:libfontconfig.so.1:无法打开共享对象文件:没有这样的文件或目录”。由于我没有服务器的根访问权限,我想我无能为力。该库似乎主要用于输出pdf。我需要的是另一种方式