Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]FPDF - problem z polskimi znakami
Wojciechovsky
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.03.2015

Ostrzeżenie: (0%)
-----


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ć?

Ten post edytował Wojciechovsky 21.06.2015, 15:44:07
Go to the top of the page
+Quote Post
com
post
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


no bo w bazie tez masz kodowanie które nie jest zgodne z fpdf?
Go to the top of the page
+Quote Post
Wojciechovsky
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.03.2015

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:42