Envoyé par : wako
Date : 07/06/2006 10:17
Bonjour,
J'ai besoin d'imprimer des images contenues dans les balises <image>. J'ai pas trouver de méthode ni de solution sur le forum (le contenu n'est pas dans une iframe). Quand ej fais window.print(); je récupere une erreur : impossible d'imprimer ou d'obtenir un apercu
Quelqu'un sait comment faire ?
Merci de votre aide,
wako
Envoyé par : laurentj
Date : 07/06/2006 13:16
Du XUL, ça ne s'imprime pas : c'est une interface utilisateur ;-)
Donc si tu veux imprimer une image contenu dans un <image> : il faut que tu ouvre un document blanc html (about:blank) dans un iframe ou via un window.open, que tu y insère à coup de DOM une balise <img> html ayant la même url que ta balise <image>. Ensuite tu fais un print de cette fenêtre...
Envoyé par : wako
Date : 07/06/2006 13:57
ok
c'est ce vers quoi je me dirigeais, mais je me demandais si il n'exitait pas une tite fonction magique :)
Merci bien Lj
wako
Envoyé par : Paul Rouget
Date : 07/06/2006 15:43
Un petit truc, si vous voulez imprimer du XUL, ce qui n'est en effet pas nativement possible, il y a une petite astuce: Avec le canvas, on peut créer une image du contenu du browser, et on peu imprimer cette image, donc imprimer du XUL. C'est sale, mais ça fonctionne.
voilà :)
Envoyé par : wako
Date : 07/06/2006 15:50
Me revoila :/
Je n'arrive pas a modifier le contenu de la fenaitre.
Voila ce que je fais :
var preview = window.open("about:blank", "Preview", "chrome"); var img = document.createElement("img"); img.setAttribute("src", "http://localhost/cgi-bin/mailgraph.cgi?1-n"); var body = document.createElement("body"); preview.document.childNodes[0].appendChild(body); preview.document.childNodes[0].childNodes[1].appendChild(img); alert(preview.document.childNodes[0]. childNodes[1].childNodes[0].getAttribute('src'));
L'alert me donne la bonne source, mais impossible de l'afficher.
J'ai loupé un truc ?
wako
Envoyé par : laurentj
Date : 07/06/2006 17:32
il y a déjà un body dans about:blank...
Envoyé par : wako
Date : 07/06/2006 17:46
J'ai essayer sans la création du noeud body, et a mon grand désaroi, rien ne change.
Suis triste :'(
wako
Envoyé par : thefab
Date : 07/06/2006 21:42
Et si tu ouvres directement l'URL de l'image dans un <browser> et que l'imprimes ?
Envoyé par : wako
Date : 08/06/2006 08:49
Bah en théorie cela devrai fonctionner, mais je n'ai pas qu'une image :'(
Et il faut que je mette un peu de forme également.
Donc au final, soit je creer une page avec toutes les images que j'insere dans un iframe, soit je réussi à faire cet appercu avant impression, chose que j'aimerai faire car j'ai d'autres information à imprimer sur un autre onglet (du contenu dans des textbox qui sont ensuite imprimer sous forme de tableau).
Je vais tenté jusqu'a 12h de faire cet aperçu, sinon je changerai de solution.
wako
Envoyé par : thefab
Date : 08/06/2006 09:30
Désolé j'ai lu au singulier, pas vu que tu voulais imprimer plusieurs images.
Envoyé par : wako
Date : 08/06/2006 09:50
c'est vraiment bizar quand même.
Je navigue dans mon iframe, mais impossible de creer du contenu dedans ...
Je comprend pas pourquoi il m'emmerde, sa semble si simple sur le papier!
wako
Envoyé par : wako
Date : 08/06/2006 10:27
J'ai compris
Enfin, je pense que c'est la cause, enfin, sa ne me semble pas illogique et sa fonctionne maintenant.
J'utilisais :
document.createElement("img");
Or je n'etais plus dans le même document, j'ai donc tester :
preview.contentDocument.createElement("img")
Et maintenant cela fonctionne.
Je dirais donc qu'il faut utiliser les methodes associés au document qu'il faut modifier pour que les elements s'y integre. Quelqu'un pourrait confirmer ? refuter (avec une explication du pk sa ne marche pas alors :p) ?
Merci à vous.
wako
Envoyé par : thefab
Date : 08/06/2006 10:39
Oui c'est vrai que les éléments DOM doivent être créés dans le document auquel ils appartiennent. C'est en partie pour celà qu'ils doivent être créé avec des méthodes createXXX() et non pas avec new XXX().
Bien vu, c'est vrai que par après ça paraît évident.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.