Witam.
Mam dziwny problem:
eksportuję dane z tabeli do PDFa. Wszystko działa prawie dobrze, ale jak ustawię rozmiar strony A4 pionowo, to wszystko jest ok, natomiast jak ustawię A4 poziomo, to występuje problem:
Wyświetlane są wszystkie wiersze, ale wygląda na to, że kilka z nich ma nieprawidłowo obliczoną odległość od góry strony i są przykrywane następnymi.
Niezależnie od ilości danych (stron) zawsze dzieje się to w tym samym miejscu strony (w tej samej odległości od góry).

Poniżej kod nieco okrojony, żeby nie zaśmiecać grupy. Usunięty jest podział na strony i rysowanie ramek, ale idea działania pozostała.

CODE
function makePdf($columns = array(), $values = array(), $reportname = 'raport', $landscape = 0)

function mm2pt($val)
{
return floatval($val * 2.835016835017);
}

function printtext($pdfdoc, $text, $x, $y, $w, $align)
{
$f = PDF_get_value($pdfdoc, 'font', 0);
$fs = PDF_get_value($pdfdoc, 'fontsize', 0);
$textLength = PDF_stringwidth($pdfdoc, $text, $f, $fs);
$textHeight = ceil($textLength / $w) * $fs;
if ($textLength > $w)
while(PDF_show_boxed($pdfdoc, $text, $x, $y, $w, $textHeight, $align, 'blind') > 1)
$textHeight += $fs;
PDF_show_boxed($pdfdoc, $text, $x, $y - $textHeight, $w, $textHeight, $align, '');
return $textHeight + 4;
}

if ($landscape)
{
$pageWidth = mm2pt(297);
$pageHeight = mm2pt(210);
}
else
{
$pageWidth = mm2pt(210);
$pageHeight = mm2pt(297);
};

$pdf = PDF_new();
PDF_open_file($pdf, '');
PDF_set_info($pdf, 'Author', 'autor');
PDF_set_info($pdf, 'Title', 'tytul');
PDF_set_info($pdf, 'Subject', 'report');
PDF_set_parameter($pdf, 'FontOutline', "Courier=cour.ttf");
$font = PDF_load_font($pdf, 'Courier', 'iso8859-2', '');
PDF_setfont($pdf, $font, 14);

$colWidth = ($pageWidth - 20) / count($columns);
$top = $pageHeight - 10;

foreach($values as $array)
{
$boxH = 0;
foreach ($array as $name)
{
$boxH = max($boxH, printtext($pdf, $name, 12 + ($colWidth * $x), $top, $colWidth, $colAligns[$x]));
$x++;
}
$top -= $boxH;
}

}

// Wywołanie funkcji:
$columns = array('opis' => 'left',
'data ostatniego nadania' => 'center',
'minęło' => 'center',
'klient' => 'left');
$values = array();
foreach($devices as $key => $array)
{
$val = array();
$val[] = $array[description];
$val[] = date('H:i Y-m-d', $array[lasttimeutc]);
$val[] = $array[age];
$val[] = $array[client];
$values[] = $val;
}
makePdf($columns, $values, $raportTitle, 1);

Co jest nie tak z tym kodem?
Dlaczego błąd występuje tylko przy poziomej orientracji strony?

Dziękuję za odpowiedzi i pozdrawiam
Suazael