Mam skrypt rejestracyjny, który wrzuca wprowadzone dane do bazy danych (kodowanie UTF-8). Przy pomocy biblioteki FPDF chcę generować plik PDF z wprowadzonymi danymi i niestety ciągle mam krzaczki zamiast polskich znaków. Poniżej mój plik generujący:
<?php if (include $_SERVER['DOCUMENT_ROOT'].'/fpdf181/fpdf.php') { class PDF extends FPDF { // Page header { if ($this->PageNo() > 3) { // Arial bold 15 $this->Image('http://www.strona.pl/naglowek.jpg',0,0,-300); $this->SetFont('Arial','',10); $this->Cell(80); // Move to the right // $this->Cell(0,5,'', 1, 0, 'c', true); // Line break $this->Ln(60); } } // Page footer function Footer() { if ($this->PageNo() > 2) { // Position at 1.5 cm from bottom $this->SetY(-15); // Arial italic 8 $this->SetFont('Arial','b',10); // Page number $this->Cell(0,5,''.$this->PageNo().'', 0, 1, 'C'); } } } //DB connection $dbtype = 'baza'; $host = 'localhost'; $user = 'baza'; $password = 'baza'; $db = 'baza'; // Create connection $conn = new mysqli($host, $user, $password, $db); // Check connection if ($conn->connect_error) { } $sql = "SELECT * FROM abstract ORDER BY ses"; $result = $conn->query($sql); // Instanciation of inherited class $pdf = new PDF(); $pdf->AliasNbPages(); $pdf->AddFont('arial_ce','','arial_ce.php'); $pdf->AddFont('arial_ce','I','arial_ce_i.php'); $pdf->AddFont('arial_ce','B','arial_ce_b.php'); $pdf->AddFont('arial_ce','BI','arial_ce_bi.php'); $x = 1; $pdf->AddPage(); $pdf->Image('http://www.strona.pl/front.jpg', 0, 0, 210, 297); $organiser[] = 'imie naziwsko'; $pdf->AddPage(); $pdf->SetY(-60); $pdf->SetFont('arial_ce','B',15); $pdf->Cell(0,5, iconv('UTF-8', 'windows-1250//TRANSLIT', 'Organizacja'), 0, 1, 'C'); $pdf->Ln(1); $pdf->SetFont('arial_ce','B',15); $pdf->Cell(0,5,'www.strona.pl', 0, 1, 'C'); $pdf->Ln(1); $pdf->SetFont('arial_ce','B',15); $pdf->Cell(0,5,'Organizacja', 0, 1, 'C'); $pdf->Ln(5); $pdf->SetFont('arial_ce','B',15); $pdf->Cell(0,5,'Miejsce data', 0, 1, 'C'); $pdf->Ln(5); $pdf->AddPage(); $pdf->SetFont('arial_ce','B',15); $pdf->Cell(0,5,'ORGANISING COMMITTEE', 0, 1, 'C'); $pdf->Ln(5); foreach ($organiser as $organ) { $org=iconv('UTF-8', 'windows-1250//TRANSLIT//IGNORE', $organ); $pdf->SetFont('arial_ce','',12); $pdf->Cell(0,5,$org, 0, 1, 'C'); $pdf->Ln(5); } $n = $result->num_rows; if ($result->num_rows > 0) { // output data of each row while($row = mysqli_fetch_array($result)) { $sesja = $row['ses']; $pdf->header = 0; $pdf->footer = 0; $pdf->AddPage(); $pdf->SetFont('arial_ce','B',15); $pdf->Write(50,$sesja); } elseif ($sesja != $row['ses']) { $sesja = $row['ses']; $pdf->header = 0; $pdf->footer = 0; $pdf->AddPage(); $pdf->SetFont('arial_ce','B',15); $pdf->Write(50,$sesja); } $pdf->header = 0; $pdf->footer = 0; $pdf->AddPage(); $authors = $row['name1'] . ' ' . $row['surname1']; $authors .= ', ' . $row['name2'] . ' ' . $row['surname2']; $osoba2 = $row['surname2'] . ' ' . $row ['name2']; $osoba_str[$osoba2][$x] = $pdf->PageNo(); } $authors .= ', ' . $row['name3'] . ' ' . $row['surname3']; $osoba3 = $row['surname3'] . ' ' . $row ['name3']; $osoba_str[$osoba3][$x] = $pdf->PageNo(); } $authors .= ', ' . $row['name4'] . ' ' . $row['surname4']; $osoba4 = $row['surname4'] . ' ' . $row ['name4']; $osoba_str[$osoba4][$x] = $pdf->PageNo(); } $authors .= ', ' . $row['name5'] . ' ' . $row['surname5']; $osoba5 = $row['surname5'] . ' ' . $row ['name5']; $osoba_str[$osoba5][$x] = $pdf->PageNo(); } $title=$row['title']; $pdf->SetFont('arial_ce','B',15); $pdf->Write(5,$title); $pdf->Ln(5); $pdf->SetFont('arial_ce','',12); $pdf->Write(5, $authors); $pdf->Ln(5); $pdf->SetFont('arial_ce','b',12); $pdf->Write(5,'Scientific supervisor: '); $pdf->SetFont('arial_ce','',12); $pdf->Write(5,$row['supervisor']); $pdf->Ln(5); $pdf->SetFont('arial_ce','',12); $pdf->Write(5, $row['affiliation']); $pdf->Ln(10); $paper=$row['paper']; if ($paper=='experimental') { $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'Introduction: '); $pdf->SetFont('arial_ce','',14); $pdf->Ln(5); $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'Methods: '); $pdf->SetFont('arial_ce','',14); $pdf->Write(5,$methods); $pdf->Ln(5); $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'Results: '); $pdf->SetFont('arial_ce','',14); $pdf->Write(5,$results); $pdf->Ln(5); $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'Conclusions: '); $pdf->SetFont('arial_ce','',14); $pdf->Ln(10); } elseif($paper=='case-report') { $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'Background: '); $pdf->SetFont('arial_ce','',14); $pdf->Ln(5); $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'Case report: '); $pdf->SetFont('arial_ce','',14); $pdf->Write(5,$methods); $pdf->Ln(5); $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'Conclusions: '); $pdf->SetFont('arial_ce','',14); $pdf->Ln(10); } $pdf->SetFont('arial_ce','b',12); $pdf->Write(5,'Keywords: '); $pdf->SetFont('arial_ce','',12); $keywords=$row['keywords']; $pdf->Write(5,$keywords); $x++; // Dodanie do spisu tresci $content['title'][$x] = $title; $content['pageno'][$x] = $pdf->PageNo(); // Dodanie do indeksu osób $osoba1 = $row['surname1'] . ' ' . $row ['name1']; $osoba_str[$osoba1][$x] = $pdf->PageNo(); $osoby[] = $osoba1; } $osoby[] = $osoba2; } $osoby[] = $osoba3; } $osoby[] = $osoba4; } $osoby[] = $osoba5; } }} } else { } $y = 2; $pdf->AddPage(); $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'TABLE OF CONTENTS'); $pdf->Ln(20); while ($y <= $x) { $pdf->SetFont('arial_ce','b',10); $pdf->SetFont('arial_ce','',10); $pdf->Ln(5); $y++; } $y = 2; $pdf->AddPage(); $pdf->SetFont('arial_ce','b',14); $pdf->Write(5,'INDEX OF AUTHORS'); $pdf->Ln(20); foreach($osoby as $key=>$val) { $oss[$val] = true; } foreach ($oss as $os) { $pdf->SetFont('arial_ce','b',10); $pdf->SetFont('arial_ce','',10); $numery_stron = ''; foreach ($osoba_str[$os] as $stronka) { $numery_stron .= ', '; } $numery_stron .= $stronka; } $pdf->Ln(5); $y++; } $pdf->Output('abstrakty.pdf', F); $conn->close(); } else { } ?>
Będę wdzięczny za każdą pomoc, bo ja już nie mam chyba więcej pomysłów - próbowałem różne metody z Gugla, żadna nie pomogła. Próbowałem przestawić się na biblioteki pochodne - tfpdf i ufpdf i niestety nie mogę się z nimi w ogóle dogadać...