Html to pdf
Pagina: « vorige 1 2 3 4 5 volgende »
Beetje hulp om op weg te komen misschien?
Probeer eerst maar eens wat. De handleiding kent een hoop voorbeelden. :-)
Deze code is wat ik nu ben aan het proberen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
setTimeout(function () { window.print(); }, 500);
window.onfocus = function () { setTimeout(function () { window.close(); }, 500);
}
</script>
<script>
<script>
$(document).ready(function(){
window.unload = function(){
// $.ajax stuff here
exec("xvfb-run /usr/bin/wkhtmltopdf http://192.168.0.105/totalbriefjes.php Briefjes/Totalebriefjes_".date('m-d-Y_hia').".pdf 2> Briefjes/wkhtmltopdf_error_".date('m-d-Y_hia').".log" ),})
}
});
</script>
setTimeout(function () { window.print(); }, 500);
window.onfocus = function () { setTimeout(function () { window.close(); }, 500);
}
</script>
<script>
<script>
$(document).ready(function(){
window.unload = function(){
// $.ajax stuff here
exec("xvfb-run /usr/bin/wkhtmltopdf http://192.168.0.105/totalbriefjes.php Briefjes/Totalebriefjes_".date('m-d-Y_hia').".pdf 2> Briefjes/wkhtmltopdf_error_".date('m-d-Y_hia').".log" ),})
}
});
</script>
Na het script om de pagina af te sluiten.
Wat ik probeer, hij maakt van de pagina een pdf maar zonder de gegevens die hij inlaad, dus voor afsluiten slaat hij leeg op zonder ingevulde waarde.
Gewijzigd op 10/09/2018 17:31:10 door Pascal Schuffelers
exec() is normaliter een PHP-functie die je nu als een Javascript-functie behandelt? Of is dit nu een JavaScript functie geworden? Zo ja, laat dan even zien wat die functie doet.
En waar is je ajax-functie gebleven? Ik zie enkel op lijn 11 een aanwijzing dat je daar je $.ajax() functie kan plaatsen, maar gebeurt dat ook in je exec()?
Ik probeer van alles en kom er niet mee uit de voeten.
Rijtje is simpel, voor dat de pagina afgesloten word door de timer, dan een pdf van de pagina maken waar alle gegevens in staan.
Aangezien ik nu het gevoel heb dat ik maar aan het aanmodderen ben om enigszins dat ajax proberen te begrijpen met voorbeelden die google mij toont , maar het niet in mijn pagina wil werken , vraag ik hulp cq op weg te worden geholpen.
Niet met mijn eigen code , dat snap ik , tis jullie regel de mensen aan te sturen een eigen code te proberen , maar tis ook een hulp forum, dus op weg helpen zou toch geen kwaad kunnen?
Als ik een voorbeeld neem.:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
window.onbeforeunload = function(){
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: '/save-data',
data: { },
success: function(result) { },
async: true // <-- make the call synchronous
});
}
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: '/save-data',
data: { },
success: function(result) { },
async: true // <-- make the call synchronous
});
}
is Ajax , maar hoe moet ik verder? laat mijn code achterwege, Hoe zeg ik gedag tegen een gebruiker als de pagina sluit? Dat krijg ik nog niet een met die code klaar.
Ik heb nog een andere optie open staan om het toch te krijgen wat ik zou willen, alleen dat vind ik zelf niet prettig om het dan zo te doen.
Dat is dus het PHP-script wat jouw exec() dus uitvoert. Dan ben je al op een goede weg.
Als je toch jQuery gebruikt voldoet
of dit ook:
i.p.v. window.onbeforeunload = function(){..}
Ja maar ik moet in mijn geval geen url hebben maar een commando, dan gaat dat url geval niet op?
AJAX kan met JavaScript geen server-commando uitvoeren. Dat moet een server-side script doen.
Gewijzigd op 10/09/2018 18:28:15 door - Ariën -
Als ik naar jquery kijk.
Neem jquery dan als voorbeeld.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html>
<head>
<title>Hello!</title>
<script>
$( document ).ready(function() {
return "doei";
});
</script>
</head>
<body>
<?php
echo("Hello, World!");
?>
</body>
</html>
<html>
<head>
<title>Hello!</title>
<script>
$( document ).ready(function() {
return "doei";
});
</script>
</head>
<body>
<?php
echo("Hello, World!");
?>
</body>
</html>
Maar er komt ook geen doei te zien in het begin als ik de pagina laad.
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_state_return_pi
(plain javaScript)
Met jQuery heb je de $.html() functie om een HTML-element te vullen met een bepaalde waarde.
Vergeet trouwens ook niet om je jQuery bibliotheek in te laden, want anders doet jQuery helemaal niks.
Klopt, want return geeft geen output naar het scherm, maar verwerkt het in het geheugen. Kijk eens naar deze snippet, die het hopelijk duidelijk uitlegt, met behulp van het getal pi.: (plain javaScript)
Met jQuery heb je de $.html() functie om een HTML-element te vullen met een bepaalde waarde.
Vergeet trouwens ook niet om je jQuery bibliotheek in te laden, want anders doet jQuery helemaal niks.
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..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<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>
<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.
Gewijzigd op 10/09/2018 18:53:22 door Pascal Schuffelers
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.
Waarbij nu een vraag bij mij opkomt, is er een sqli command die gegevens van de hoogste id uit kan lezen?
?
Gewijzigd op 10/09/2018 21:13:43 door Pascal Schuffelers
Om op je vraag te komen.
Ja, die SQL-query voldoet aan je vraag.
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.
Gewijzigd op 11/09/2018 07:35:27 door Pascal Schuffelers
Welke images, van website naar pdf?
Ja, ik vermoed dat ik in het script van de server die map locatie denk ik moet opgeven ipv de link.
Om wat voor plaatjes gaat het op die site? In een background, of uit een img-tag.
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.
Voorbeeld.:
https://ibb.co/j8nRaU
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.
Hoe roep je die image aan?