我正在使用pdftk库从pdf中提取表单字段。除了我得到了pdf文件pdf file link的一个问题之外,其他一切都运行良好。导致错误的原因如下

Error: Failed to open PDF file:
   http://www.uscis.gov/sites/default/files/files/form/i-9.pdf
Done.  Input errors, so no output created.

为此的命令是
root@ri8-MS-7788:/home/ri-8# pdftk http://192.168.1.43/form/i-9.pdf dump_data_fields

相同的命令适用于所有其他形式。

尝试1

我试图将pdf加密为不安全的版本,但是会产生相同的错误。这是命令
pdftk http://192.168.1.43/forms/i-9.pdf input_pw foopass output /var/www/forms/un-i-9.pdf

更新

这是我的全部职责
public function Formanalysis($pdfname)
    {
         $pdffile=Yii::app()->getBaseUrl(true).'/uploads/forms/'.$pdfname;
        exec("pdftk ".$pdffile." dump_data_fields 2>&1", $output,$retval);
        //got an error for some pdf if these are secure
        if(strpos($output[0],'Error') !== false)
        {
            $unsafepdf=Yii::getPathOfAlias('webroot').'/uploads/forms/un-'.$pdfname;
            //echo "pdftk ".$pdffile." input_pw foopass output ".$unsafepdf;
            exec("pdftk ".$pdffile." input_pw foopass output ".$unsafepdf);
            exec("pdftk ".$unsafepdf." dump_data_fields 2>&1", $outputunsafe,$retval);
            return $outputunsafe ;
            //$response=array('0'=>'error','error'=>$output[0]);
            //return $response;

        }

        //if (strpos($output[0],'Error') !== false){ echo  "error to run" ; }   // this is the option to handle error
        return $output;

    }

最佳答案

这可能是一个小技巧,但是应该为您工作。如@bruno所说,这是加密文件。在将其用于pdftk之前,应先对其进行解密。为此,我找到了一种解密方法qpdf,它是一个免费的opem源库,用于解密pdf,删除所有者和用户密码等,等等。您可以在这里Qpdf找到它。在您的系统上安装它。并运行此命令

qpdf --decrypt input.pdf output.pdf

然后在pdftk命令中使用输出文件。它应该工作。

关于php - pdftk错误: Failed to open PDF file:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30259554/

10-12 12:48