【问题标题】:print.js password protected pdfprint.js 密码保护 pdf
【发布时间】:2020-12-21 14:59:03
【问题描述】:

我尝试创建一个前端,将文件夹中的所有 PDF 文件显示为下拉列表。 选定的 PDF 应在 chrome kiosk 打印模式下静默打印。 我是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

?>

【问题讨论】:

    标签: javascript php pdf passwords


    【解决方案1】:

    使用 qpdf 命令 (download) 解密怎么样?在 Ubuntu 上,您可以使用 sudo apt install qpdf 安装它。您可以将 pdf 文件解密为qpdf --decrypt input.pdf --password='pass' -- out.pdf。它可以通过 shell_exec() 等函数从 PHP 中执行。

    【讨论】:

    • 感谢您的回答,非常好的主意。我今天也发现了这个并尝试使用它。我做了一些没有安装的测试,只是在 windows 上使用了 qpdf 库。
    • 您知道如何在解密之前测试密码吗?还是从 qpdf.exe 获取输出?
    猜你喜欢
    • 1970-01-01
    • 2012-09-05
    • 2011-12-23
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2017-11-17
    • 2015-04-25
    相关资源
    最近更新 更多