Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ZAJDAN kdy 13. 11. 2015, 11:04:44

Název: WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: ZAJDAN kdy 13. 11. 2015, 11:04:44
Ahoj,
pokouším se pomocí WKHTMLTOPDF vyrenderovat PDF z html obsahující <img> který má jako source odkaz na php vracející QR code v podobě svg obrázku:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<div id="qr-picture"><img id="image" type="image/svg+xml" src="qrcode.php /></div>
</div>
</body>
</html>


<?php
require_once ('phpqrcode-master/qrlib.php');
header("Content-Type: image/svg");
$dataText   = 'PHP QR Code :)';
   
$svgTagId   = 'id-of-svg';
   
$saveToFile = false;
   
$imageWidth = 100; // px

   // SVG file format support
   
$svgCode = QRcode::svg($dataText, $svgTagId, $saveToFile, QR_ECLEVEL_L, $imageWidth);
   echo
$svgCode;
?>

problém je, že se do PDF se vyrenderuje pouze prázdný rám
nemáte někdo zkušenost s podobnou věcí?
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: Ondrej Nemecek kdy 13. 11. 2015, 11:46:10
Musíte situaci analyticky rozebrat. Zkusit svg uložit do souboru, zkontrolovat, že je validní a že se zobrazí v prohlížečích obrázků, pak že se zobrazí v libovoném prohlížeči v tom html, pak že ho zobrazí v tom html webkit  prohlížeč a nakonec že ho vyrenderuje WKHTMLTOPDF. Zkontrolujte mime typy.
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: ZAJDAN kdy 13. 11. 2015, 12:14:07
něco podobné jsem zkoušel podle http://phpqrcode.sourceforge.net/examples/index.php?example=203
<?php
require_once ('phpqrcode-master/qrlib.php');
   
   
$tempDir = EXAMPLE_TMP_SERVERPATH;  
     
   
$dataText   = 'PHP QR CodeTESTETSTETSTSTTET';
   
$svgTagId   = 'id-of-svg';
   
$saveToFile = 'demo.svg';
   
   
// it is saved to file but also returned from function
   
$svgCode = QRcode::svg($dataText, false, $tempDir.$saveToFile);

?>

po spuštění php s tímto scriptem se do browseru vykreslí SVG QR kod v poradku
v response headers je: Content-Type:image/svg+xml
nemyslím si, ze je nutné ten soubor svg fyzicky ulozit, staci aby ho spravne zobrazil browser, protoze wkhtmltopdf pracuje stejne jako browser
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: Murděj Uktrurný kdy 13. 11. 2015, 12:19:33
Jak voláš WKHTMLTOPDF?

Můžeš vygenerovaný svg vložit přímo do html jako base64
<img src="data:image/svg+xml;base64,PD94 ... " />
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: ZAJDAN kdy 13. 11. 2015, 12:30:48
wkhtmltopdf volam pres phpwrapper 'mikehaertl/phpwkhtmltopdf'
ale zkousel jsem ho na mou stranku postvat i z command line:
wkhtmltopdf /home/zajdan/html/test.html /home/zajdan/html/test.pdf

v obou pripadech vysledky stejne....QR neni do PDF vyrenderovan
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: ZAJDAN kdy 13. 11. 2015, 12:41:27
pokud vemu response ze serveru, tedy source kod toho SVG a ulozim to do noveho souboru 'test.svg' neni problem tento soubor zobrazit v prohlizeci obrazku, browseru a ve finale i kdyz tento soubor uvedu jako src v <img> tak je to v poradku, ale cilem je to svg ziskat dynamicky bez potreby ho ukladat na disk.
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: Murděj Uktrurný kdy 13. 11. 2015, 12:58:22
Citace od: ZAJDAN kdy 13. 11. 2015, 12:30:48
ale zkousel jsem ho na mou stranku postvat i z command line:
wkhtmltopdf /home/zajdan/html/test.html /home/zajdan/html/test.pdf
Ono to zkouší zobrazit zdrojový kód php ne jeho výsledek. Aby to zobrazovalo výsledné vygenerované svg musí se tam být odkaz na server který spustí php kód a vygeneruje svg.
<img id="image" type="image/svg+xml" src="http://server/qrcode.php />
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: ZAJDAN kdy 13. 11. 2015, 13:06:18
Murděj Uktrurný:
prosim precti si vlakno od zacatku....presne toto jsem provadel
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: ZAJDAN kdy 13. 11. 2015, 13:10:45
Murděj Uktrurný:
beru zpet! ty mas na mysli to uvest plnohodnotne jako url..ok vyzkousim
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: ZAJDAN kdy 13. 11. 2015, 13:59:59
ready to use...DIKY hoši
je opravdu potreba src uvest jako plnohodnotnou url (http://.....)
Název: Re:WKHTMLTOPDF - renderování dynamického obsahu
Přispěvatel: Ondrej Nemecek kdy 13. 11. 2015, 20:32:52
Citace od: ZAJDAN kdy 13. 11. 2015, 13:59:59
ready to use...DIKY hoši
je opravdu potreba src uvest jako plnohodnotnou url (http://.....)

Jo a to právě zjistíte rozborem toho problému. Zapoměl jsem tam uvést, že u toho máte sledoval logy apache - error log a acces log. Z toho snadno zjistíte, že se váš skript vůbec nevolá nebo uložený soubor nenačítá...