Я написал код для печати отчета с использованием библиотеки mdf в PHP, как показано ниже:
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 также. Пожалуйста, предоставьте какое-нибудь решение.
ОБНОВИТЬ
Я скачал phpdesktop-хром-57,0-гс-PHP-7.1.3 из Github. Также я скачал php_printer.dll из Github. Версия php_printer-php5.6.30
Я поместил dll в каждую возможную папку, а также добавил ее в качестве расширения в файл php.ini каталога проекта PHPDesktop. Теперь он пытается показать предварительный просмотр, но говорит: «Не удалось загрузить документ PDF»
Любой ранний вывод приведет к ошибкам заголовка. Вещи, которые нужно искать, это эхо, которое происходит перед вызовами вашего заголовка, или фактический вывод, будь то HTML или даже просто пробел. Ошибки и предупреждения, если отображаются, также портят ситуацию.
Это звучит как у вас display_errors
включил в свой ini.
Выключи display_errors
в вашем INI, в противном случае предупреждения и уведомления будут испортить ваши заголовки.
Для лучшего опыта регистрации ошибок установите error_reporting
в -1
, очередь display_errors
и установите пользовательский error_log
, Затем в своем терминале введите tail -f /path/to/error_log
, Ваши уведомления, предупреждения и ошибки теперь будут прокручиваться в реальном времени, не искажая отображение вашей веб-страницы.
Как только предупреждения или уведомления не появляются, заголовки будут отправлены правильно, и ваше приложение должно работать как обычно.
Других решений пока нет …