我已经在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文档”
答案 0 :(得分:0)
任何早期输出都会导致标题错误。要寻找的东西是在您的标头调用或实际输出之前发生的回声,无论是html还是空白。错误和警告(如果显示的话)也会使事情变得混乱。
这听起来像您在ini中打开了display_errors
。
在您的ini中关闭display_errors
,否则警告和注意会破坏标题。
为了获得最佳的错误记录体验,请将error_reporting
设置为-1
,关闭display_errors
,然后设置自定义error_log
。然后在您的终端中,输入tail -f /path/to/error_log
。现在,您的通知,警告和错误将实时滚动显示,而不会影响网页的显示。
一旦没有警告或通知出现,标题将被正确发送,并且您的应用程序将正常运行。