Проблема:
Ошибка TCPDF и mPDF: некоторые данные уже были выведены в браузер, не удается отправить PDF-файл. Я отказался от попыток исправить ошибку с помощью TCPDF и установил mPDF только для того, чтобы получить ту же ошибку при попытке отобразить документ в браузере. Я могу просто сохранить документ и отобразить его в браузере после извлечения.
Кроме того, эта ошибка появилась только после переключения с моего сервера разработки на мой хост-сервер. Отлично работает на сервере DEV (сервер DEV = WAMPSERVER, сервер PROD = Hostgator Linux).
Устранение неполадок:
Я прочитал много томов других дискуссий в Интернете по этой проблеме, и я не могу найти проблему, связанную с пробелами. Я сократил запрос до следующего:
<?php
ob_start();
$html = "Hello World";
include("../mpdf.php");
$mpdf=new mPDF();
$mpdf->WriteHTML($html);
$mpdf->Output();
ob_end_clean();
?>
Пробовал ту же концепцию с TCPDF, используя метод ob_clean() перед writeHtml. Одна и та же ошибка во всех случаях (я могу заверить всех, что это не проблема, связанная с пробелами - я даже просмотрел файл в шестнадцатеричном формате, чтобы убедиться, что редактор не вставляет нечетные символы).
Возможная подсказка:
Наконец-то я смог получить представление о том, что происходит, когда переместил всю библиотеку mPDF, классы и папки в папку public_html, а не из папки моего приложения (проект Symfony). В этом сценарии, когда я указал своему браузеру на примеры страниц, он отобразился просто отлично, без каких-либо ошибок (и, кстати, это было очень быстро). Итак, я знаю, что это работает, и я знаю, что нет проблем, связанных с пробелами, или любых других проблем, связанных с кодом или установкой (со стороны mPDF/TCPDF). Это наводит меня на мысль, что либо symfony вставляет какие-то заголовки (которые я пытался удалить с помощью: clearHttpHeaders() ), либо есть параметр PHP INI или CONFIG, который мне не хватает где-то на сервере PROD.
Кто-нибудь имеет ЛЮБОЕ представление о том, что здесь происходит??
Обновление: дамп потока:
Request URL:http://www.example.com/mpdf
Request Method:GET
Status Code:200 OK
Request Headers
GET /mpdf HTTP/1.1
Host: www.example.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: __utma=44708724.1463191694.1383759419.1383759419.1383765151.2; __utmz=44708724.1383759419.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); PHPSESSID=9c7c802200b9d8eefe718447755add5f; __utma=1.813547483.1383767260.1385127878.1385130071.38; __utmb=1.7.10.1385130071; __utmc=1; __utmz=1.1383767260.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Response Headers
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive
Content-Type:text/html
Date:Fri, 22 Nov 2013 14:59:52 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=75
Pragma:no-cache
Server:Apache
Transfer-Encoding:chunked
У меня ничего не выпрыгивает... есть другие мысли?
\r
- игнорируется Windows, но не Linux - person Eugen Rieck   schedule 22.11.2013