Autor | Zpráva | ||
---|---|---|---|
Milan1236000 Profil |
Zdravím, našel jsem několik PHP knihoven, které umějí vytvářet PDF: mPDF, TCPDF, FPDF, dompdf, ...
Zkoušel jsem ale zatím jen dvě. Nejdřív jsem zkoušel mPDF , ale v PDF se na stránce zobrazovalo špatné rozložení obsahu a pár věcí mi tam vadilo, tak jsem se rozhodl vyzkoušet TCPDF , ale u něj mi zase nevyhovuje ten způsob, že musím odkazovat na samostatný php soubor (pokud kod generující PDF mám ve stejném php souboru, který generuje HTML soubor, zobrazuje se: TCPDF ERROR: Some data has already been output, can't send PDF file), který se po otevření přetvoří na PDF, taky mi vůbec nevyhovuje způsob vytváření záhlaví a zápatí (u mPDF to šlo psát html tagy, ale tady ne).
Přemýšlím, že se opět vrátím k mPDF a budu si s tím muset trochu pohrát, ale z nějakého důvodu se po každém načtení stránky, kde se generuje PDF zobrazí tisíce chyb, celý obsah stránky se ale načte a i vygenerovaný PDF soubor je plně funkční. Co to má být?
Neznáte podobný snadno manipulovatelný generátor PDF jako je mPDF ?
|
||
Taps Profil |
#2 · Zasláno: 16. 7. 2016, 21:12:19
O jake chyby se jedna?
|
||
Milan1236000 Profil |
Taps:
Tento kód mi generuje PDF, zatím v něm jen věci zkouším, takže asi není všechno správně napsané, kdyžtak napište, co jde napsat líp, hlavně ty rozměry stránky a nastavení okrajů: include 'mPDF_5.7/mpdf.php'; $mpdf=new mPDF("utf-8"); $mpdf->AddPage('', '', '', '', '', 15, // margin_left 15, // margin right 15, // margin top 10, // margin bottom 10, // margin header 5); // margin footer*/ $mpdf = new mPDF('','', 0, '', 15, 15, 16, 16, 9, 9, 'L'); $mpdf->SetHTMLHeader("<table style=\"width: 100%;\"><tr><th style=\"font-weight: normal;\">$title</th></tr></table><hr style=\"height: 1px; background-color: rgb(0,0,0); color: rgb(0,0,0);\">"); $mpdf->SetHTMLFooter("<hr style=\"height: 1px; background-color: rgb(0,0,0); color: rgb(0,0,0);\"><table style=\"width: 100%;\"><tr><th style=\"font-weight: normal;\">Strana <b>{PAGENO}</b> z <b>{nbpg}</b></th></tr></table>"); $mpdf->WriteHTML(" <style> span { font-size: 13px; font-weight: bold; /*text-decoration: underline;*/ /*color: rgb(0,128,255); vertical-align: super; } </style> "); $mpdf->WriteHTML("<table><tr><td><h2 style=\"/*text-decoration: underline;*//* border-bottom: 3px solid black;\">$title</h2></td></tr></table>"); $mpdf->WriteHTML("<columns column-count=\"2\" vAlign=\"\" /><p style=\"font-size: 13px; line-height: 1.8;\">".str_replace($vsechny_akordy_predtim, $vsechny_akordy_potom, $zaznam_skladba->Text)."</p>"); $mpdf->Output("soubory/skladby/pdf/{$zaznam_skladba->Url}.pdf"); Příklad z těch pár tisíců dalších chyb: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in C:\Program Files\VertrigoServ\www\mw1\mPDF_5.7\includes\functions.php on line 96 Call Stack # Time Memory Function Location 1 0.0086 398432 {main}( ) ...\skladby.php:0 2 1.2037 14743600 mPDF->WriteHTML( ) ...\skladby.php:501 3 1.2041 14744048 mPDF->purify_utf8( ) ...\mpdf.php:12824 4 1.2054 14744512 strcode2utf( ) ...\mpdf.php:30666 5 1.2054 14744784 preg_replace ( ) ...\functions.php:96 ( ! ) Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in C:\Program Files\VertrigoServ\www\mw1\mPDF_5.7\includes\functions.php on line 97 Call Stack # Time Memory Function Location 1 0.0086 398432 {main}( ) ...\skladby.php:0 2 1.2037 14743600 mPDF->WriteHTML( ) ...\skladby.php:501 3 1.2041 14744048 mPDF->purify_utf8( ) ...\mpdf.php:12824 4 1.2054 14744512 strcode2utf( ) ...\mpdf.php:30666 5 1.2488 14745888 preg_replace ( ) ...\functions.php:97 |
||
Taps Profil |
#4 · Zasláno: 16. 7. 2016, 21:35:19
Pouzivas nejnovejsi verzi mpdf?
|
||
Milan1236000 Profil |
#5 · Zasláno: 16. 7. 2016, 21:40:15
Taps:
Nejnovější verzi nepoužívám, na webu je dostupná verze 5.7 a 6.0. Nejnovější verzi vyzkoušet můžu, ale opravdu tam je takový rozdíl mezi nimi? |
||
Taps Profil |
Milan1236000:
Rozdil muze byt v pouzitych funkcich knihovny mpdf. Z vypisu chyb je zrejme ze ta tva verze mpdf pouziva funkce, ktere jsou jiz zastarale pro tvoji verzi php |
||
Milan1236000 Profil |
Taps:
No, vypadá to, že ta verze 6.0 všechny chyby vyřešila, pořád se mi ale zobrazují ty sloupce stejně vysoké místo toho, aby se nejdřív dopsal až do konce stránky sloupec první. --- Nakonec se mi to podařilo. Pro ty, kteří by měli stejný problém, tak stačí místo: <columns column-count=\"2\" vAlign=\"\" /> $mpdf->SetColumns(2); $mpdf->keepColumns=true; Díky za radu. ;) |
||
Časová prodleva: 8 dní
|
|||
Milan1236000 Profil |
Ještě malý dotaz ohledně generování PDF.
Na dost stránkách, kde se má generovat PDF, se stránka docela dlouho načítá (klidně i 5 sekund) a zjistil jsem, že je to právě tímto generováním. Ovšem na pozadí Woken mám nemálo náročnějších spuštěných programů a oken, takže je to v tomto případě docela znát. Opravdu to generování normálně trvá tak dlouho? Generuje se mi jen jedna A4 stránka. Napadlo mě, že by se to generovalo, až když by to bylo potřeba, ale nechci, aby se mi kvůli tomu načítala stránka znova. JavaScript by to měl umět bez nového načítání, ne? S ním jsem ale ještě nezačínal, takže nevím, jak na to. |
||
lucasKE Profil * |
#9 · Zasláno: 24. 7. 2016, 17:39:04
ahoj, neskusal si wkhtmltopdf? Mohlo by to byt rychlejsie ako pdf generovanie.
|
||
Milan1236000 Profil |
#10 · Zasláno: 25. 7. 2016, 16:16:10
lucasKE:
Nezkoušel, udělám to jiným způsobem. Ale díky za tip. ;) |
||
Časová prodleva: 9 let
|
0