Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# Impression, nsIWebBrowser, nsIDOMDocument et nsIWebBrowserPrint

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

# Re: Impression, nsIWebBrowser, nsIDOMDocument et nsIWebBrowserPrint

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 ?

# Re: Impression, nsIWebBrowser, nsIDOMDocument et nsIWebBrowserPrint

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.

# Re: Impression, nsIWebBrowser, nsIDOMDocument et nsIWebBrowserPrint

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

# Re: Impression, nsIWebBrowser, nsIDOMDocument et nsIWebBrowserPrint

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.