Zacinam s PdfResponse a problem s css

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
cujan
Člen | 410
+
0
-

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
+
0
-

Mám dojem, že latte nelinkuje externí CSS, vlož to přímo do toho. :)

cujan
Člen | 410
+
0
-

Pavel Kravčík napsal(a):

Mám dojem, že latte nelinkuje externí CSS, vlož to přímo do toho. :)

@PavelKravčík
oki skusim, a inac ked si navrhujete pf vystup ako to robite? nastylujete si nejake html?alebo latte? a nasledne tak si nechate vytvorit pdf?

HonzaN
Člen | 66
+
0
-

CSS vkládám přímo do latte šablony

<style>
    {include 'styles.css'}
</style>
cujan
Člen | 410
+
0
-

HonzaN napsal(a):

CSS vkládám přímo do latte šablony

<style>
    {include 'styles.css'}
</style>

a ako postupujete pri navrhu tej zostavy…ja mam predlohu napr. word…

Pavel Kravčík
Člen | 1196
+
0
-

@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
+
0
-

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…

n.u.r.v.
Člen | 485
+
0
-

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

cujan
Člen | 410
+
0
-

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…

n.u.r.v.
Člen | 485
+
0
-

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

cujan
Člen | 410
+
0
-

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