Содержимое таблицы FPDF перекрывает ячейку

Я хочу создать что-то, что могло бы работать как динамическая таблица. Возможно, потому что я знал, сколько ячеек будет, но отчасти потому, что содержимое, которое я помещал в ячейку, могло быть разной длины. Я использовал код, размещенный на сайте fpdf:

require('fpdf/fpdf.php');
class PDF extends FPDF{
function BasicTable($header, $data)
{
    // Header
    foreach($header as $col)
        $this->Cell(40,7,$col,1);
    $this->Ln();
    // Data
    foreach($data as $row)
    {
        foreach($row as $col)
            $this->Cell(40,6,$col,1);
        $this->Ln();
    }
}
}

и прямо сейчас, если я помещу в таблицу эти значения:

$header = array('Country', 'Capital', 'Area (sq km)', 'Pop. (thousands)');
$data =  array(array('a','a','a','a'), array('a','a','a','a'), array('a','a','a','a'), array('a','a','a','a'));
$pdf->SetY(45);
$pdf->BasicTable($header,$data);

все нормально. Но когда я хочу изменить свой 'a' на что-то более сложное, например, предложение, состоящее из нескольких слов, мой текст «покидает» ячейку и начинает перекрывать следующую ячейку.

Есть ли в fpdf способ автоподбора ячейки?


person Mithrand1r    schedule 25.03.2013    source источник
comment
У меня тоже проблема с этим, Вам удалось решить эту? Как?   -  person PinoyStackOverflower    schedule 03.04.2013
comment
Я предлагаю проверить библиотеку TCPDF. Кажется, он мощнее, чем fpdf, так что, возможно, там эта проблема исправлена.   -  person Andron    schedule 03.04.2013
comment
@ Эрик, я решил свою проблему, но не напрямую › Я использовал MultiCell, чтобы избежать перекрытия, но мне пришлось отказаться от вертикального выравнивания таблицы и вместо этого создать горизонтальное. Если вы хотите, я не могу опубликовать здесь работу, как я это сделал   -  person Mithrand1r    schedule 03.04.2013
comment
@ Mithrand1r Можете ли вы опубликовать это здесь? :)   -  person PinoyStackOverflower    schedule 08.04.2013


Ответы (1)


Вы должны использовать метод FPDF::MultiCell(), который используется для отображения многострочного контента.

В MultiCell текст будет переноситься, и у вас не будет этой проблемы.

Вы также можете просмотреть код абстракции поверх FPDF, например PDML или HTML2FPDF или, возможно, TCPDF, как указано ранее, но я не знаю этого.

Удачи с вашим проектом.

person Thibault    schedule 03.04.2013