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í?
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ě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
Jak voláš WKHTMLTOPDF?
Můžeš vygenerovaný svg vložit přímo do html jako base64
<img src="data:image/svg+xml;base64,PD94 ... " />
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
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.
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 />
Murděj Uktrurný:
prosim precti si vlakno od zacatku....presne toto jsem provadel
Murděj Uktrurný:
beru zpet! ty mas na mysli to uvest plnohodnotne jako url..ok vyzkousim
ready to use...DIKY hoši
je opravdu potreba src uvest jako plnohodnotnou url (http://.....)
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á...