• 6 odgovora
  • 6.323 pregleda
kreiranje pdf-a sa našim fontovima 05.10.2004. u 22:12 · pre 268 meseci #1
Imam problem sa našim fontovima prilikom kreiranja pdf fajla potrebnog za štampanje. Podatke dovlačim iz baze sa UTF-8 enodingom. Za kreiranje pdf-a koristim klasu fpdf. Problem se javlja prilikom štampanja naših fontova ČĆŠĐŽ.
E sad pomoću funkcije ereg_replace() uspem da svaki kod tipa 'Å' zamenim odgovarajućim '[' (YUTimes je u pitanju), medjutim problem je u tome što uvek imam prazno polje dodatno

npr:
Š tampaj

Probao sam
Code:
 $p = ereg_replace('Å ', '[', $y);

ali onda ne prevodi ništa.
Ako neko zna rešenje ili neku drugu klasu uz pomoć koje se može prevazići problem nek javi.
Potpis
http://oliver.glogonj.net | http://www.glogonj.net
Re: kreiranje pdf-a sa našim fontovima 06.10.2004. u 11:46 · pre 268 meseci #2
Prva stvar: zaboravi da je Yuscii ikad postojao (kao sto se niko vise
ne seca ostalih 10 kodnih rasporeda iz dosa).

Drugo: za konverziju imas iconv koji vrlo pristojno radi.

Fpdf klasu sam sreo kasno da bih je primenio u mom projektu, pa sam
koristio pdflib, problem se resava embedovanjem fontova (ili sam bar
ja tako resio).

--
Sve najlepse,
Best regards,
Slobodan mailto:[email protected]
Potpis
utvara is no saint
CV
>>Trenutni hobi
>>Dragon
Re: kreiranje pdf-a sa našim fontovima 06.10.2004. u 18:36 · pre 268 meseci #3
Uspeo sam nekako (uz veliku muku) sinoć da rešim problem. Isplati se biti uporan .
Što se tiče pdflib, koliko znam nije free pa mi ne odgovara za ovaj projekat.
Probaću i sa drugim fontovima sada bi trebalo da radi. Radio sam nešto tipa

Code:
$s = utf8_encode($f);
$p = utf8_decode($s);
$r = ereg_replace('ć', '}', $p);
itd.
Potpis
http://oliver.glogonj.net | http://www.glogonj.net
Re: kreiranje pdf-a sa našim fontovima 10.10.2004. u 17:44 · pre 268 meseci #4
vidim da si rešio, ali ajde da pojasnim..

Citat:
oliver78:
E sad pomoću funkcije ereg_replace() uspem da svaki kod tipa 'Å' zamenim odgovarajućim '[' (YUTimes je u pitanju), medjutim problem je u tome što uvek imam prazno polje dodatno


problem ti se javljao zato što se u utf8 svako naŠe slovo latinice (i svako slovo ćirilice) kodira sa dva bajta, a ti si menjao samo prvi..


a utvara bi mogao malo malo detaljnije da opiše kako je ubacio naša slova preko unikoda (ili već nekog drugog enkodinga -- kog?) pošto koliko ja znam (nisam probao) pdf ne podržava unikod (odnosno ne podržava više od 256 karaktera u fontu)..
Potpis
blogče :: unescaped beta
  »
go-paste extenzija
  »
reč dana: backup
  »
bočne koalicije
Re: kreiranje pdf-a sa našim fontovima 10.10.2004. u 19:07 · pre 268 meseci #5
Mislim da grešiš, PDF je format koji je uspostavila firma Adobe, koja se (u poslednje vreme) kune u UNICODE, a sem toga ako malo pretražiš njihov sajt primetićeš još nekoliko dokaza koji ti ne idu u korist ;)

