Bonjour,
Déjà, désolé si je suis pas au bon endroit.
J'ai un développement web en php et javascript. J'ai besoin d'exporter certaines données (tableau, graphique et carte) au format PDF.
Après recherche, j'ai fait des essais avec html2pdf et cela semble répondre à mes attentes.
Le problème c'est que html2pdf s'exécute coté serveur en php et que j'aimerai pouvoir imprimer des canvas ; grahiques (Chartjs) et cartes (OpenLayers) qui s’exécutent coté client.
Pour pallier à cela, j'ai testé pour enregistrer une image des canvas sur le serveur et de les supprimer ensuite :
fonction pour générer l'image du canvas :
Enregistrement de l'image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function essai(){ var canvas = document.getElementById('myCanvas'); var dataURL = canvas.toDataURL(); $.ajax({ type:"POST", url :"script.php", data : { imgBase64: dataURL } }).done(function(o){ console.log(o); }); }
et ensuite je peux intégrer l'image à mon PDF.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //imgBase64 $upload_dir = 'uploads'; $img =$_POST['imgBase64']; $img = str_replace('data:image/png;base64,','',$img); $img= str_replace(' ','+',$img); $data = base64_decode($img); $file= 'uploads/image_graph.png'; $succes = file_put_contents($file,$data); echo $succes;
Ça fonctionne mais je suis pas sûre que ce soit la bonne méthode.
Pourriez vous me donner votre avis ? Peut être avez vous déjà été confronté à ce problème ?
Merci à vous.
Partager