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.

Bvd
Pascal.
Probeer eerst maar eens wat. De handleiding kent een hoop voorbeelden. :-)
Ja ja, ik probeer van alles maar kom er niet mee weg , alles laad in het begin met load of je moet er een button bij gebruiken.

Deze code is wat ik nu ben aan het proberen.

<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>


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.
Ik denk dat je even goed op een rijtje moet zetten wat je aan het doen bent.

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()?





Daarom vraag ik om op weg geholpen te worden omdat ik het gewoon niet snap.
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.:

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 
      });
}


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.
Heel simpel, in het URL-event roep je nu /save-data aan.
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

$( document ).ready(function() {
  // Handler for .ready() called.
});


of dit ook:

$(function() {
  // Handler for .ready() called.
});


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?
Dat zou raar zijn, want AJAX doet een aanvraag naar een document op een webserver.
AJAX kan met JavaScript geen server-commando uitvoeren. Dat moet een server-side script doen.
Maar bij die ajax , als ik die url zou oproepen worden mijn gegevens toch niet meegenomen, die komen pas als de pagina getoond word.

Als ik naar jquery kijk.
Neem jquery dan als voorbeeld.


<!DOCTYPE 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.

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.: 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.

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Reageren