Сгенерированный TCPDF PDF вызывает ошибку загрузки на Firefox на Android с Adobe Reader - PullRequest
0 голосов
/ 29 апреля 2020

Я создаю PDF с использованием TCPDF и предлагаю пользователю загрузить его после его создания. Я использую этот код для вывода, и он отлично работает на рабочем столе:

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="contract-' . $prename . '-' . $name . '.pdf"');
exit($pdf->Output('contract-' . $prename . '-' . $name . '.pdf"', 'D'));

Теперь пользователь также должен иметь возможность загрузки, находясь на мобильном устройстве. Протестированные устройства iOS работали нормально, но при Android (10) и Firefox (68.7.0) я получаю это сообщение об ошибке:

The file could not be downloaded. Please save the file to your local storage and then try to open it.

После некоторых исследований ( здесь и здесь ) Я обнаружил, что это проблема Adobe Reader, и после изменения Adobe Reader на приложение по умолчанию для обработки загрузок в Firefox он также работал там.

Теперь я также проверил это в Chrome (81.0.4044.117) и неожиданно он просто отлично загрузил , используя Adobe Reader по умолчанию. Это заставляет меня думать, что это больше проблема в том, как Firefox «предоставляет» PDF в Adobe Reader?

Теперь я, очевидно, хочу, чтобы все пользователи могли загружать PDF без проблем и предлагать им использовать другой браузер или изменить какие-либо настройки на самом деле не вариант. Поэтому я хотел бы знать, могу ли я что-то сделать, чтобы загрузка работала в Firefox, если Adobe Reader там используется по умолчанию?

Опять же, с Chrome И Adobe Reader все работало нормально, так что, может быть, есть разница в том, как FF передает PDF-файлы в Adobe Reader? Что-нибудь, что я мог изменить в способе, которым я предоставляю PDF, чтобы сделать эту работу?

...