Što se tiče samog generisanja kvalitetnog PDF-a iz PHP-a (naravno sa podrškom za UNICODE) mislim da je, sadly, za sada jedino približno dobro rešenje Apache FOP, iako oni obećvaju da će započeti uskoro novu granu razvoja koja će u potpunosti biti kompatibilna u skladu sa trenutno važećim W3C standardima.
Re: kreiranje pdf-a sa našim fontovima 10.10.2004. u 20:21 · pre 268 meseci #6
Za zombija:
Pa našto slično, najveći problem je bio što nisam imao ova dva reda:
Citat:

Code:
$s = utf8_encode($f);
$p = utf8_decode($s);


iako su podaci u bazi u utf-8 encodingu. Kako mi je ovo palo napamet ne znam, ali bitno je da funkcioniše. Ako neko zna šta se ustvari tu događa ne bi bilo loše da napiše. Da ponovim:
1. izvlači se podatak iz baze u utf-8 enkodingu
2. radi se encode()
3. radi se decode()
4. zamenjuju se odgovarajući karakteri utf-8 sa odgovarajućim u datim fontovima

Pitanje: Zbog čega je neophodno 2.,3. kad su već podaci u utf-8?
npr:
Citat:
Code:
$r = ereg_replace('ć', '}', $p);
Potpis
http://oliver.glogonj.net | http://www.glogonj.net
Re: kreiranje pdf-a sa našim fontovima 11.10.2004. u 16:02 · pre 268 meseci #7
Citat:
-zombie-: vidim da si rešio, ali ajde da pojasnim..
a utvara bi mogao malo malo detaljnije da opiše kako je ubacio naša slova preko unikoda (ili već nekog drugog enkodinga -- kog?) pošto koliko ja znam (nisam probao) pdf ne podržava unikod (odnosno ne podržava više od 256 karaktera u fontu)..


Nasa slova sam ubacio prilicno cupavo :), saljem ih u win-1250 kodnom
rasporedu i koristim CE fontove (moraju da se embeduju), podrska

Kad smo vec kod PDF-a da li je iko uspeo da automatizuje stampu u PHP-u, znaci da se kreira PDF i da se automatski odstampa (bez ogranicenja na operativni sistem).

Dole je klasa koju sam napravio za potrebe stampe.

Code:

    class pprint {
        var $pdf;
        var $page_no;
        var $page_w;
        var $page_h;
        var $ch; //trenutna visina na strani
        var $head_h;
        var $foot_h;
        var $temp_file;
        var $font;
        var $fontb;
        var $colors;
        
        function head(){        
// heder strane
        }

        function foot(){        
// futer strane
        }
        
        function begin_page(){
            ++$this->page_no;
            $this->ch = $this->page_h;
            PDF_begin_page($this->pdf, $this->page_w, $this->page_h);         
        }
        
        function end_page(){
            PDF_end_page($this->pdf);
        }
        
        function end_doc() {
            PDF_close($this->pdf);
            PDF_delete($this->pdf);
            $this->pdf = NULL;
        }

        function pprint() { 
            $this->temp_file = tempnam($_SERVER['DOCUMENT_ROOT'] . "/tmp", "FOO");
            $this->page_w = 595;
            $this->page_h = 842;
            $this->head_h = 87;
            $this->foot_h = 35;
            $this->ch = $this->page_h;
            $this->pdf = PDF_new();    
            $this->page_no = 0;            
            if (PDF_open_file($this->pdf, $this->temp_file) == 0) {
                    die("Error: " . PDF_get_errmsg($this->pdf));
            }        
            $this->font = pdf_findfont($this->pdf, "Arial", "cp1250", 0);
            $this->fontb = pdf_findfont($this->pdf, "Arial Bold", "cp1250", 0);
            PDF_set_info($this->pdf, "Creator", "print.php");
            PDF_set_info($this->pdf, "Author", "Dental IS");
            PDF_set_info($this->pdf, "Title", "Izvestaj");
            $this->begin_page();
        }
    }

Potpis
utvara is no saint
CV
>>Trenutni hobi
>>Dragon
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme