Problem jest pewnie dość banalny, ale niestety męczę się nad nim już od dawna i nie mogę znaleźć rozwiązania...
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) {
die("Connection failed: " . $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)) {
if (!empty($row['paper'])) { $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'];
if (!empty($row['name2'])) { $authors .= ', ' . $row['name2'] . ' ' . $row['surname2'];
$osoba2 = $row['surname2'] . ' ' . $row ['name2'];
$osoba_str[$osoba2][$x] = $pdf->PageNo();
}
if (!empty($row['name3'])) { $authors .= ', ' . $row['name3'] . ' ' . $row['surname3'];
$osoba3 = $row['surname3'] . ' ' . $row ['name3'];
$osoba_str[$osoba3][$x] = $pdf->PageNo();
}
if (!empty($row['name4'])) { $authors .= ', ' . $row['name4'] . ' ' . $row['surname4'];
$osoba4 = $row['surname4'] . ' ' . $row ['name4'];
$osoba_str[$osoba4][$x] = $pdf->PageNo();
}
if (!empty($row['name5'])) { $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->Write(5
,trim(preg_replace('/\s\s+/', ' ', $content['pageno'][$y])) . ' ....... '); $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) {
if (!empty($numery_stron)) { $numery_stron .= ', ';
}
$numery_stron .= $stronka;
}
$pdf->Ln(5);
$y++;
}
echo 'Liczba zgłoszonych prac: ' . $x . '';
$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ć...