[ Loleeca @ 18.08.2012. 15:48 ] @
Pozdrav svima,

Ovo mi je prva tema, a nadam se ne i poslednja. Svaka pomoc je dobrodosla-spremna sam sve da probam :)
Najpre, zelim da kazem da sam videla da slicna tema vec postoji, ali da ona ne resava moj problem. Pa da pocnemo.

Ono sto zelim da uradim jeste da se u HTML formi unese odredjeni parametar. Klikom na dugme "Submit" poziva se PHP skripta, koja taj parametar smesta na odredjene koordinate u .pdf fajl.

Kod HTML-a:
Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<form method="post" action="skripta.php">
First Name:<input type="text" size="12" maxlength="12" name="Fname">:<br />
<input type="submit" value="submit" name="submit"><br />
</form><br />

</body>
</html>


Kod PHP-a:
Code:

<?php 
    require_once('libs/fpdf.php');
    require_once('libs/fpdi.php');
    require_once('libs/makefont/makefont.php');
 
    $pdf = new FPDI();
    $pdf->AddPage();
    $pdf->setSourceFile('pdf_dokument.pdf');
    $tplidx = $pdf->importPage(1);
    $pdf->useTemplate($tplidx);
    $page_dimensions = $pdf->getTemplateSize($tplidx); 

    
    $pdf->AddFont('font','','times.php');
    $pdf->SetTextColor(0,123,240);
    
    $array=array("name"=>$_POST['Fname'],
                           //.......ostale varijable koje uzimam iz html-a
                         );

        $pdf->SetFont('font','', 9);
    $pdf->SetXY(100, 100); $pdf->Write(0, $array["name"]);

        $pdf->Output();

?>


Problem nastaje kada korisnik na html strani unese svoje ime na cirilici ili kada unese latinicna slova š, č, ć...Trenutni font koji koristim je Times New Roman. Cirilicu prikazuje kao "ñàäàœ", a nasa latinicna slova prikazuje HTML kodom (š prikaze kao &#353;). U slucaju da font prebacim na cirilicni (koristila sam neki mcswis.ttf), ako korisnik unese latinicu na html strani takodje prikazuje kako valja, a nepoznata slova prikazuje kao kvacice i slicno, a cirilicu prikazuje kao kvadratice.

Ono sto sam pokusala do sad jeste da u PHP ubacim header, koji koristi isti charset kao i html, ali nema apsolutno nikakve promene.

Code:

<?php header("Content-Type: text/html; charset=utf-8", true);
?>


Ono sto ja mislim da moze biti problem, jeste samo dodavanje fontova. Za to sam koristila tutorial na ovoj adresi. Ukratko .ttf se prebaci u .afm, a onda se taj .afm uz odgovarajuci enkoding pretvori u font.php uz pomoc jedne linije koda:

Code:

MakeFont('c:\\windows\\fonts\\font.ttf','font.afm','cp1252');


Ovo navodim samo iz razloga sto smatram da je mozda tu greska, iako nisam sigurna.

Eto, to je citav problem.
Ima li ideja?
[ pajaja @ 18.08.2012. 16:18 ] @
Najverovatnije jeste problem u dodavanju fotnova obzirom da koristi glifove iz cp1252 i ne zna da prikaze utf8. Bacio sam pogled na taj link ali nisam primetio da se igde pominje podrska za utf.
[ Loleeca @ 18.08.2012. 16:44 ] @
Citat:
pajaja:
Najverovatnije jeste problem u dodavanju fotnova obzirom da koristi glifove iz cp1252 i ne zna da prikaze utf8. Bacio sam pogled na taj link ali nisam primetio da se igde pominje podrska za utf.


Okej. Imas li neku ideju kako to resiti? Mozda mogu nesto da uradim sa HTML strane?
[ plus_minus @ 18.08.2012. 22:36 ] @
Ukoliko nemaš pravilno definisan charset i enkoding sa php strane, sa html strane (u bilo kom slučaju) ne možeš ništa značajno da promeniš.

Core Php » pdf podrška postoji, može da se generiše prost pdf dokument bez mnogo dodatnih linija koda, itd, ali u tom slučaju ćeš vrlo teško uspeti da nateraš da ti pdf bude u utf-8.

Vidim, koristiš fpdf za generisanje. Moja preporuka je mpdf .

Evo šta kaže na naslovnoj strani.

A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support

I radi besprekorno. U mom slučaju je domaće latinično pismo, nisam pravio ništa u ćirilici, ali, pretpostavljam da i sa ćirilicom radi bez muke.
Ja sam lično, impresioniran koliko je čovek koji razvija mpdf pedantan i korektan.

Dokumentacija i primeri su za desetku, takođe, pa probaj. :)
[ Loleeca @ 19.08.2012. 14:03 ] @
plus_minus mnogo ti hvala! Isprobacu prvom prilikom :)
[ tarla @ 19.08.2012. 17:19 ] @
http://www.tcpdf.org/
[ Loleeca @ 05.09.2012. 15:17 ] @
Evo me konacno sa resenim problemom, tako da tema moze da se zatvori :)
Ispostavilo se da mPDF nije ono sto mi je trebalo, jer sam ceo posao morala da radim ispocetka, pocev od "crtanja" pdf-ova.
Posle puno istrazivanja naisla sam na skriptu tFPDF. To je FPDF sa podrskom za unicode. Fpdf samo treba da nasledi ovu tFPDF klasu, redefinise jednu metodu i to je to. Demo se nalazi ovde.

[ plus_minus @ 07.09.2012. 20:06 ] @
Znam, probao sam i to. :) I sve 'varijante' ili klase za manipulaciju sa pdf formatom su dobre, s' tim što meni nije trebalo za ne znam kakav kompleksan pdf doc, već za jednu finu tabelu i toliko. Tako da mi je tu mpdf legao kao kec na desetku, a i volim da crtam sve od a do š. Jedino što bi mogao da zamerim kod mpdf-a jeste možda veličina komplet raspakovane klase naspram drugih.. i garant ima još ponešto. Svako koristi ono što mu odgovara, a na svu sreću, vremena su takva da za svakog ima sve, pa ko se kako snađe. :) Poz.