pdftk未在php中执行

pdftk未在php中执行,php,pdftk,php-pdftk,Php,Pdftk,Php Pdftk,我不能在php中执行pdftk。正如在文档中一样,saveas只提到如下内容 use mikehaertl\pdftk\Pdf; $pdf = new Pdf('/path/my.pdf'); $pdf->allow('AllFeatures') // Change permissions ->compress($value) // Compress/Uncompress ->saveAs('new.pdf'); 但是我的代码没

我不能在php中执行pdftk。正如在文档中一样,saveas只提到如下内容

use mikehaertl\pdftk\Pdf;

$pdf = new Pdf('/path/my.pdf');

$pdf->allow('AllFeatures')      // Change permissions
    ->compress($value)          // Compress/Uncompress
    ->saveAs('new.pdf');
但是我的代码没有给出任何输出。我试着像这样调试

// Check for errors
if (!$pdf->saveAs('new.pdf')) {
    $error = $pdf->getError();
}
没有消息。 后来我发现,Pdftk还没有被执行

public function saveAs($name)
{
    if (!$this->getCommand()->getExecuted() && !$this->execute()) {
     echo 'test'; // it is printing   
     return false;
    }
}
这是什么意思?我已从composer安装。当阅读github问题时,开发人员的回答可能是我的问题。是 您需要设置pdftk命令的路径,请参见

我不清楚如何设置路径,文档中没有突出显示。这里只提到

该类使用php外壳命令来执行pdftk。您可以将其命令类的$options作为第二个参数传递给构造函数:例如

$pdf = new Pdf('/path/my.pdf', [
    'command' => '/some/other/path/to/pdftk',
    // or on most Windows systems:
    // 'command' => 'C:\Program Files (x86)\PDFtk\bin\pdftk.exe',
    'useExec' => true,  // May help on Windows systems if execution fails
]);

我正在使用xampp。关于pdftk,我在项目中有一个由composer创建的目录。这条路是什么?可以在linux或Windows server中移动此项目吗?我需要任何第三方软件安装吗?

您需要从这里安装pdftk-。安装后,如果您在windows上,请确保将系统环境变量设置为执行pdftk,只需在命令提示符下运行即可进行测试

pdftk——版本

如果这在命令提示符下起作用,则表示路径正确。其次,如果无法在windows中设置环境变量,可以直接从代码中的程序文件中传递
pdftk.exe
的路径,如下所示:

$pdf = new Pdf('/path/my.pdf', [
    'command' => 'C:\Program Files (x86)\PDFtk\bin\pdftk.exe',
    // or on most Windows systems:
    // 'command' => 'C:\Program Files (x86)\PDFtk\bin\pdftk.exe',
    'useExec' => true,  // May help on Windows systems if execution fails
]);

您还需要找出任何有关权限的问题,确保php有权限在您的windows中执行脚本,并且可以写入文件系统。

您需要从这里安装pdftk-。安装后,如果您在windows上,请确保将系统环境变量设置为执行pdftk,只需在命令提示符下运行即可进行测试

pdftk——版本

如果这在命令提示符下起作用,则表示路径正确。其次,如果无法在windows中设置环境变量,可以直接从代码中的程序文件中传递
pdftk.exe
的路径,如下所示:

$pdf = new Pdf('/path/my.pdf', [
    'command' => 'C:\Program Files (x86)\PDFtk\bin\pdftk.exe',
    // or on most Windows systems:
    // 'command' => 'C:\Program Files (x86)\PDFtk\bin\pdftk.exe',
    'useExec' => true,  // May help on Windows systems if execution fails
]);
您还需要解决与权限有关的任何问题,确保php具有在windows中执行脚本的权限,并且可以写入文件系统