mPdf a generování css stylů
- kleinpetr
- Člen | 480
Ahoj, nevím jestli je chyba na mé straně nebo mPdf skutečně neumí bootstrap styly ?
Co jsem četl, tak by mělo vygenerovat PDF, se styly jako media=print ovšem když dám print, tak stránka vypadá tak jak potřebuji, ale když ji vygeneruji pomocí mPdf tak je úplně rozházená. Jak to tedy opravdu je s těmi css ?
Díky za pomoc
- fizzy
- Backer | 49
mpdf ma obmedzene moznosti stylovania, ked chces pouzivat bootsrap stylovanie tak skus http://wkhtmltopdf.org
- kleinpetr
- Člen | 480
Díky, mohl bys mi trochu osvětlit jak s tím pracovat ? Nainstaloval jsem balíček a do nette aplikace nainstaloval https://github.com/…pwkhtmltopdf
ale nějak se mi nedaří to rozchodit.
- kleinpetr
- Člen | 480
To jsem zkoušel, ale nedařilo se mi rozchodit.. Ono už to pravděpodobně
funguje, jen když předám jako html (string)$template
tak semi
pdf generuje asi 30min, je mi jasný, že pokud načítá všechny css, makra
atp tak to bude tučný kód, ale nevím jak jinak to udělat..
Editoval kleinpetr (28. 12. 2015 22:05)
- kleinpetr
- Člen | 480
Tak už jsem to rozchodil, opět tím, že jsem ve třídě Document upravil
executables z wkhtmltopdf na /usr/local/bin/wkhtmltopdf
ale opět
jsem u stejného problému, když předám do
addHmtl((string)$template)
tak se mi otevře pouze pdf viewer, ale
nezobrazí se ani prázdný list a musím restartovat apache.
@FilipProcházka dovolím se zeptat přímo tebe, jak mohu předat celou šablonu ? Díky za pomoc
Editoval kleinpetr (28. 12. 2015 22:34)
- kleinpetr
- Člen | 480
Tak jinak, jak řešíte generování PDF vy ?
mám např. detail faktury, který když dám print tak v css mám osekané styly pro print a ve chvíly kdy se stránka dá tisknout, tak vypadá tak jak potřebuji. Když použiji nějaký addon např. PdfResponse tak vygenerovaná stránka vypadá hrozně, nejspíš tím, že mi ignoruje bootstrapové sloupce (předpokládám)
Jak tedy iedálně řešit pdf ? Díky za vaše tipy.
- castamir
- Člen | 629
Neříkám, že je to pěkné řešení, ale u PdfResponse můžeš chybějící styly pro tisk doplnit přes template nebo externí css. Tisk bootstrap stylů jsem nikdy nezkoušel. Problém PdfResponse a potažmo mPDF je ale doba vykonání skriptů (hlavně v závislosti na množství tabulek). Je taky dobré povolit cache mPDF (nová verze to dělá automaticky, ale doposud obsahovala hodně bugů, takže jsem upgrade zatím neřešil).
wkhtmltopdf by měl být řádově rychlejší a neměl by mít tolik problémů se styly. Dá se však používat jen s nainstalovaným wkhtmltopdf v OS a nejde pomocí něj vepisovat do již existujících dokumentů (např. pdfka).
všespásné řešení tedy neznám, jen pouhé berličky…
- kleinpetr
- Člen | 480
Jde mi o to, že když použiji wkhtmltopdf, tak za prvý, když mu předám $template z nette tak mi generuje asi 30min a pak stejně padne a musím restartovat apache, když mu dám natvrdo url pro generování tak mi uloží do pdf stránku skoro jako printscreen, myslel jsem, že bude vycházet z print preview.. Jak mohu do pdfResponse přidat css ? díky
- fizzy
- Backer | 49
@kleinpetr styly si mozes pridavat ale bootstrap v mpdf ti fungovat nebude, v mpdf funguju len niektore css zapisy a len na niektorych html elementoch
- kleinpetr
- Člen | 480
Takže po dlouhém testování a zkoušení všemožných knihoven, jsem dospěl k tomu, že jsem zůstal u mPDF, addon Joseki\PdfResponse.
Finální řešení (možná se někomu bude hodit)
- vlastní layout @pdf.latte
- vlastní styly pdf.css
- bootstrap styly, ale vygenerované customize pouze grid system, tables, typography
- styly nemusí být připojovány do mPDF, stačí je mít klasicky načtené v layoutu přes <link>
- zápis stylů v bootstrapu např.:
.table > thead > tr > th{..}
mpdf nepřečte, musel jsem upravit na.table thead tr th{..}
- NEJDŮLEŽITĚJŠÍ – používat pouze col-XS-..
Díky za pomoc :)
Editoval kleinpetr (4. 1. 2016 12:48)