PHPDesktop和mPDF,打印强制保存,而不显示打印对话框

时间:2018-07-18 14:16:43

标签: php web web-deployment web-development-server phpdesktop

我已经在PHP中使用mdf库编写了用于打印报告的代码,如下所示:

include("..\mpdf\mpdf.php");
$mpdf=new mPDF('','A4');
$mpdf->WriteHTML($a);
$mpdf->SetJS('this.print();');
$mpdf->Output();
exit;

当我使用此应用程序时,一切正常。我直接得到打印对话框,也没有PHP警告。但是在PHPDesktop下执行相同的应用程序时,它显示pdf保存对话框而不是显示打印对话框,并且还显示警告:

  

session_start():无法发送会话缓存限制器-标头已   已发送

尽管我已经在每个php页面的顶部使用了以下代码:

OB_START();
if(session_status()!=PHP_SESSION_ACTIVE ||  session_status() == PHP_SESSION_NONE)
    session_start();

我也想在PHPDesktop中打开打印对话框。请提供一些解决方案。

更新

我已从Github下载 phpdesktop-chrome-57.0-rc-php-7.1.3 。另外,我已经从Github下载 php_printer.dll 。版本为 php_printer-php5.6.30 我已将dll放置在每个可能的文件夹中,并将其作为扩展名添加到PHPDesktop项目目录的php.ini文件中。现在,它尝试显示预览,但显示:“无法加载PDF文档”

1 个答案:

答案 0 :(得分:0)

任何早期输出都会导致标题错误。要寻找的东西是在您的标头调用或实际输出之前发生的回声,无论是html还是空白。错误和警告(如果显示的话)也会使事情变得混乱。

这听起来像您在ini中打开了display_errors

在您的ini中关闭display_errors,否则警告和注意会破坏标题。

为了获得最佳的错误记录体验,请将error_reporting设置为-1,关闭display_errors,然后设置自定义error_log。然后在您的终端中,输入tail -f /path/to/error_log。现在,您的通知,警告和错误将实时滚动显示,而不会影响网页的显示。

一旦没有警告或通知出现,标题将被正确发送,并且您的应用程序将正常运行。