我遇到了使用setEncryption函数的DomPDF和base64_encode的问题。
这是我的代码示例。
// Render the HTML as PDF
$dompdf->render();
//Encode title into base64 and add it to PDF Meta
$title_64 = base64_encode( $title );
$dompdf->getCanvas()->get_cpdf()->addInfo( 'Subject' , $title_64 );
//Locking pdf to allow printing only
$dompdf->getCanvas()->get_cpdf()->setEncryption( '' , '' , array( 'print' ) );
// Output the generated PDF to Browser
$dompdf->stream( $post->post_name . ".pdf" , array( "Attachment" => TRUE ) );
因此,一旦下载PDF,所有元数据都会丢失。
我删除包裹base64_encode
的{{1}}函数后,即可恢复元数据。
此外,如果我保留$title
,但我会删除
base64_encode
一切似乎都在起作用,但我能够修改我不想要的PDF。
作为我的最终结果,我应该只能打印PDF,这就是我现在拥有的所有元数据
$dompdf->getCanvas()->get_cpdf()->setEncryption( '' , '' , array( 'print' ) );
有没有人遇到类似问题?
答案 0 :(得分:0)
这是CPDF类/版本中的一个错误,由DomPDF使用。加密的字符串未正确转义:
/Producer (Œa6Sq©åðÇ9Å—ÙÒ°Çl¡ÿÝøVóVѪ!Õñ¶7(Þýä¡)
在弦乐的末尾附近有一个开放的支架,它没有逃脱也没有平衡。
these lines中的逻辑错误。字符串在加密之前被转义,这是完全错误的。