【问题标题】:PHPDesktop and mPDF, print forces to save instead of showing print dialogPHPDesktop 和 mPDF,打印强制保存而不是显示打印对话框
【发布时间】:2018-07-18 14:16:43
【问题描述】:

我已经编写了使用 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 文档失败”

【问题讨论】:

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


【解决方案1】:

任何早期输出都会导致标题错误。要查找的内容是在您的标头调用或实际输出之前发生的回声,无论是 html 还是只是空白。如果显示错误和警告也会搞砸。

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

在你的ini中关闭display_errors,否则警告和通知会搞砸你的标题。

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

一旦没有出现警告或通知,标头就会正确发送,您的应用程序应该可以正常工作。

【讨论】:

  • 您好,主要问题是 pdf 没有发送到打印机。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
  • 2013-04-05
相关资源
最近更新 更多