Поток DOM Pdf не работает с браузером Android (он работает в Windows) - PullRequest
0 голосов
/ 18 мая 2018

Несмотря на то, что в Microsoft Edge / Google Chrome в Windows 10 все работает просто отлично, у меня возникает множество проблем при потоковой передаче PDF-файла в Chrome для Android.Загрузка не заканчивается, выглядит застрявшей и не завершается совсем через пару минут.Я пробовал на своем телефоне и на другом телефоне получить тот же результат.

Я использую DOMPdf, как предложено в руководстве на первой странице сайта:

// Instantiate and use the dompdf class
$dompdf = new Dompdf( array('enable_remote' => true) );

// Load HTML content
$dompdf->loadHtml( $HTML );

// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'portrait');

// Render the HTML as PDF
$dompdf->render();

// Output the generated PDF to Browser
$filename   =   "File_Export_" . date( 'd_m_Y' ) . ".PDF";
//header( 'Content-Length: ' . filesize( $dompdf->output() ) );  
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"" . $filename . "\"");
$dompdf->stream( $filename , array('Attachment' => true ) );
exit(0);

I 'мы пытались добавить много разных заголовков (content-type, content-length - как это прокомментировано в скрипте) без какой-либо помощи.Я просто ссылаюсь на страницу как обычный URL в Android, как показано ниже:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("my url"));
startActivity(browserIntent);

Есть идеи?Спасибо.

PS: я уже прочитал и применил этот без успеха

1 Ответ

0 голосов
/ 18 мая 2018

Похоже, вы выдавали выходные данные до буферизации в поток. Это может быть пробел, предупреждение / уведомление, потенциально много вещей.

Для того, чтобы излечить это, нужно использовать ob_clean.

Эта функция отбрасывает содержимое буфера вывода.

Эта проблема характерна и для ошибок сеанса, когда выходные данные отправляются до заголовков. Проверка правильности ведения журнала ошибок PHP и уровней может иногда помочь обнаружить это.

...