Output() в fpdf не работает

Я пытаюсь создать файл PDF, содержащий круговые диаграммы. У меня возникла следующая ошибка:

Ошибка FPDF: некоторые данные уже были выведены, не удается отправить PDF-файл

После примерно часа борьбы я обнаружил, что он работает довольно хорошо с: Output("Report.pdf",'F'); но показывает сообщение об ошибке с: Output();< /эм>.

Итак, я застрял здесь... может ли кто-нибудь помочь мне в этой ситуации?


person Name is Nilay    schedule 22.09.2012    source источник
comment
Вы отправляете некоторые данные в браузер перед вызовом Output() , вот в чем проблема, вы можете вставить свой php-скрипт на pastebin.com и вставить ссылку здесь, чтобы мы могли посмотреть, где вы делаете ошибку.   -  person Nelson    schedule 22.09.2012
comment
речь идет не только об эхо, но и о выходных буферах. Если содержимое буфера содержит символы, отличные от спецификации UTF-8 и / или пробела, будет выдана точная ошибка.   -  person itachi    schedule 22.09.2012
comment
@itachi-На самом деле он содержит круговую диаграмму ... так может быть проблема ... ??   -  person Name is Nilay    schedule 22.09.2012


Ответы (3)


Попробуйте поместить следующее в начало вашего файла php:

error_reporting(E_ERROR | E_PARSE);

это позволит избежать вывода E_WARNING ошибок, не просматривая код для правильного исправления, это может помочь.

person Nelson    schedule 22.09.2012
comment
@itachi-это скрипт, pastie.org/private/cyyml88ju3ewbu12jxumq..Now можно подскажите в чем ошибка... - person Name is Nilay; 22.09.2012
comment
Все переменные, такие как $arraygrabber, $num_users, генерирующие правильные значения, которые являются чисто алфавитами... Я сомневаюсь в функции PieChart. - person Name is Nilay; 22.09.2012
comment
Я не нашел ни одной ошибки в этом коде, поэтому убедитесь, что у вас нет пробелов перед тегом ‹?php, потому что они повлияют на вывод. - person Nelson; 22.09.2012
comment
@ Нельсон, я проверил это первым!! Если вы можете наблюдать, это показывает ошибку в _checkoutput(); функция в fpdf.php, которая, я думаю, содержит больше, чем только спецификацию UTF-8 и/или пробелы. Но каково решение этого?!! - person Name is Nilay; 22.09.2012
comment
О, я вижу, но это не настоящая ошибка, это только то, что FPDF сообщает вам, что он обнаружил уже отправленный вывод ... вы должны проверить, где этот вывод генерируется - person Nelson; 22.09.2012
comment
Чтобы проверить это, когда браузер говорит об ошибке FPDF: некоторые данные уже были выведены, не удается отправить PDF-файл, щелкните правой кнопкой мыши и выберите «Показать исходный код для этой страницы», вставьте этот источник в пасти, в нем вы можете найти ошибку. - person Nelson; 22.09.2012
comment
@ Нельсон, не повезло, чувак ... но я думаю, что получил результат, и он работает довольно хорошо. Так что я должен перейти к лучшему материалу. Большое спасибо чувак за помощь!! - person Name is Nilay; 22.09.2012
comment
@Nelson- Не мог ничего сделать, пока не нашел ошибку!! К моему удивлению, он находится на pastie.org/4780119. - person Name is Nilay; 22.09.2012
comment
Эта строка верна, поэтому, вероятно, это не строка 46 (PHP может считать строки по-разному). Если вы вставите свой файл view.php, я могу попытаться найти виновника. - person Nelson; 22.09.2012
comment
Это мой полный сценарий view.php: - pastie.org/private/6vmvgd0xk5pbxxbjvsmcpa - person Name is Nilay; 24.09.2012
comment
На первый взгляд, это может быть $row111 = $piece[1]; попробуйте заменить его на $row111 = isset($piece[1])? $кусок[1] : ''; и у вас есть еще одна подобная линия. - person Nelson; 24.09.2012

Вывод

Выход принимает второй параметр

I: send the file inline to the browser. The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
D: send to the browser and force a file download with the name given by name.
F: save to a local file with the name given by name (may include a path).
S: return the document as a string. name is ignored.
person Pradeep Sanjaya    schedule 22.09.2012
comment
Да, я знаю это. Я хочу сделать это с помощью «I», что по умолчанию с помощью Output();. Но это показывает ошибку. Но как это возможно с Output (, 'F');. - person Name is Nilay; 22.09.2012

person    schedule
comment
@artragis-В моем сценарии нет ни оператора «эхо», ни оператора «печать»... Я уже понял это.. можете предложить что-нибудь еще..?? Спасибо за ответ - person Name is Nilay; 22.09.2012
comment
так что, если у вас нет эха, вы забыли паразитную новую строку char после ?› в своем скрипте. - person artragis; 22.09.2012