[Résolu][Basic] Imposer une impression en recto uniquement

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
natorp
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 24 nov. 2009 18:31

[Résolu][Basic] Imposer une impression en recto uniquement

Message par natorp »

Bonjour à toutes et tous

Je suis au boulot avec une imprimante en réseau qui est paramétrée en Recto/Verso
peut-on, par l'intermédiaire d'une macro, forcer l'impression (calc ou writer) en Recto ?

Merci pour votre aide, cordialement, Gérard
Dernière modification par natorp le 14 mars 2018 09:23, modifié 4 fois.
OOo 4.1.0 sous Win XP (imposé par notre administration)
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 957
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Calc ou Writer] Imprimer en recto

Message par luky-luke »

Bonjour
Une recherche avec le mot impression et...
Imprimer toutes les feuilles
donne le lien vers le site anglophone
Advanced printing macro's

Et un bout de code trouvé dans le fil anglais

Code : Tout sélectionner

Sub Main
   REM Set backgroundImage-option in DocumentSettings to True
   DIM oDoc, oSettings AS Object
   oSettings = oDoc.createInstance("com.sun.star.text.DocumentSettings")
   oSettings.PrintPageBackground = TRUE
End Sub
Le tout en moins de 5 minutes. Le dialogue recherche n'est pas là pour joli dans le décor :wink:
 Ajout : A vouloir tirer plus vite que son ombre, on fini par écrire des bêtises (sur le fond (de la question)) :lol: 
Cordialement
Luke
Dernière modification par luky-luke le 26 févr. 2018 19:55, modifié 1 fois.
LibO 7.4.7.2 Raspberry pi (Trixie) et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc ou Writer] Imprimer en recto

Message par Hubert Lambert »

Bonjour,

Essaye ceci :

Code : Tout sélectionner

    doc = thiscomponent
    dim printoptions(0) as new com.sun.star.beans.PropertyValue
    printoptions(0).Name = "DuplexMode"
    printoptions(0).Value = com.sun.star.view.DuplexMode.OFF
    doc.print(printoptions())
http://www.openoffice.org/api/docs/comm ... DuplexMode

Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
natorp
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 24 nov. 2009 18:31

Re: [Calc ou Writer] Imprimer en recto

Message par natorp »

Bonjour

Merci Luke et Hubert, mais :?

luke : quand je lance la macro que tu as mis en ligne j'ai cette erreur "variable d'objet non définie" à la ligne :

Code : Tout sélectionner

oSettings = oDoc.createInstance("com.sun.star.text.DocumentSettings")
Hubert : avec la macro que tu as mis en ligne, cela ne m'imprime que la première page, comment faire pour associer le code que tu m'as fourni sur un autre post qui permet d'imprimer toutes les feuilles :

Code : Tout sélectionner

doc = thiscomponent
    gss = createunoservice("com.sun.star.sheet.GlobalSheetSettings")
    allsheets = gss.PrintAllSheets
    gss.PrintAllSheets = True
    doc.print(array())
    gss.PrintAllSheets = allsheets
Mon but final étant d'imprimer toutes les feuilles d'un document en recto via une macro associée à un bouton

Merci à vous, cordialement, Gérard
OOo 4.1.0 sous Win XP (imposé par notre administration)
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 957
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Calc][Writer] Imprimer en recto

Message par luky-luke »

Bonjour
natorp a écrit :"variable d'objet non définie"
C'est normal, il faut ajouter la ligne suivante

Code : Tout sélectionner

oDoc = ThisComponent
mais ce bout de code ne concerne que l'arrière plan de la page... Ben oui, j’étais à coté de la plaque :lol:
natorp a écrit :cela ne m'imprime que la première page
Pour imprimer toute les pages, il y a une petite nuance dans le compte des pages entre [Calc] et [Writer]
Pour [Calc]

Code : Tout sélectionner

    Feuilles = ThisComponent.sheets.count
dim printoptions(1) as new com.sun.star.beans.PropertyValue
	printoptions(0).Name = "DuplexMode"
	printoptions(0).Value = com.sun.star.view.DuplexMode.OFF
	printoptions(1).Name = "Page"
	printoptions(1).Value = "1-" & Feuilles
	ThisComponent.print(printoptions())
Et pour [Writer]

Code : Tout sélectionner

	Feuilles = ThisComponent.CurrentController.PageCount
dim printoptions(1) as new com.sun.star.beans.PropertyValue
	printoptions(0).Name = "DuplexMode"
	printoptions(0).Value = com.sun.star.view.DuplexMode.OFF
	printoptions(1).Name = "Page"
	printoptions(1).Value = "1-" & Feuilles
	ThisComponent.print(printoptions())
