
fpdf cestina
Zdrawim
řeším výpis dat z mysql do pdf...
nejdrive jsem si vtvoril vlastni font prave kvuli cestine a diakritika mi s pomoci iconv funguje kdyz napisu text manualne ale kdyz ho vypisu z mysql tak mi to nevypise zpravne diakritiku
funkcni:
$this->Cell($w[0],6,iconv('utf-8', 'iso-8859-2', 'sěščřžýáíéůú ĚŠČŘŽÝÁÍÉŮÚ'),'1');
nefunkcni:
$this->Cell($w[0],6,iconv('utf-8', 'iso-8859-2', $row['ulice']),'1');
Poradte prosim nekdo uz nevim co stim..
Budu vděčný za každou radu ;)
zjistil jsem že je to vypisem z mysql jinak vse funguje... resil jste to prosim nekdo??? :)
uz si si vypisal tie bajty toho pola, alebo cakas na spasenie?
nebyl jsem tu .. a koukal jsem primo do databaze a tam to mam v 'utf8_czech_ci'
... a potom budes vediet ze mas googlit slova napr. mysql_fetch_row UNICODE a najdes napr.
http://stackoverflow.com/questions/1198701/storing -and-displaying-unicode-string-using-php-and-mysql
kde je zaujimavy riadok
Neviem ci to je to co potrebujes ptz s mysql nerobim, ale to co ti tu prezentujem je normalny postup vyvojara pri rieseni problemu. Najprv analyza (dat/premennych/apod) -> podla vysledku analyzy najdes riesenie.
toto semsamozdrejme take zkusil a stejne to diakritiku nevypisuje spravne... netusim cim to je ale deje se to jen s textem vypsanym z mysql
a jak si to zkusil? Nechces sem dat trochu viac jak 1 riadok zdrojaku? Ked ti ten zdrojak nejde. Jasnovidci maju volno.
kouknul jsem se do databaze jak je to k tomu radku nastavene...
zde je zdrojek:
<?php
require('fpdf/fpdf.php');
class PDF extends FPDF
{
// Better table
function ImprovedTable($header)
{
// Column widths
$w = array(10, 15, 30, 20, 20, 20, 15, 15, 40, 10);
// Header
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C');
$this->Ln();
// Data
$dbc=mysqli_connect('localhost','xxx','xxx','xxx') ;
//mysql_query("SET character_set_results=CP1250");
$text = iconv('utf-8', 'iso-8859-2','sěščřžýáíéůú ĚŠČŘŽÝÁÍÉŮÚ');
$query_pdf = "SELECT * FROM centr_vchody";
$pdf_result = mysqli_query($dbc,$query_pdf) or die(mysql_error());
while($row = mysqli_fetch_array($pdf_result))
{
$this->Cell($w[0],6,iconv('utf-8', 'iso-8859-2', ''.$row['ulice'].''),'1');
$this->Cell($w[1],6,$text,'1');
$this->Cell($w[2],6,number_format($row[2]),'1',0,' R');
$this->Cell($w[3],6,number_format($row[3]),'1',0,' R');
$this->Cell($w[4],6,number_format($row[3]),'1',0,' R');
$this->Cell($w[5],6,number_format($row[3]),'1',0,' R');
$this->Cell($w[6],6,number_format($row[3]),'1',0,' R');
$this->Cell($w[7],6,number_format($row[3]),'1',0,' R');
$this->Cell($w[8],6,number_format($row[3]),'1',0,' R');
$this->Cell($w[9],6,number_format($row[3]),'1',0,' R');
$this->Ln();
}
// Closing line
$this->Cell(array_sum($w),0,'','T');
}
}
$pdf = new PDF();
// Column headings
$header = array('Byt', 'Patro', iconv('utf-8', 'iso-8859-2','Služba'), 'Telefon', 'Obj. ', 'Konk.', iconv('utf-8', 'iso-8859-2','Služba'), 'Cena', iconv('utf-8', 'iso-8859-2','Poznámky'), 'Kont');
// Data loading
define('FPDF_FONTPATH','../vchody/fpdf/font/');
$pdf->AddFont('muj_font', '', 'arial.php');
$pdf->SetFont('muj_font','',8);
$pdf->AddPage();
$pdf->ImprovedTable($header);
$pdf->AddPage();
$pdf->Output();
?>
A ked ten riadok nechces, tak musis nieco prenastavit/pridat v php.ini co sa tyka SQL, ale netusim co :) Viz napr. http://www.php.de/datenbanken/45586-utf-8-nur-mit- set-names.html
prave ze mysql_query("SET NAMES utf8"); jsem skousel... je to divny a v mysql tam mam utf8...