PHP a generování PDF
Zdravím,
generuju pomocí PHP faktury, použil jsem třídu TCPDF, která podporuje znakovou sadu UTF, v níž mám napsanou celou aplikaci. Jakmile se však vygenerovala faktura, tak v ní nefungovaly některé české znaky (zejména "čřě").
Byl jsem proto nucen si převést vlastní font, a to český Arial přímo z C:/Windows/Fonts. Jakmile jsem tento převedený font přidal do generovaného dokumentu, vznikl mi 438kB faktura, a jelikož jich na ftp klidně může být za chvíli tisíc, tak je to opravdu dost. Zkoušel jsem taky použít některé fonty přímo z třídy TCPDF, avšak při použití freeserif mi vylezlo PDF o velikosi 800kB, tak jsem to vzdal.
Nemáte prosím někdo zkušenosti s generováním českých PDF v unicode kódování, případně s třídou TCPDF?
Ještě dodám: Podle mých informaci TCPDF umí generovat české PDF, tak nevím, kde je problém. Net jsem prolezl jak to šlo, něco jsem našel, ale stejně jsem našel jen samé převody fontů do truetypu, které vedou k velkým PDF. Když jsem vygeneroval PDF fakturu jen s Arialem, kde blbly české znaky, došel jsem k PDF necelé 3kB, což je krásné.
Díky za rady
PDF jsem nikdy negeneroval, ale napadá mě, jestli by to nemohlo souviset s kódováním stránky, která se převádí do PDF. Zejména jestli tam třeba nechybí metatag na znakovou sadu.
V případě generování PDF souborů se vůbec nejedná o HTML a metatagy. S metatagy a html to nemá vůbec nic společného, výstup PHP skriptu je vygenerovaný PDF soubor.
Tady je výtažek kódu:
Přesto dík za reakci
Aha. Dělá se to jinak než jsem myslel. Našel jsem tento návodík, kde píší:
http://www.linpro.cz/pokrocile/php-zajimave-tridy/p hp-generujeme-pdf.html
A ještě tohle - ten samý problém
http://interforum.interval.cz/ShowPost.aspx?PostID= 16563
Ano, tento návod znám, ale má jednu velkou mouchu, je v něm k češtině napsáno:
Tohle není popis pro zprovoznění češtiny. Já sám si myslím, že autor možná ani neví, jak se složkou lang ve třídě TCPDF pracovat, protože to zde nijak nepopsal. Googloval jsem a žádný další návod na tohle jsem zatím nenašel. Důležité je, že po sestavování pdf podle tohoto článku mi vylezl dokument, v kterém nešlo "čěř", a kdo ví co ještě.
Zdravím pánové,
před rokem jsem tady zakládal toto téma a řešení jsem nedostal. Týkal se 500kB PDF faktur vygenerovaných pomocí PHP TCPDF třídou v UTF-8 kódování.
Po roce jsem se k tomu nějak znovu dostal při úpravě aplikace a podařilo se mi vyřešit výslednou velikost faktury. Zmenšil jsem ji z 500kB na 80kB. V obou případech (500kB i 80kB) byl použit font Arial, a to normální a bold.
Výslednou velikost jsem zmenšil tím, že jsem metrickou definici písma nepřevedl z Arialu z Windows, ale stáhl jsem si Arial CE (Central Europe, tedy Arial pouze se znaky pro Střední Evropu). Do generovaného PDF jsem vložil znaky z ISO-8859-2 znakové sady, která je zobrazena na: ISO_8859-2
Zájemci koukněte zde: ceske_pdf
Ještě jednou připomínám, PDF generuje PHP skript v UTF-8 kódování a dokument je v UTF-8 kódování (tedy žádné funkce typu iconv() nejsou použity).
Metrickou definici přikládám k příspěvku. Věřím, že to někomu pomůže.
Musel jsem za dnešek vyřešit krom jiného i generování PDF seznamů a nebýt vás, musel bych do práce i zítra. Mnohokrát děkuji.
Moc dekuji za pomoc a zip soubor.
Super, díky! Jen doplním, že stačí přepsat všechny názvy fontů v šabloně na arialce
Ahoj, stačí použít font Dejavu serif, který je součástí TCPDF. Velikost PDF potom začíná na cca 80kB.
Díky, díky, díky, díky, díky.
Všem
Zdar, já zkoušel snad všechno a nijak sem ito nedaří zprovoznit. Stále chybí české znaky. Nepochopil jsem to jak jsi psal, že jsi je přidal do PDF podle Wikipedie.