[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: TCPDF
paul85
Приветствую вас, дорогие гуру!

Недавно столкнулся с проблемой печати PDF документов, созданных с помощью класса tcpdf. Ситуация довольно занятная: некоторые документы печатаются без проблем, а некоторые приводят к зависанию и даже перезагрузке принтера. HP M175a после отправки документа пишет "Error 79" и уходит в ребут. Возможно существует корреляция от количества страниц в документе. Одностраничные вроде как всегда печатаются успешно.

Причем пробовал печатать из различных "смотрелок" с одинаковым результатом.

На сайте HP пишут, что если их тестовый PDF печатается нормально, то им на все остальное просто плевать. Обращаться в Adobe - глупо. Разработчики библиотеки tcpdf не ответят пару месяцев уж точно.

Может кто сталкивался или есть какие-нибудь догадки почему так происходит?

Тех. данные такие:
ОС с принтером Ubuntu 12.04.1 TLS
Драйвер из пакета HPLIP 3.12.2
Принтер (МФУ) HP M175a
Версия tcpdf 5.9.179

Кусок моего кода, где генерится PDF:


$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->setPageOrientation('p');
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->setJPEGQuality(100);
$pdf->setImageScale(1);
$pdf->AddPage();
$pdf->SetFont('dejavusans', '', 16);
$pdf->SetXY(10, 15);
$pdf->MultiCell(190, 20, $_POST['notes'], 0, 'C', 0, 0, '', '', true);
$pdf->Line(10, 30, 200, 30, array());
$pdf->SetFont('dejavusans', '', 10);
$x=40;
$y=40;
$h=40;
$w=40;

foreach($result AS $row)
{
if($x>130)
{
$y+=75;
if($y>250)
{
$pdf->AddPage();
$y=30;
}
$x=40;
}

$phones=$this->db->query('SELECT PHONES_PHONE FROM PHONES WHERE PHONES_ANK_ID=?i LIMIT 2', array($row['ANK_ID']), 'assoc');

$age_word=$this->_age_word($row['ANK_AGE']);

$text = "{$row['ANK_LASTNAME']} {$row['ANK_NAME']}\n";

if($row['REG_NAME'] && $row['MET_NAME'])
$text .= "{$row['REG_NAME']}, м. {$row['MET_NAME']}\n";
else
{
if($row['REG_NAME'])
$text .= "{$row['REG_NAME']}\n";
if($row['MET_NAME'])
$text .= "м. {$row['MET_NAME']}\n";
}
if($row['POS_NAME'])
$text .= "{$row['POS_NAME']}\n";
if($phones)
{
foreach($phones as $phone)
{
$pretty_phone = preg_replace("/^(\d)(\d{3})(\d{3})(\d{2})(\d{2})/", "+$1 ($2) $3-$4$5", $phone['PHONES_PHONE']);
$text .= "$pretty_phone, ";
}
$text .= "\n";
}
if($row['ANK_EMAIL'])
$text .= "{$row['ANK_EMAIL']}";

$texty = "ID: {$row['ANK_ID']}\n{$row['ANK_AGE']} $age_word";

if($row['ANK_ISPHOTO']==0)
$pdf->Image("images/hart2.gif", $x, $y, $w, $h, 'GIF', '', '', false, 300, '', false, false, 0, 'CM', false, false);
else
$pdf->Image("images/photo/small/{$row['ANK_ID']}/{$row['ANK_ISPHOTO']}.jpg", $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, 'CM', false, false);

$pdf->SetXY($x-25, $y+41);
$pdf->MultiCell(90, 27, $text, 0, 'C', 0, 0, '', '', true);
$pdf->SetXY($x+40, $y+15);
$pdf->MultiCell(30, 10, $texty, 0, 'L', 0, 0, '', '', true);
$x += 90;
}


$pdf->Output('example_009.pdf', 'I');
Быстрый ответ:

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