如何让PHP等到创建PDF进行打印?

问题描述 投票:2回答:2

我有一个脚本,可以创建PDF文档并继续发送以进行打印。碰巧我需要等待文档被创建,检查并最近发送以进行打印。

    define('TIKET_DIR', public_path('temp/'));
    $token = sha1(microtime().'tk');
    $pdfPath = TIKET_DIR.$token.'.pdf';    
    $html2pdf = new HTML2PDF('V', array('72', '110'), 'es', true, 'UTF-8', 0);
    $html2pdf->WriteHTML($html);
    $html2pdf->Output($pdfPath, 'F');
    $cmd = "lpr -P".$ococina->impresora." ";
    $cmd .= $pdfPath;
    $response = shell_exec($cmd);

变量$ html是动态创建的,可能会延迟。通常打印PDF文档,但有时不打印,我认为这是因为在没有准备好PDF文档的情况下执行了lpr命令。我在带有CUPS打印服务器的Ubuntu上使用LEMP。我必须关闭并打开所有连接到计算机的打印机,然后再打开以前发送过的PDF文档。

提前感谢。

php laravel pdf printing cups
2个回答
1
投票

嗯,PHP具有睡眠功能:

int sleep ( int $seconds )

(请参阅:http://php.net/manual/en/function.sleep.php)但这不是解决问题的好方法。同样,您可能会遇到网络服务器或PHP设置所定义的最大执行时间。

也许正在研究异步解决方案?例如,之后需要pdf和电子邮件的处理信息


-1
投票

使用下面的代码,它就像一个魅力。

html2pdf().from(element).save().then(function () {
    // Whatever you want to happen when it's done!
});
© www.soinside.com 2019 - 2024. All rights reserved.