[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: TCPDF и ошибка
nugle
Доброго всем времени суток!
Есть проблема и заключается она в этом:
1) Нужно создавать pdf файл для счета, создаю при помощи tcpdf
2) Все нормально работает на пробной странице, но когда подключаю себе на сайт, то мне выдает сообщение
Цитата
TCPDF ERROR: Some data has already been output, can't send PDF file

Подключаю так
if($_POST['face'] == 2 and $_POST['payment'] == 2)
{
$checkout = true;
include SPH_ROOT.'skins/tpl/checkout/pdf.php';

}

файл pdf.php
Свернутый текст
<?php

if(!defined('SPH_KEY'))
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('../../404.html'));
}

require_once 'tcpdf/tcpdf.php'; // Подключаем библиотеку
/* Создаём объект TCPDF.
- Книжная ориентация
- Единица измерения - миллиметры
- Формат А4
- Использование unicode
- Кодировка - UTF-8
*/

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8');
/* Установка отступов
- 20 слева
- 30 справа
- 20 сверху
*/

$pdf->SetFont('dejavusans', '', 10);
$pdf->AddPage(); // Добавляем страницу
$pdf->SetXY(0, 0);
$html = '
<style>
.account_number{text-align:center; font-size:16pt; margin-bottom:2px;}
.table_product tr td{text-align:left; border:1px solid #000; border-collapse:collapse;}
.table_intotal{margin-top:10px;}
.table_intotal tr td{text-align:right;}
.table_intotal tr td p{font-weight:700;}
</style>
<div class="recipient_data">
</div>
<div style=" border-bottom:1px solid #000;">
<span class="account_number">Счет №100500 от 27 марта 2012г.</span>
</div>
<div></div>
<table class="supplier_buyer">
<tr>
<td width="15%">
<span>Поставщик:</span>
</td>
<td width="85%">
<span>ИП Доброхвалов А. А., ИНН 645100518975, 410012, Саратовская обл, Саратов г, Московская ул, дом № 96, кв.6, тел.: ф. 47-96-08</span>
</td>
</tr>
<tr>
<td width="15%">
<span>Покупатель:</span>
</td>
<td width="85%">
<span>'
.$_POST['name_comp'].', ИНН '.$_POST['inn'].', КПП '.$_POST['kpp'].', '.$_POST['address'].', тел.: '.$_POST['tel_number'].'</span>
</td>
</tr>
</table>
<div></div>
<table class="table_product">
<tr>
<td width="55%" align="center">
<span>Товары (работы, услуги)</span>
</td>
<td width="10%" align="center">
<span>Кол-во</span>
</td>
<td width="5%" align="center">
<span>Ед.</span>
</td>
<td width="15%" align="center">
<span>Цена</span>
</td>
<td width="15%" align="center">
<span>Сумма</span>
</td>
</tr>'
;

foreach($_SESSION['product'] as $key=>$val)
{
$query = mysqlQuery('SELECT * FROM '.SPH_DBPREFIX.'product where `article` = "'.$key.'"');
$row = mysql_fetch_assoc($query);
echo'
<tr>
<td>
<span>'
.$row['name'].'</span>
</td>
<td align="right">
<span>'
.$val['size'].'</span>
</td>
<td align="left">
<span>шт</span>
</td>
<td align="right">
<span>'
.$row['price_retail'].'</span>
</td>
<td align="right">
<span>'
.$val['size']*$row['price_retail'].'</span>
</td>
</tr>
'
;
}

echo '</table>
<div><div>
<table class="table_intotal">
<tr>
<td style="width:80%;" align="right">
<span>Итого:'
.product_in_total($_SESSION['product']) - discount_total('').'</span><br />
<span>В том числе НДС:</span><br />
<span>Всего к оплате:</span><br />
</td>
<td style="width:20%;" align="right">
<span>2155.5022222222</span><br />
<span>328.80</span><br />
<span>2155.50</span><br />
</td>
</tr>
</table>
<span>Всего наименований 4, на сумму 2 155,50 руб</span><br />
<span>Две тысячи сто пявпы</span>
<hr />

'
;

$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output('test.pdf', 'D');


В самой библиотеки куча header, подумал, что из-за этого и поместил библиотеку в индексный файл и создание объекта туда же, но ошибка остается такой же. хелп ми плиз!



Спустя 7 минут, 34 секунды (3.04.2012 - 13:36) Игорь_Vasinsky написал(а):
попробуй после создания экземпляра

$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);


