微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

print.js密码保护的pdf

如何解决print.js密码保护的pdf

我尝试创建一个前端,该前端将文件夹中的所有PDF文件显示为下拉列表。 所选的PDF应该在chrome信息亭打印模式下静打印。 我是PHP和javascript的初学者,但是在此步骤上没有问题。

问题在于,PDF应当使用密码进行保护,这对我来说无声售货亭打印是不可能的。

我需要使用print.js发送密码,但是我认为print.js中没有功能

另一种解决方案是用PHP解密PDF,将其另存为带后缀的临时文件,不使用密码打印pdf,然后删除临时文件

有人知道我该怎么做吗?我在寻找一种可以解密PDF的解决方案,或者可以通过print.js发送密码,但没有发现任何东西。

非常感谢您的帮助!

<?PHP
$dir = "Path-to-PDF/";
$files = glob("$dir*.pdf",GLOB_BRACE);

?>
<!DOCTYPE html>
<html lang="de">
    <head>
        <title>browser Title</title>
        <Meta charset="utf-8">
        <Meta name="viewport" content="width=device-width,initial-scale=1">
        <link rel="stylesheet" href="inc/css/bootstrap.min.css">
        <link rel="stylesheet" href="inc/css/bootstrap-select.min.css">
        <script src="inc/js/jquery-3.5.1.min.js"></script>
        <script src="inc/js/bootstrap.bundle.min.js"></script>
        <script src="inc/js/bootstrap-select.min.js"></script>
        <script src="inc/js/print.min.js"></script>
    </head>
    <body>
        <div class="d-flex p-5 justify-content-center">
            <form method="post">
                <select name="PDF" class="selectpicker" data-size="5" data-live-search="true"  onchange="this.form.submit()">
                    <option value="">Bitte PDF auswählen...</option>
                    <?PHP
                        foreach($files as $file)
                        {
                    ?>
                        <option><?PHP echo basename($file,$dir); ?></option>
                    <?PHP
                        }
                    ?>
                </select>
            </form>
        </div>
<?PHP
if(isset($_POST["PDF"])){
  $pdf= $_POST["PDF"];
  echo $pdf;
}
?>
        <button type="button" onclick="printJS({printable:'PDF/<?PHP echo $pdf?>',type:'pdf',showModal:true})">
        Print PDF
        </button>
    </body>
</html>

<?PHP

?>

解决方法

如何使用qpdf命令(download)对其进行解密?在Ubuntu上,可以使用sudo apt install qpdf安装它。您可以将PDF文件解密为qpdf --decrypt input.pdf --password='pass' -- out.pdf。它可以通过shell_exec()之类的函数从PHP执行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。