Le 06-06-07, à 15:50, Francois Gatto a écrit :

Bonsoir Pascal Robert ... à moins que ce ne soit le contraire ;)

Pascal est bien mon prénom :-)

Pascal Robert a écrit :
Bonjour,
j'arrive près d'une solution pour remplacer notre vieille solution Word par une solution OOo à une différence près : je veux pouvoir imprimer le résultat d'une fusion (MailMerge) sur une imprimante différente, au choix de l'utilisateur, choix saisi par une application Web.
Présentement, j'utilise les propriétés suivantes pour la fusion :
oObjProps.setPropertyValue("DataSourceName", nomBaseDonnees);
oObjProps.setPropertyValue("Command", nomTableDonnees);
oObjProps.setPropertyValue("CommandType",new Integer(com.sun.star.sdb.CommandType.TABLE)); oObjProps.setPropertyValue("OutputType",new Short(com.sun.star.text.MailMergeType.PRINTER));
oObjProps.setPropertyValue("DocumentURL", cheminDocMaitre);
Mais je ne trouve pas de propriétés pour donner le nom de l'imprimante (ou une queue d'impression). J'ai trouvé la propriété PrintOptions dans la documentation(1) mais je n'ai aucune idée des propriétés que je dois donner à PrintOptions, et si celle-ci me permettra de changer l'imprimante. (1) : http://api.openoffice.org/docs/common/ref/com/sun/star/text/ MailMerge.html
--
Pascal Robert
Spécialiste en informatique/IT Specialist
OS communications informatique inc.
+1 450 676-1238 x28
http://www.os.ca
--------------------------

J'ai vu passer ta demande sur la liste [dba-dev] et sur www.oooforum.org.

Je pense que tu trouveras une idée ici :

http://www.oooforum.org/forum/viewtopic.phtml? t=2042&highlight=printoptions

Il semble qu'il soit impossible de spécifier le nom d'une imprimante lors de la fusion, alors j'ai décidé de sauvegarder les documents fusionnés sur le disque, de les ouvrir et de les imprimer sur l'imprimante voulue. Le problème est que même si je donne un bon nom d'imprimante, ou même un nom qui n'existe pas, XPrintable me retourne toujours « Generic Printer » et imprime sur mon imprimante par défaut.

                try {
                        File[] fichiers = rep.listFiles();
                        for (int i = 0; i < fichiers.length; i++) {
                                File fichier = fichiers[i];
                                PropertyValue[] loadProps = new 
PropertyValue[0];
XComponent xComponent = mxComponentLoader.loadComponentFromURL("file://" + fichier.getAbsoluteFile(), "_blank", 0, loadProps); XTextDocument xDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, xComponent);
                                
XPrintable xPrintable = (XPrintable)UnoRuntime.queryInterface(XPrintable.class, xDoc);
                                PropertyValue[] printerDesc = new 
PropertyValue[1];
                                printerDesc[0] = new PropertyValue();
                                printerDesc[0].Name = "Name";
                                printerDesc[0].Value = "Obelix";
                                xPrintable.setPrinter(printerDesc);
                                PropertyValue[] printOpts = new 
PropertyValue[0];
                                PropertyValue[] props = xPrintable.getPrinter();
                                for (int j = 0; j < props.length; j++) {
                                        System.out.println(props[j].Name + " : 
" + props[j].Value);
                                }
                                xPrintable.print(printOpts);                    
        
                        }
                } catch (Exception e) {
                        System.err.println("Caught UNO Exception: " + e);
                }

Et lors de l'impression des propriétés, Name est toujours égal à « Generic Printer »

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à