вот тут рассматривали, но вопрос открыт

http://forum.searchengines.ru/archive/inde...p/t-460139.html

Спустя 50 минут, 40 секунд (3.04.2012 - 14:27) nugle написал(а):
Поставил, тоже самое. Тему я эту уже читал, ничего не помогло

Спустя 1 минута, 44 секунды (3.04.2012 - 14:29) Игорь_Vasinsky написал(а):
Цитата
$pdf->Output('test.pdf', 'D');

попробуй

$pdf->Output($_SERVER['DOCUMENT_ROOT'].'test.pdf', 'D'); 

Спустя 4 минуты, 33 секунды (3.04.2012 - 14:33) Игорь_Vasinsky написал(а):
не...

вот нашёл коммент на эту ошибку

Цитата
Fros, возможно где-то допустили пробел в коде страницы (или перенос строк).
Возможно до тега . Скорее всего после.
Посмотрите исходный код сгенерированной страницы.

Спустя 1 минута, 28 секунд (3.04.2012 - 14:35) nugle написал(а):
аналогично, ничего нового, все та же ошибка. Файл должен сам создаваться. Но если его создать, то ошибка та же все равно

Цитата
вот нашёл коммент на эту ошибку

я создаю объект сразу после хедеров на сайте, остальные хедоры прекрасно работают(хедеры самого сайта)

Спустя 3 минуты, 17 секунд (3.04.2012 - 14:38) Игорь_Vasinsky написал(а):
Дело не в заголовках.

попробуй этот

Свернутый текст
<?php

if(!defined('SPH_KEY'))
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('../../404.html'));
}

require_once 'tcpdf/tcpdf.php'; // Подключаем библиотеку
/* Создаём объект TCPDF.
- Книжная ориентация
- Единица измерения - миллиметры
- Формат А4
- Использование unicode
- Кодировка - UTF-8
*/

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8');
/* Установка отступов
- 20 слева
- 30 справа
- 20 сверху
*/

