PdfResponse nenačítají se obrázky img a z css backgroud

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

Ahojte, dělám generování nějakých voucherů. Stáhl jsem si knihovnu PdfResponse\PdfResponse. Je to taková vychytávka na práci s mPDF knihovnou.

voucher.latte

<html>
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="voucher.css">
    </head>
    <body>
        <div id="voucher">
            <img src="/images/darkovy-poukaz/zvonky.png">
            <div>Název kuónu</div>
        </div>
    </body>
</html>

voucher.css

#voucher {
    float: left;
    width: 100%;
    height: 100%;
    background: url('/images/darkovy-poukaz/darkovy_poukaz.png') no-repeat;
}

Presenter

$template = $this->createTemplate();
$template->setFile(/cesta_k_sablone/voucher.latte);

$pdf = new PdfResponse($template);

$pdf->pageOrientation = PdfResponse::ORIENTATION_PORTRAIT;
$pdf->pageFormat = array(150, 100);
$pdf->documentTitle = "Dárkový poukaz";
$pdf->documentAuthor = "";
$pdf->pageMargins = "0,0,0,0, 0,0";
$pdf->displayZoom = 'fullwidth';
$this->sendResponse($pdf);

HTML kód do PDFka se načte, když napíšu background: gray tak se stránka obarví na šedou, ale pozadí darkovy_poukaz.png nebo obrázek v šabloně zvonky.png se nechce načíst.
Vůbec nevím proč. Bohužel jsem na nic nepřišel.
Šablona se nachází v template/voucher/voucher.latte, když si dám adresu localhost/voucher/voucher tak se vše načte správně.
A vypadá to, že za to nemůže knihovna PdfResponse protože jsem zkusil načíst přímo mPDF, ale ten samí problém. Nevíte někdo co dělám špatně?
Děkuji, mockrát.

igor.pocta
Člen | 100
+
0
-

Zkus tohle

@page {
    background: url("/static/image/pdf_img/big_logo.gif") 50% 0 no-repeat;
}
ondrusu
Člen | 118
+
0
-

@igor.pocta díky za tip, bohužel se to nenačetlo

ondrusu
Člen | 118
+
0
-

Hmm už jsem asi přišel napříčinu. CSS ani HTML ty obrázky nenajde. Asi jak se to volá z toho

$template->setFile(/cesta_k_sablone/voucher.latte);

Vložil jsem tam obrázek z nějakýho webu a to zabralo. Ted je otázka jaká ta url k těm obrázkům musí být.

Nebo možná nějaký práva ..

Editoval ondrusu (8. 7. 2017 20:11)

Altimit
Člen | 82
+
0
-

ohledně CSS to udělej takhle:

$pdf->styles = file_get_contents('full URL ');

a obrázky musíš mít úplnou cestu.. jinak se ti nenačtou. To samé jako když pracuješ s email template.

ondrusu
Člen | 118
+
0
-

Díky, tento zápis asi načte CSS, ale už nezafunguje #div apod.
Taky jsem tam zkoušel dát obrázek jako binární hodnotu jak do tagu img tak do css background.

div {
  background: blue url('data:image/png;base64,...');
}

Promazal jsem cache, pořád se to nenačte ty obrázky.