Envoyé par : Sebdesf
Date : 26/01/2007 11:55
Bonjour,
J'ai embarqué Mozilla dans une appli java et j'ai des soucis pour imprimer (utilisation de nsIWebBrowserPrint). Je ne m'y connais pas du tout en xpcom alors peut-être pourrez-vous m'aider, ci-dessous le bout de code :
public Main(String[] args) { // On embarque Mozilla (ok) Display display = new Display(); Shell shell = new Shell(display); shell.setSize(400, 400); shell.open(); final MozillaBrowser browser = new MozillaBrowser(shell,SWT.BORDER); browser.setBounds(shell.getClientArea()); // Chargement de l'url à imprimer (ok) browser.setUrl("http://www.google.com"); browser.addProgressListener(new ProgressListener() { public void completed(ProgressEvent event) { // On récupère le DOM (ok) nsIDOMDocument doc = browser.getDocument(); nsIWebBrowser wb = browser.getWebBrowser(); // On récupère l'imprimante (semble ok) nsIInterfaceRequestor ifr = (nsIInterfaceRequestor) wb.queryInterface(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID); nsIWebBrowserPrint wp = (nsIWebBrowserPrint) ifr.getInterface(nsIWebBrowserPrint.NS_IWEBBROWSERPRINT_IID); nsIPrintSettings ps = wp.getGlobalPrintSettings(); // On imprime, ici problème: la fenêtre pour choisir l'imprimente apparaît, je clique sur ok pour lancer l'impression // et rien ne se passe, la fenêtre disparait, pas de tâche d'impression de lancée, bref rien... wp.print(ps,null); } });
Une idée ? J'obtiens bien le document nsIDOMDocument, j'obtiens bien nsIWebBrowserPrint (avec une fenêtre pour choisir l'imprimante qui apparaît à l'appel de "print") mais rien ne sort.
Je me demande notemment si mon lien entre nsIWebBrowser, nsIDOMDocument et nsIWebBrowserPrint d'un point de vu xpcom est bon ?
Suis preneur de toutes suggestions parceque ça fait un petit moment maintenant que je me casse la tête sans succès :)
Sébastien
Envoyé par : laurentj
Date : 31/01/2007 11:50
peut être aussi qu'il faut configurer les prefs qui vont bien pour que gecko sache vers quoi lancer l'impression ? L'as tu fait ?
Envoyé par : Sebdesf
Date : 01/02/2007 16:54
Avant de lancer ws.print j'ai essayé ça :
ps.setPrinterName("nom de l'imprimante");
Mais ça ne change rien. Je me dis qu'à partir du moment ou une fenêtre apparaît pour que je choisisse l'imprimante et autres préférences (options) ça ne sert à rien de le renseigner nsIPrintSettings. Mais peut-être ai-je tord ? Quoi qu'il en soit dans le cas contraire setPrinterName ne suffit pas.
Envoyé par : snotling
Date : 04/07/2007 22:03
Pour information, dans le même contexte Java/XULRunner, je ne suis parvenu à imprimer qu'en spécifiant :
printSettings.setShowPrintProgress(false);
Envoyé par : Ner0lph
Date : 11/07/2007 00:24
Peut-être que c'est toi qui doit lancer manuellement (avec du code, donc) la tâche d'impression, après avoir récupéré les valeurs de la boite d'impression ? Ce n'est qu'une supposition.
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.