Autor | Zpráva | ||
---|---|---|---|
IdemeNaHavaj Profil |
#1 · Zasláno: 9. 9. 2016, 16:17:38
Skúšam vytvoriť PDF cez FPDF s diakritikou a nech robim čo robim nie a nie to ísť. Skušal sim iconv, nastaviť charset, aj cp1250 aj UTF8 a nič.. Teraz som sa zasekol pri konvertovaní diakritiky na HTML entity. Mám napríklad "Č" ako "Č" a problém je že v PDF sa nezobrazuje ako Č ale ako Č. Vie niekto ako povolím aby fpdf zobrazoval miesto HTML entitov to, čo ten entit znamená?
|
||
Keeehi Profil |
#2 · Zasláno: 9. 9. 2016, 16:37:52
FPDF není úplně nejlepší pro jazyky s diakritikou. 1) nezvládá utf-8, jen ISO-8859-1 nebo Windows-1252 (což ani jedno není to co jsi zkoušel), 2) v základu nemá jediný font s českou diakritikou - musíš si ho nejdříve sám vygenerovat.
Osobně bych zkusil nějakou alternativu, která s utf-8 pracovat umí. mpdf nebo wkhtmltopdf. Taky jsi nám neukázal co jsi vytvořil a nefunguje ti to. |
||
IdemeNaHavaj Profil |
#3 · Zasláno: 9. 9. 2016, 16:46:42
Hladal som nieco na vytvaranie peknych faktur a nasiel som toto github.com/farjadtahir/pdf-invoicr ma to pekne ukazky ale ten system pouziva prave fpdf. Skusal som kombinovat vsetky mozne kodovania v iconv aj windows 1252 aj iso
|
||
user Profil * |
#4 · Zasláno: 9. 9. 2016, 17:04:14
|
||
IdemeNaHavaj Profil |
To znie pekne aj som to skúsil ale donekonečna sa vytváranie PDF načítava.. myslel som si že mám ja niekde chybu ale ked vidím že sa donekonečna načítava aj odtiaľ stiahnutý príklad "ex.php" tak v tom asi niečo bude :/
Edit: nejde mi to PDF otvoriť iba v prehliadačoch a neviem prečo , cez telefon ide, cez chrome ani edge nie, aj stiahnut sa da cez winsc z ftp.. teraz nechapem vobec co s tym moze byt Edit2: nejde mi vobec ziadne PDF zobrazit v chrome |
||
user Profil * |
#6 · Zasláno: 9. 9. 2016, 19:38:06
IdemeNaHavaj:
„myslel som si že mám ja niekde chybu ale ked vidím že sa donekonečna načítava aj odtiaľ stiahnutý príklad "ex.php" tak v tom asi niečo bude :/“ To bude chyba u tebe, mě to jde v pohodě. |
||
IdemeNaHavaj Profil |
Už sa mi to podarilo spojazdniť, ale ajtak tam nieje tá diakritika a použil som príklad ktorý tam bol priložený. Posielam screenshot:
Tak ako vidim ani ten tFPDF nejak nejde, asi fakt sa na to vykašlať a najsť iny system |
||
user Profil * |
#8 · Zasláno: 9. 9. 2016, 22:35:59
Musíš tam mít chybu. Pošli zdroják.
Zkus případně odstranit souboru .mtx.php ve složce tfpdf/font/unifont |
||
IdemeNaHavaj Profil |
Posielam zdrojak, je rovnaký ako ked som ho stiahol
ex.php <?php // Optionally define the filesystem path to your system fonts // otherwise tFPDF will use [path to tFPDF]/font/unifont/ directory // define("_SYSTEM_TTFONTS", "C:/Windows/Fonts/"); require('tfpdf.php'); $pdf = new tFPDF(); $pdf->AddPage(); // Add a Unicode font (uses UTF-8) $pdf->AddFont('DejaVu','','DejaVuSansCondensed.ttf',true); $pdf->SetFont('DejaVu','',14); // Load a UTF-8 string from a file and print it $txt = file_get_contents('HelloWorld.txt'); $pdf->Write(8,$txt); // Select a standard font (uses windows-1252) $pdf->SetFont('Arial','',14); $pdf->Ln(10); $pdf->Write(5,'The file size of this PDF is only 12 KB.'); $pdf->Output("test.pdf", "I"); ?> HelloWorld.txt English: Hello World Greek: Γειά σου κόσμος Polish: Witaj świecie Portuguese: Olá mundo Russian: Здравствулте мир Vietnamese: Xin chào thế giới Slovensky: Čau svet! Ako sa máš? |
||
Monkeys Profil * |
#10 · Zasláno: 10. 9. 2016, 18:03:28
IdemeNaHavaj:
FPDF nepodporuje UTF-8. Mam svoj system na generovanie faktur a vyriesil som to cez funkciu ktora zmeni kodovanie. Funguje mi to na vsetku diakritiku. Napis si funkciu cez ktoru budes vracat upravene retazce. function getUTF8( $string ){ $str = stripslashes( $string ); $str = iconv('UTF-8', 'windows-1250//IGNORE', $str) . PHP_EOL; return $str; } M. |
||
IdemeNaHavaj Profil |
Monkeys:
iconv som skúšal už na viac spôsobov, tvoja funkcia urobí z príkladu vyššie toto: Niekde je proste problém a netuším kde, skúšal som rôzne kódovania a ked to nefunguje ani na príklade tak už neviem. Viem ale že to nieje chyba v mojom PC lebo cez mobil mi to otvorí rovnako. mb_detect_encoding() vráti UTF-8 bez použitia iconv.
|
||
Monkeys Profil * |
IdemeNaHavaj:
zakomentuj tieto dva riadky // Load a UTF-8 string from a file and print it $txt = file_get_contents('HelloWorld.txt'); $pdf->Write(8,$txt); a miesto toho napis $pdf->Write(5, getUTF8( 'ľščťžýáíéäňú§ô' ) ); Pozri sa na vystup: Ak vypis bude spravny problem mas s externym suborom. M. pripadne ma este napadlo: $txt = getUTF8(file_get_contents('HelloWorld.txt')); M. |
||
IdemeNaHavaj Profil |
Monkeys:
Naozaj dakujem ze sa snazis mi pomoct ale.. nejde.. ale našiel som v systéme čo robí faktúry nejaké iconv funkcie ktoré som pomazal a faktúra mi teraz diakritku tak napoli berie.. nefunguje touppercase() na písmeno "á" (napr. DáTUM VYSTAVENIA ) a tiež euro symbol je otánik ? 1.00
edit: to s malým "á" som už vyriešil už len nejak ten euro symbol a budem mať po probléme edit2: mám to vyriešené - našiel a vymazal som ďalšie iconv funkcie.. tie prvé maly kódovanie nejaké ISO a tieto druhé windows 1250 |
||
user Profil * |
#14 · Zasláno: 10. 9. 2016, 19:50:06
Monkeys:
„FPDF nepodporuje UTF-8.“ Ano, ale tFPDF podporuje. |
||
Časová prodleva: 8 let
|
0