Cordialement
Luke
Dernière modification par luky-luke le 27 févr. 2018 15:56, modifié 1 fois.
LibO 7.4.7.2 Raspberry pi (Trixie) et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
natorp
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 24 nov. 2009 18:31

Re: [Calc][Writer] Imprimer en recto

Message par natorp »

Merci

Tu ne dois pas en être loin, mais, en l'occurrence, j'ai mis ce code dans un fichier calc, et cela n'a imprimé que la 1ère page...
Quand je fais l'aperçu, il y a 20 pages et quand je fais le pas à pas (F8), Feuilles est bien égal à 20 :(

Zut, zut !! merci pour ton aide, cordialement, Gérard
OOo 4.1.0 sous Win XP (imposé par notre administration)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc][Writer] Imprimer en recto

Message par Hubert Lambert »

Code : Tout sélectionner

    doc = thiscomponent
    dim printoptions(0) as new com.sun.star.beans.PropertyValue
    printoptions(0).Name = "DuplexMode"
    printoptions(0).Value = com.sun.star.view.DuplexMode.OFF
    doc.print(printoptions())
+

Code : Tout sélectionner

    doc = thiscomponent
    gss = createunoservice("com.sun.star.sheet.GlobalSheetSettings")
    allsheets = gss.PrintAllSheets
    gss.PrintAllSheets = True
    doc.print(array())
    gss.PrintAllSheets = allsheets
=

Code : Tout sélectionner

    doc = thiscomponent
    gss = createunoservice("com.sun.star.sheet.GlobalSheetSettings")
    allsheets = gss.PrintAllSheets
    gss.PrintAllSheets = True
    dim printoptions(0) as new com.sun.star.beans.PropertyValue
    printoptions(0).Name = "DuplexMode"
    printoptions(0).Value = com.sun.star.view.DuplexMode.OFF
    doc.print(printoptions())
    gss.PrintAllSheets = allsheets
:wink:
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 957
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Calc][Writer] Imprimer en recto

Message par luky-luke »

Re
Décidément je manque de pratique en ce moment et je commets erreur sur erreur, mais je suis bien décidé à reprendre l’entraînement. Désolé...:oops:
Je viens de corriger les deux bouts de code publiés au dessus en donnant la bonne dimension au tableau
dim printoptions(1) as new com.sun.star.beans.PropertyValue
En même temps (comme dirais un gars célèbre) la solution de Hubert Lambert est pas mal :lol:

Cordialement
Luke
Dernière modification par luky-luke le 27 févr. 2018 17:36, modifié 1 fois.
LibO 7.4.7.2 Raspberry pi (Trixie) et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
natorp
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 24 nov. 2009 18:31

Re: [Calc][Writer] Imprimer en recto

Message par natorp »

Re

Merci à vous de bien vouloir m'aider, le code de Hubert imprime bien les 20 feuilles mais pas en recto, elles sont imprimées en Recto/Verso

Cordialement, Gérard
OOo 4.1.0 sous Win XP (imposé par notre administration)
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 957
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Basic] Imposer une impression en recto uniquement

Message par luky-luke »

Rere
Si l'imprimante ne veut pas prendre en compte l'option "DuplexMode" la solution est peut-être d'imprimer feuille par feuille.
Exemple à tester pour [Calc)

Code : Tout sélectionner

	NbFeuilles = ThisComponent.Sheets.Count
	For i = 1 to NbFeuilles
		dim printoptions(0) as new com.sun.star.beans.PropertyValue
		printoptions(0).Name = "Page"
		printoptions(0).Value = i
		ThisComponent.print(printoptions())
		wait 100
	Next
Il y a un temps d'attente dans la boucle histoire que l'imprimante est le temps de créer une file d'attente et que toutes les feuilles soient dans l'ordre.
Cordialement
Luke
Dernière modification par luky-luke le 03 mars 2018 17:50, modifié 1 fois.
LibO 7.4.7.2 Raspberry pi (Trixie) et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Basic] Imposer une impression en recto uniquement

Message par Hubert Lambert »

luky-luke a écrit :Il y a un temps d'attente dans la boucle histoire que l'imprimante est le temps de créer une file d'attente et que toutes les feuilles soient dans l'ordre.
Il est aussi possible d'utiliser l'option Wait pour garantir l'ordre d'impression :) .
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc][Writer] Imprimer en recto