$pdf->SetFont('dejavusans', '', 10);
$pdf->AddPage(); // Добавляем страницу
$pdf->SetXY(0, 0);
$html = '<style>
.account_number{text-align:center; font-size:16pt; margin-bottom:2px;}
.table_product tr td{text-align:left; border:1px solid #000; border-collapse:collapse;}
.table_intotal{margin-top:10px;}
.table_intotal tr td{text-align:right;}
.table_intotal tr td p{font-weight:700;}
</style>
<div class="recipient_data">
</div>
<div style=" border-bottom:1px solid #000;">
<span class="account_number">Счет №100500 от 27 марта 2012г.</span>
</div>
<div></div>
<table class="supplier_buyer">
<tr>
<td width="15%">
<span>Поставщик:</span>
</td>
<td width="85%">
<span>ИП Доброхвалов А. А., ИНН 645100518975, 410012, Саратовская обл, Саратов г, Московская ул, дом № 96, кв.6, тел.: ф. 47-96-08</span>
</td>
</tr>
<tr>
<td width="15%">
<span>Покупатель:</span>
</td>
<td width="85%">
<span>'
.$_POST['name_comp'].', ИНН '.$_POST['inn'].', КПП '.$_POST['kpp'].', '.$_POST['address'].', тел.: '.$_POST['tel_number'].'</span>
</td>
</tr>
</table>
<div></div>
<table class="table_product">
<tr>
<td width="55%" align="center">
<span>Товары (работы, услуги)</span>
</td>
<td width="10%" align="center">
<span>Кол-во</span>
</td>
<td width="5%" align="center">
<span>Ед.</span>
</td>
<td width="15%" align="center">
<span>Цена</span>
</td>
<td width="15%" align="center">
<span>Сумма</span>
</td>
</tr>'
;
foreach($_SESSION['product'] as $key=>$val)
{
$query = mysqlQuery('SELECT * FROM '.SPH_DBPREFIX.'product where `article` = "'.$key.'"');
$row = mysql_fetch_assoc($query);
echo'<tr>
<td>
<span>'
.$row['name'].'</span>
</td>
<td align="right">
<span>'
.$val['size'].'</span>
</td>
<td align="left">
<span>шт</span>
</td>
<td align="right">
<span>'
.$row['price_retail'].'</span>
</td>
<td align="right">
<span>'
.$val['size']*$row['price_retail'].'</span>
</td>
</tr>'
;
}
echo '</table>
<div><div>
<table class="table_intotal">
<tr>
<td style="width:80%;" align="right">
<span>Итого:'
.product_in_total($_SESSION['product']) - discount_total('').'</span><br />
<span>В том числе НДС:</span><br />
<span>Всего к оплате:</span><br />
</td>
<td style="width:20%;" align="right">
<span>2155.5022222222</span><br />
<span>328.80</span><br />
<span>2155.50</span><br />
</td>
</tr>
</table>
<span>Всего наименований 4, на сумму 2 155,50 руб</span><br />
<span>Две тысячи сто пявпы</span>
<hr />'
;

$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output('test.pdf', 'D');

Спустя 9 минут, 12 секунд (3.04.2012 - 14:47) nugle написал(а):
тоже самое

если даже просто одну букву вставлю, все равно та же ошибка

Спустя 1 день, 4 часа, 6 минут, 33 секунды (4.04.2012 - 18:54) nugle написал(а):
ап ребят, хелп ми

Спустя 9 минут, 16 секунд (4.04.2012 - 19:03) Игорь_Vasinsky написал(а):
у тя точно библия рабочая подвешана?

побробуй на других её моментах получить хоть какой нить положительный результат.

Спустя 2 минуты, 54 секунды (4.04.2012 - 19:06) nugle написал(а):
Игорь_Vasinsky
и на других подключал тоже самое. Ставил на другой сайт(test.ru) в пустой индекс и все работает

Спустя 6 минут, 46 секунд (4.04.2012 - 19:13) Игорь_Vasinsky написал(а):
Цитата
в пустой индекс и все работает

вот. уже что то.

у тя в твём варианте чё нить инклудится выше?

Спустя 5 минут, 4 секунды (4.04.2012 - 19:18) nugle написал(а):
Игорь_Vasinsky
да, полно всего конфиги всякие, ф-ии и т.п.
Вот еще что, беру все эту страницу и ставлю на индекс моего сайта(непробного) и все успешно сохраняет

Спустя 5 минут, 54 секунды (4.04.2012 - 19:24) Игорь_Vasinsky написал(а):
выводы в этих подключаемых файлах есть? echo? print? пустые строки?

Спустя 2 минуты, 41 секунда (4.04.2012 - 19:26) nugle написал(а):
у меня подключается как страница, т.е. до этого вывод основного шаблона идет

Спустя 3 минуты, 37 секунд (4.04.2012 - 19:30) Игорь_Vasinsky написал(а):
у тя заголовки не проходят, генерируемые классом.

инициалицируй и делай импорт до всякого вывода.

Спустя 4 минуты, 15 секунд (4.04.2012 - 19:34) nugle написал(а):
Смотри, я помещаю создание объекта в самое начало индексного файла, ошибка таже вылазиет

Спустя 49 секунд (4.04.2012 - 19:35) Игорь_Vasinsky написал(а):
до любого инклуда?

Спустя 2 минуты, 29 секунд (4.04.2012 - 19:37) nugle написал(а):
агась, инклужу только саму библию

Спустя 5 минут, 48 секунд (4.04.2012 - 19:43) Игорь_Vasinsky написал(а):
... может в файле библии косяки? через __autoload() не пробывал?

Спустя 4 минуты, 25 секунд (4.04.2012 - 19:48) nugle написал(а):
делаю, не помогает

Спустя 13 минут, 41 секунда (4.04.2012 - 20:01) Игорь_Vasinsky написал(а):
ну что в доках нет ничего как ошибку смониторить?

Спустя 14 минут, 20 секунд (4.04.2012 - 20:16) nugle написал(а):
Игорь_Vasinsky
пока ничего полезного не нашел
а ты каким образом генерируешь pdf файл(если генерируешь либо касался данного вопроса)?

Спустя 14 минут, 55 секунд (4.04.2012 - 20:31) Игорь_Vasinsky написал(а):
ещё не заставляли biggrin.gif

Спустя 1 день, 22 часа, 42 минуты, 24 секунды (6.04.2012 - 19:13) nugle написал(а):
Вопрос решен, убрал вывод всех шаблонов на вывод pdf

Спустя 8 минут, 12 секунд (6.04.2012 - 19:21) Игорь_Vasinsky написал(а):
значит вот в чём дело было...

Спустя 23 минуты, 39 секунд (6.04.2012 - 19:45) nugle написал(а):
либо в этом, либо в том, что я выводил посередине через echo
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.