我正在使用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
所有其他表单都使用相同的命令.
Attempt1
我试图将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
原文地址:https://www.jb51.cc/php/137811.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。