Zacinam s PdfResponse a problem s css
- cujan
- Člen | 410
ako tma dostanem css?
v presentery vytvaram funkciu
public function createSpisPdf()
{
$template = $this->createTemplate();
$template->setFile(__DIR__ . "/templates/Zostavy/spis.latte");
$template->someValue = 123;
// Tip: In template to make a new page use <pagebreak>
$pdf = new \Joseki\Application\Responses\PdfResponse($template);
// optional
$pdf->documentTitle = date("Y-m-d") . " Spisovy obal"; // creates filename 2012-06-30-my-super-title.pdf
$pdf->pageFormat = "A4-H"; // wide format
$pdf->getMPDF()->setFooter("|© SOŠ lesnícka, Kollárova 10, Prešov|"); // footer
$pdf->setSaveMode(\Joseki\Application\Responses\PdfResponse::DOWNLOAD);
// do something with $pdf
$this->sendResponse($pdf);
}
nasledne cez action volam tu funkciu
public function actionSpis(){
$this->createSpisPdf();
}
a v spis.latte mam text, ktory chcem stylovat…
nacitam som to do latte klasicky cez
<link rel="stylesheet" href="{$basePath}/css/spis.css">
ale nestyluje…
- Pavel Kravčík
- Člen | 1196
@cujan: Jde o to, že <link> se provádí až v HTML myslím.
Proto se v PDF již neprojeví. My to dáváme přímo do Latte – to
necháme vyrenderovat do stringu a předáme do mPdf. Ten si pak výstup
zajistí sám například pomocí ->output('file.pdf', 'I')
.
Pokud je to složitější a větší šablona, použil bych co radí @HonzaN.
Jinak pro převod formulářů se nám například osvědčilo originál oskenovat. Použít jako pozadí PDF a tam dynamicky (CSS position absolute) doplňovat údaje, které se mění. Je to nejspolehlivější a nejrychlejší varianta. Ale záleží na konkrétním případě.
- cujan
- Člen | 410
Pavel Kravčík napsal(a):
@cujan: Jde o to, že <link> se provádí až v HTML myslím. Proto se v PDF již neprojeví. My to dáváme přímo do Latte – to necháme vyrenderovat do stringu a předáme do mPdf. Ten si pak výstup zajistí sám například pomocí
->output('file.pdf', 'I')
.Pokud je to složitější a větší šablona, použil bych co radí @HonzaN.
Jinak pro převod formulářů se nám například osvědčilo originál oskenovat. Použít jako pozadí PDF a tam dynamicky (CSS position absolute) doplňovat údaje, které se mění. Je to nejspolehlivější a nejrychlejší varianta. Ale záleží na konkrétním případě.
nie ja ma predlohu vo worde, ale uz konkretne stylovanie, pouzit div, ci tabulku ci zalezi na okolnostiach…
- cujan
- Člen | 410
n.u.r.v. napsal(a):
já css přidávám takto:
... $pdf = new \mPDF('', 'A4', 10, 'arial'); ... $pdf->WriteHTML(file_get_contents('../www/css/style-pdf.css'), 1);
Používám pouze mPDF knihovnu a latte šablony
@n.u.r.v.
a neviete mi polopate vysvetlit ako tvorite napr. sablonu…navrhujete si to
v html? konkretny nejaky postup, lebo si to neviem dost dobre predstavit…ako
ked napr. vo worde idem vytvorit sablonu, tak pred sebou vydim ako to
vyzera…
- cujan
- Člen | 410
n.u.r.v. napsal(a):
normálně vytvořím latte a pracuju s tim jako s jinou stránkou – jen si ji zobrazuju v browseru + mám nalinkovaný ten css soubor
@n.u.r.v.
viem, ze uz to bude asi trapna otazka…ale napr. aby si to napasoval napr. na
velskost A4 tak ako pomocku pouzijes napr. tabulku? alebo co pouzivas ako
predlohu…alebo proste aby som to napasoval an A5 resp. A3…
dikes