2017-12-08 6 views
0

I FPDF로 표를 작성 했으므로 단어를 셀 (표)에 넣으 려합니다. 이것은 내 코드입니다.FPDF 표 셀 랩

$w = array(7, 150, 40); 
$pdf->Cell($w[0], 6, $count, 'LR'); 
$pdf->Cell($w[1], 6, $column_heading, 'LR'); 
$pdf->Cell($w[2], 6, $rekey, 'LR', 0, 'R'); 

$pdf->Ln(); 
$pdf->Cell(array_sum($w), 0, '', 'T'); 
$count++; 

이것은 셀의 텍스트를 어떻게 분해 할 수 있는지 나와 있습니다.

enter image description here

+0

FPDF가 최대한 멀리 기억하는 셀의 위치를 ​​수동 계산을 필요로 (또는 그 안에있는 문자의 수에 기초하여 상기 셀의 높이를 조정 .. XD) – catzilla

+0

그 뜻은 @ catzilla ?? – sam

+0

개별 셀을 만들 때 셀의 높이도 조정해야 함을 의미합니다. (h가 4 인 경우 한 줄에 8 줄로 변경) – catzilla

답변

0

FPDF는 세포를 출력 텍스트 별도로 교재

(그 2 층과 같은 것을 의미) http://www.fpdf.org/

Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]]) 

추천 접근법 :

문맥 길이해야 코드에 따라 계산됩니다. 콘텐츠가 할당 된 셀 너비보다 큰 경우 나누어서 transf 새 줄을 잘못 들었다.

동시에 세포 높이 h을 조정해야합니다 (높이 증가).

콘텐츠를 기반으로 셀을 자동으로 조정할 수있는 기능이 라이브러리의 기능으로 아직 구현되지 않았습니다.

수정 : 당신은 멀티 셀을 사용할 수없는 경우, 당신은 문자열 폭을 얻어서 셀에 맞을 때까지 텍스트를 축소 시도 할 수 http://www.fpdf.org/en/doc/multicell.htm

+0

다세대로 테이블을 만들 수 없다 – sam

+0

그럼 내 제안 된 접근 방식을 시도해 볼 수있을 것 같아. :) 나는 또한 당신과 비슷한 문제를 겪었습니다. – catzilla

0

있다.

예 :

//loop the data 
foreach($data as $item){ 
    $pdf->Cell(10, 5,$item[0],1,0); 
    $pdf->Cell(60, 5,$item[1],1,0); 

    //shrink font size until it fits the cell width 
    while($pdf->getStringWidth($item[2]) > $cellWidth){// loop until the string width is smaller than cell width 
     $pdf->SetFontSize($tempFontSize -= 0.1); 
    } 
    $pdf->Cell($cellWidth,5,$item[2],1,0); 
    //reset font size to standard 
    $tempFontSize = $fontSize; 
    $pdf->SetFontSize($fontSize); 

    $pdf->Cell(40,5,$item[3],1,1); 
}