Message par Hubert Lambert »

natorp a écrit :Merci à vous de bien vouloir m'aider, le code de Hubert imprime bien les 20 feuilles mais pas en recto, elles sont imprimées en Recto/Verso
Je viens d'essayer sur une imprimer réseau au boulot, et ça fonctionne correctement.
Je note au passage que l'option "DuplexMode" modifie le paramètre recto/verso pour la session en cours, pas seulement pour le travail demandé. Il faut donc en être conscient pour les impressions suivantes, avec ou sans macro...
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
natorp
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 24 nov. 2009 18:31

Re: [Basic] Imposer une impression en recto uniquement

Message par natorp »

bonjour

Luke : après avoir remplacé le "end if" par "next"
j'ai un message d'erreur lorsque la macro arrive sur i=2 : "sequence element is not assignable by given value !"

Hubert : tu as réussi avec quelle macro ?

Merci pour votre aide, cordialement, Gérard
OOo 4.1.0 sous Win XP (imposé par notre administration)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Basic] Imposer une impression en recto uniquement

Message par Hubert Lambert »

natorp a écrit :Hubert : tu as réussi avec quelle macro ?
https://forum.openoffice.org/fr/forum/v ... 41#p308641
As-tu pu l'essayer ?
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
natorp
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 24 nov. 2009 18:31

Re: [Basic] Imposer une impression en recto uniquement

Message par natorp »

Bonjour Hubert

Oui je l'ai essayé et comme je l'ai écrit en peu plus haut cela m'imprime bien toutes les pages, mais en recto/verso

Cordialement, Gérard
OOo 4.1.0 sous Win XP (imposé par notre administration)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Basic] Imposer une impression en recto uniquement

Message par Hubert Lambert »

Essaie-la peut-être sur une autre imprimante.
Comme ça marche de mon côté, difficile d'aller plus loin.
Par acquit de conscience, copie ici le code exact que tu utilises, une coquille s'y est éventuellement glissée...
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
natorp
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 24 nov. 2009 18:31

Re: [Basic] Imposer une impression en recto uniquement

Message par natorp »

Merci Hubert,

Il ne me semble pas m'être trompé :

Code : Tout sélectionner

sub Impression
	doc = thiscomponent
    gss = createunoservice("com.sun.star.sheet.GlobalSheetSettings")
    allsheets = gss.PrintAllSheets
    gss.PrintAllSheets = True
    dim printoptions(0) as new com.sun.star.beans.PropertyValue
    printoptions(0).Name = "DuplexMode"
    printoptions(0).Value = com.sun.star.view.DuplexMode.OFF
    doc.print(printoptions())
    gss.PrintAllSheets = allsheets
end sub
Cordialement, Gérard
OOo 4.1.0 sous Win XP (imposé par notre administration)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Basic] Imposer une impression en recto uniquement

Message par Hubert Lambert »

Désolé, je suis un peu à cours d'idée.
Quid d'une autre imprimante ?
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
natorp
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 24 nov. 2009 18:31

Re: [Basic] Imposer une impression en recto uniquement

Message par natorp »

Merci Hubert

Je clôture, tant pis

Cordialement, Gérard
OOo 4.1.0 sous Win XP (imposé par notre administration)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26242
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu][Basic] Imposer une impression en recto uniqueme

Message par Dude »

Chez nous, ce paramétrage est fixé volontairement par une stratégie réseau.
Si tu n'as pas les droits suffisants, tu ne pourras pas modifier ce paramètre.
Dans un cadre Agenda21 et économie de papier, je ne comprends pas l'intérêt de forcer du recto.
tomatoes
Membre hOOnoraire
Membre hOOnoraire
Messages : 100
Inscription : 31 mai 2010 11:58

Re: [Résolu][Basic] Imposer une impression en recto uniquement

Message par tomatoes »

Bonjour

Pour répondre à Dude on fait un modèle de document avec plusieurs pages mais des fois chaque page doit être donnée ou envoyée à des destinataires différents (et on veut pas faire plusieurs documents car on veut que ce soit regroupé sur un seul pour tout avoir au même endroit).

En tout cas dans mon cas c'était cela.

De mon côté le passage de la propriété DuplexMode à false a suffit.


Bonne après midi
Libre office 24.2.6 sous Windows 11
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12895
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: [Résolu][Basic] Imposer une impression en recto uniquement

Message par Bidouille »

Ami fossoyeur,

Déterrage = verrouillage

Merci de ne plus exhumer des sujets résolus il y a plus de 5 ans.