Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]FPDF - problem z polskimi znakami
Forum PHP.pl > Forum > Przedszkole
Wojciechovsky
Cześc, wiem, że były już podobne tematy, jednak w moim przypadku wskazówki tam zawarte nie dają rezultatu.

Chcę stworzyć na swojej stronie generowanie danych z bazy danych do tabeli w pdfie za pomocą narzędzia fpdf.
W tym celu zastosowałem mysql_table i fpdf.
Każda strona jest kodowana za pomocą UTF-8.
Fpdf z tego co się zorientowałem korzysta z innego kodowania, przez co musiałem zastosować funkcję iconv, która raz działa, a raz nie:

  1. class PDF extends PDF_MySQL_Table
  2. {
  3. function Header()
  4. {
  5. /*fonty z polskimi znakami*/
  6. $this->AddFont('arial_ce','','arial_ce.php');
  7. $this->AddFont('arial_ce','I','arial_ce_i.php');
  8. $this->AddFont('arial_ce','B','arial_ce_b.php');
  9. $this->AddFont('arial_ce','BI','arial_ce_bi.php');
  10.  
  11. $this->SetFont('arial_ce','',18);
  12. $this->Cell(0,6,iconv("utf-8", "windows-1250//TRANSLIT","Łódź"),0,1,'C');
  13. $this->Ln(10);
  14. parent::Header();
  15. }
  16. }


Poprawnie wyświetla napis z polskimi znakami.

Natomiast dalsza część (pobieranie danych z bazy) już nie wyświetla poprawnych znaków:

  1. $pdf=new PDF();
  2. $pdf->AddFont('arial_ce','','arial_ce.php');
  3. $pdf->AddFont('arial_ce','I','arial_ce_i.php');
  4. $pdf->AddFont('arial_ce','B','arial_ce_b.php');
  5. $pdf->AddFont('arial_ce','BI','arial_ce_bi.php');
  6.  
  7. $pdf->SetFont('arial_ce','b',18);
  8. $pdf->AddPage();
  9.  
  10. $pdf->AddCol('id',20,'','C');
  11. $pdf->AddCol(iconv("utf-8", "windows-1250//TRANSLIT", 'nazwisko'),40,'Nazwisko');
  12. $pdf->AddCol('imie',40,iconv("utf-8", "windows-1250//TRANSLIT", 'Imię'),'L');
  13. $prop=array('HeaderColor'=>array(255,150,100),
  14. 'color1'=>array(210,245,255),
  15. 'color2'=>array(255,255,210),
  16. 'padding'=>2);
  17. $pdf->Table('select id, nazwisko,imie from pracownicy order by id',$prop);
  18. $pdf->Output();


Czy ktoś mi może powiedzieć dlaczego i jak to ewentualnie naprawić?
com
no bo w bazie tez masz kodowanie które nie jest zgodne z fpdf?
Wojciechovsky
  1. SHOW CREATE DATABASE test
pokazuje: CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET cp1250 COLLATE cp1250_polish_ci */
  1. SHOW CREATE TABLE `tabela`
pokazuje: ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8

W sekcji head dokumentu mam:
  1. <meta charset="utf-8"/>


Zatem:
  1. $pdf->AddCol(iconv("utf-8", "windows-1250//TRANSLIT","nazwisko"),40,'Nazwisko');


powinno działać, a nie działa facepalmxd.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.