Bonjour,
je suis en train de tester les classes open office.
c'est encourageant, pour ce que je voudrais en faire.
Je bute sur une traduction de macro. Je me suis inspiré de la méthode
Imprime pour créer une autre
méthode qui s'appellerait Change_Printer
voici le code la méthode Imprimer :
PROCEDURE Imprimer(nNbCopies=1,sListePage est une chaîne = "")
// Paramétrage de l'impression
ParamImpression est un tableau de 1 objet Automation dynamique
// Nombre de copies du document
ParamImpression[1] =
:oServiceManager>>Bridge_GetStruct("com.sun.star.beans.PropertyValue")
ParamImpression[1]>>Name = "CopyCount"
ParamImpression[1]>>Value = nNbCopies
// Pages imprimées
SI sListePage<>"" ALORS
TableauAjoute(ParamImpression)
ParamImpression[2] =
:oServiceManager>>Bridge_GetStruct("com.sun.star.beans.PropertyValue")
ParamImpression[2]>>Name = "Pages"
ParamImpression[2]>>Value = sListePage
FIN
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques TREPP
Pour info, voici la macro open office, et ma traduction. MACRO : REM ***** BASIC *****
Sub Main
End Sub
sub test rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "Printer" args1(0).Value = "PDFCreator"
rem ---------------------------------------------------------------------- dim args2(1) as new com.sun.star.beans.PropertyValue args2(0).Name = "Copies" args2(0).Value = 1 args2(1).Name = "Collate" args2(1).Value = false
-- Jacques TREPP Albygest 3, rue Jean Mermoz 81160 ST-JUERY (enlevez 'pasdespam' pour me joindre)
Pour info, voici la macro open office, et ma traduction.
MACRO :
REM ***** BASIC *****
Sub Main
End Sub
sub test
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Printer"
args1(0).Value = "PDFCreator"
rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Collate"
args2(1).Value = false
Pour info, voici la macro open office, et ma traduction. MACRO : REM ***** BASIC *****
Sub Main
End Sub
sub test rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "Printer" args1(0).Value = "PDFCreator"
rem ---------------------------------------------------------------------- dim args2(1) as new com.sun.star.beans.PropertyValue args2(0).Name = "Copies" args2(0).Value = 1 args2(1).Name = "Collate" args2(1).Value = false
Le dispatcher>>executeDispatch, ce n'est pas sur tArguments mais sur un second tableau, non ?
Il faut appeler 2 fois la fonction avec 2 tableaux d'arguments différents, je pense (le 2ème tableau donne par exemple le nombre de copies)
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Romain PETIT
Dans son message précédent, Jacques TREPP a écrit : (je remets dans le bon fil...) cf : <46f386a7$0$10641$
Merci, Romain,
je suis un peu dégouté de ces traductions. Ne parlons pas de l'import de windev (10). si je crée un fichier VBP, il ne fait aucun traitement. Si c'est un BAS, il me propose d'intégrer le code, mais ne fait ... rien ! :)
Je te donne pour exemple le code d'une macro qui imprime le document courant, et la traduction faite dans la classe windev, et qui fonctionne :
[...]
c'est bien dommage car l'utilisation d'OpenOffice me parait de plus en plus incontournable.
Donc si je comprend bien ça marche après avoir modifié la traduction automatique ? Tu trouves étonnant que ces bidules d'importation ne marchent pas tout seuls :-)
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Dans son message précédent, Jacques TREPP a écrit :
(je remets dans le bon fil...)
cf : <46f386a7$0$10641$426a74cc@news.free.fr>
Merci, Romain,
je suis un peu dégouté de ces traductions. Ne parlons pas de l'import de
windev (10). si je crée un fichier VBP, il ne fait aucun traitement. Si c'est
un BAS, il me propose d'intégrer le code, mais ne fait ... rien ! :)
Je te donne pour exemple le code d'une macro qui imprime le document courant,
et la traduction faite dans la classe windev, et qui fonctionne :
[...]
c'est bien dommage car l'utilisation d'OpenOffice me parait de plus en plus
incontournable.
Donc si je comprend bien ça marche après avoir modifié la traduction
automatique ?
Tu trouves étonnant que ces bidules d'importation ne marchent pas tout
seuls :-)
A+
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Dans son message précédent, Jacques TREPP a écrit : (je remets dans le bon fil...) cf : <46f386a7$0$10641$
Merci, Romain,
je suis un peu dégouté de ces traductions. Ne parlons pas de l'import de windev (10). si je crée un fichier VBP, il ne fait aucun traitement. Si c'est un BAS, il me propose d'intégrer le code, mais ne fait ... rien ! :)
Je te donne pour exemple le code d'une macro qui imprime le document courant, et la traduction faite dans la classe windev, et qui fonctionne :
[...]
c'est bien dommage car l'utilisation d'OpenOffice me parait de plus en plus incontournable.
Donc si je comprend bien ça marche après avoir modifié la traduction automatique ? Tu trouves étonnant que ces bidules d'importation ne marchent pas tout seuls :-)
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Jacques TREPP
ça y est : je l'ai eu ! MACRO : sub change_printer rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "Printer" args1(0).Value = "PDFCreator" dispatcher.executeDispatch(document, ".uno:Printer", "", 0, args1()) end sub TRADUCTION QUI MARCHE (je me la pète, là) PROCEDURE Changer_imprimante(NomPrinter)
Document est un objet OLE dynamique
dispatcher est un objet OLE dynamique
ParamImpression est un tableau de 1 objet Automation dynamique
-- Jacques TREPP Albygest 3, rue Jean Mermoz 81160 ST-JUERY (enlevez 'pasdespam' pour me joindre)
ça y est : je l'ai eu !
MACRO :
sub change_printer
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Printer"
args1(0).Value = "PDFCreator"
dispatcher.executeDispatch(document, ".uno:Printer", "", 0, args1())
end sub
TRADUCTION QUI MARCHE (je me la pète, là)
PROCEDURE Changer_imprimante(NomPrinter)
Document est un objet OLE dynamique
dispatcher est un objet OLE dynamique
ParamImpression est un tableau de 1 objet Automation dynamique
ça y est : je l'ai eu ! MACRO : sub change_printer rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "Printer" args1(0).Value = "PDFCreator" dispatcher.executeDispatch(document, ".uno:Printer", "", 0, args1()) end sub TRADUCTION QUI MARCHE (je me la pète, là) PROCEDURE Changer_imprimante(NomPrinter)
Document est un objet OLE dynamique
dispatcher est un objet OLE dynamique
ParamImpression est un tableau de 1 objet Automation dynamique