是否可以使用PHP从PDF文件中删除密码?

时间:2010-06-01 13:42:51

标签: php pdf passwords

我想问一下,是否可以使用PHP从受密码保护的PDF文件中删除密码,我已经知道密码了?我见过this page提供了许多选项,但使用了bash脚本。 :(我被要求尽可能多地使用PHP。任何建议都赞赏!

2 个答案:

答案 0 :(得分:10)

当然有可能,您需要做的就是对加密和压缩进行逆向工程并在PHP中实现反向操作 - 但为什么要这么麻烦:

<?php
   `gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=unencrypted.pdf -c .setpdfwrite -f encrypted.pdf`;
?>

下进行。

答案 1 :(得分:0)

我在Linux上使用qpdf来删除pdf密码。要安装运行:

sudo apt install qpdf

这是从php调用qpdf的函数:

function removePdfPassword($inFilePath, $password, $outFilePath)
{
    if (empty($inFilePath) || empty($password) || !file_exists($inFilePath)) {
        return false;
    }

    $cmd = 'qpdf -password=' . escapeshellarg($password) . ' -decrypt ' . escapeshellarg($inFilePath) . ' ' . escapeshellarg($outFilePath);

    exec($cmd, $output, $retcode);
    $success = $retcode == 0;

    if (!$success) {
        @unlink($outFilePath);
    }

    return $success;
}