Korzystam z fpdf do wygenerowania pliku pdf z określonymi danymi.
Ma to być tabelka, jednak ponieważ w wierszu jest kilkadziesiąt pól, nie wchodzi w grę, aby przedstawić to w postaci zwykłej tabeli:

// nagłówek/ id / typ1 / typ2 / typ 3/
// dane / 1 / 2 / 3 / 4 /

Dlatego też chcę ją zapisać ją inaczej, to jest:

//nagłówek / dane
/ id / 1
/ typ1 / 2
/ typ2 / 3
/ typ3 / 4

Ponieważ jeszcze dobrze nie znam fpdf, przerobiłem po prostu przykład.
Funkcja odpowiadająca za tworzenie tabeli wygląda tak:

  1. function Table($header,$data)
  2. {
  3. //Column widths
  4. $w=array(40,35,40,45);
  5. //Header
  6. for($i=0;$i<count($header);$i++)
  7. $this->Cell($w[$i],7,$header[$i],1,0,'C');
  8. $this->Ln();
  9. //Data
  10. foreach($data as $row)
  11. {
  12. $this->Cell($w[0],6,$row[0],'LR');
  13. $this->Cell($w[1],6,$row[1],'LR');
  14. $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R');
  15. $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R');
  16. $this->Ln();
  17. }
  18. //Closure line
  19. $this->Cell(array_sum($w),0,'','T');
  20. }


Natomiast samo tworzenie pdf wygląda tak:

  1. $pdf=new PDF();
  2. $pdf->Open();
  3. //Column titles
  4. $header=array( nagłówki ); // tu jest oczywiście inna treść, dla czytelności ją usunąłem
  5. //Data loading
  6. $iaa = 'Austria;Vienna;83859;8075';
  7. $data=$pdf->LoadData('pdf.txt');
  8. $pdf->SetFont('Arial','',12);
  9. $pdf->AddPage();
  10. $pdf->Table($header,$data);
  11. $pdf->Output();


Czy ktoś mógłby podpowiedzieć, co zrobić, aby wyniki wyświetlały się pionowo, zamiast poziomo?

Ok, poradziłem sobie smile.gif
Nie spodziewałem się, że to będzie tak łatwe. Całość przerobiłem w sumie do jednej prostej funkcji:
  1. function Table($header,$pola)
  2. {
  3.  
  4. for($i=0;$i<count($header);$i++)
  5. {
  6. $this->Cell(30,6,$header[$i],1,0,'C');
  7. $this->Cell(50,6,$pola[$i],1,0,'C');
  8. $this->Ln();
  9. }
  10.  
  11. }


Reszta to tylko tworzenie zmiennych i proste generowanie pdf.