Ik ben al enkele dagen aan het zoeken of er een mogelijkheid is om via php een pagina naar pdf te krijgen.
Het idee is zo, ik heb het in mijn windows programma toen zo gemaakt, dat als iemand op afdrukken drukt dat de pagina word afgedrukt en dat een copy als pdf cq image in een map word opegslagen.
Nu wil ik dit ook via mijn webpagina maken, dus drukt iemand op afdrukken dat ook de pagina word opgeslagen.
Nu kom ik ook diverse dingen tegen maar ik krijg ze van geen 5 cent werkt.
Is er iemand hier die mij kan helpen hoe dit te krijgen?
En nee heb echt google afgezocht en van alles geprobeerd, dus ik vraag serieuze hulp.
Als ik dat bekijk en ik bekijk die jquery dan ga ik mij afvragen of dat wel werkt met het geen om voor het auto sluiten een pdf te krijgen met de gegevens erin.
Als ik mij dat zo ga bekijken, kan ik beter gewoon de laatst ingevoerde id in te lezen en dat in de pagina te stoppen en dan op te slaan via die exec op het einde, geen fijne pagina dan, maar daar weet ik van dat het werk, ben straks weer een week kwijt om iets van 3 regels werkend te krijgen.
Ik wil het vanavond cq morgen nog eens proberen, maar wil mij hier niet teveel tijd in gaan spenderen als het zo moeilijk blijkt te zijn.
Bij deze code..
<html>
<head>
<script type="text/javascript">
var hook = true;
window.onbeforeunload = function() {
if (hook) {
return "Did you save your stuff?"
}
}
function unhook() {
hook=false;
}
</script>
</head>
<body>
<!-- this will ask for confirmation: -->
<a href="http://google.com">external link</a>
<!-- this will go without asking: -->
<a href="anotherPage.html" onClick="unhook()">un-hooked</a>
</body>
</html>
Werkt het zodra ik op een link klik, maar zonder die links enz werkt het niet als hij auto moet sluiten.
Het voordeel van AJAX is dat je direct kan zien of een pagina geladen is. En dat asynchroon.... :-)
Je moet dus een PHP-script maken met je exec() en die aanroepen met AJAX.
Ik vraag mij alleen af of het PHP-script uitgevoerd blijft worden totdat het genereren van de PDF klaar is. Voor hetzelfde geldt wordt die exec() apart uitgevoerd, en geeft AJAX aan dat het laden al klaar is, terwijl de conversie nog blijft draaien. Daar kan iemand anders vast wel antwoord op geven. Ik heb nu geen tijd om een hele testcase te bouwen met wkhtmltopdf.
Maar goed, als je in deze materie wilt duiken, dan moet je wel weten wat de verschillen tussen JavaScript en PHP zijn, en hoe dit wordt uitgevoerd.
Maar ik ben eens aan het lezen, lijk erop wkhtmltopdf vanuit de server kant de pagina benaderd, dus gegevens krijg je niet te zien als je vanaf een client invult naar mijns inziens, dus je zult een pagina moeten maken de vanuit de server de gegevens inlaat en dan pas opslaat.
Waarbij nu een vraag bij mij opkomt, is er een sqli command die gegevens van de hoogste id uit kan lezen?
Zoals ik al zei, ik weet niet zeker of het script op de achtergrond wordt uitgevoerd, of tijdens het laden van het PHP-script. Test het eens uit met een flinke PDF die lekker zwaar is. Dan kan je zien of je AJAX-request blijft laden, of direct klaar is.
Om op je vraag te komen.
Ja, die SQL-query voldoet aan je vraag.
Script word dus inderdaad op de achtergrond via de client opgeroepen.
Als test haal ik alle waarden binnen met die sql van de laatste id met een php pagina.
Op het einde van de pagina doe ik die wkhtmltopdf command en alles word netjes ingeuld getoond in de opgeslagen pdf.
Moet dus wel even alles ombouwen , maar goed als het hiermee dus wel werkt ga ik daar niet moeilijk om doen.
Het enigste wat vreemd is dat hij de images niet met overneemt.
Een img-taq.
Wat me opvalt is dat als ik in mijn pagina de link van de google image doe (link met een ip) dan neemt hij die wel mee, maar interne images niet.
Google image word getoond, maar onder het intern ip adres zie je een witte balk, hier zou een image moeten komen wat intern op de rpi in de www map zit.