Tisk PDF A4 pomocí Joseki\PdfResponse + bootstrap
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- phoniq
- Člen | 17
Ahoj, pokud vygeneruji a následně otevřu PDF kódem viz níže, DIVy se šířkou .col-md-6 se nevejdou na stránku, ale naskládají se pod sebe. Zřejmě je tam nějaký problém s definicí A4 nebo okraji stránky v PDFResponse. Řešil někdo tisk do A4 pomocí bootstrap?
public function handleGenerujPDF() {
$sablonaHTML = $this->sablonyModel->fetchSingle(['nazev' => 'test']);
$pdf = new PdfResponse($sablonaHTML->html);
$pdf->styles = file_get_contents('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css');
$pdf->pageOrientation = PdfResponse::ORIENTATION_PORTRAIT;
$pdf->pageFormat = "A4-P";
$pdf->displayLayout = 'single';
$pdf->pageMargins = "0,0,0,0, 0,0";
$pdf->displayZoom = 'fullpage';
$pdf->setSaveMode(PdfResponse::INLINE);
$this->sendResponse($pdf);
}
HTML kód šablony:
<div class="container" style="background-color: yellow;">
<div class="row" style="background-color: gray;">
<div class="col-md-6" style="background-color: green;">
</div>
<div class="col-md-6" style="background-color: blue;">
</div>
</div>
</div>
- Šaman
- Člen | 2659
Já měl s mPDF problém, že se na stránku nevešla tabulka složená ze
sloupců s celkovým součtem 100%. Asi nějaká chyba zaokrouhlování při
přepočtu %
na mm
, či co. Bezpečná šířka byla
asi 97%, ale záviselo na šířkách jednotlivých sloupců, při některých
hodnotách to bralo i 99%.
Možná to bude v jádru stejný problém.
Editoval Šaman (21. 11. 2015 17:14)
- phoniq
- Člen | 17
Vyřešeno, pomohlo doupravit nastavení CSS a následně používat pro tvorbu sloupců výhradně třídy …XS…
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: left;
}
.col-xs-12 {width: 100%;}
.col-xs-11 {width: 91.66666666666666%;}
.col-xs-10 {width: 83.33333333333334%;}
.col-xs-9 {width: 75%;}
.col-xs-8 {width: 66.66666666666666%;}
.col-xs-7 {width: 58.333333333333336%;}
.col-xs-6 {width: 46%;}
.col-xs-5 {width: 41.66666666666667%;}
.col-xs-4 {width: 33.33333333333333%;}
.col-xs-3 {width: 25%;}
.col-xs-2 {width: 16.666666666666664%;}
.col-xs-1 {width: 8.333333333333332%;}