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]