Я использую mPDF, чтобы позволить пользователям загружать результаты с веб-сайта в формате PDF. PDF-файлы прекрасно открываются в Adobe Acrobat, но при закрытии Acrobat всегда будет спрашивать: «Вы хотите сохранить изменения в /filename.pdf/ перед закрытием?». Ничего нельзя сделать или изменить в файле PDF, поэтому я предполагаю, что Adobe, должно быть, нашла в файле что-то, что нужно было изменить или исправить.
Код, который я использую для создания PDF:
public function pdf($page_to_export, $filename){
$url = urldecode($page_to_export);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1 );
$formvars = array('val1' => $_SESSION['val1'] ,
'val2' => $_SESSION['val2']);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($formvars));
$html = curl_exec($ch);
curl_close($ch);
ob_clean();
header('Content-type: application/pdf');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
$mpdf = new \Mpdf\Mpdf();
$mpdf->CSSselectMedia='print';
$mpdf->setBasePath($url);
$mpdf->WriteHTML($html);
$mpdf->Output($filename.'.pdf','D');
ob_end_flush();
}
Кажется, проблема не в формах, их удаление не устраняет проблему.
Согласно тому, что я мог найти, это может быть связано с повреждением файла, которое автоматически исправляется программой acrobat. Я понятия не имею, как начать отлаживать это все же. Кто-нибудь может указать мне правильное направление?
Задача ещё не решена.
Других решений пока нет …