[Résolu][Calc] Imprimer deux feuilles

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 !
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

[Résolu][Calc] Imprimer deux feuilles

Message par troumad »


La modération vous a écrit: Votre titre : Les balises s'orthographient avec la première lettre en majuscule. Nous avons corrigé la balise [Calc].
Suppression de la balise [basic] et le terme Macro qui sont inutiles.

Bonjour

Sur le fichier joint, je voudrais mettre un bouton pour imprimer les deux premières pages en recto-verso.
Pour le moment, il suffit de dire que je souhaite imprimer tout le document car seules ces deux pages ont une zone d'impression. Pour les autres pages j'ai défini "aucune" zone d'impression.

J'ai beau essayer de regarder "OpenOffice.org Macros Explained, OOME Third Edition" autour de la page 351 , ou regarder votre aide comme http://www.openoffice.org/api/docs/comm ... table.html, je n'arrive qu'à imprimer une seule page.
j'ai déjà gaspillé beaucoup de papier et d'encre dans les tests, j'ai configuré mon PC pour avoir une imprimante pdf (imprimer génère un pdf) pour continuer les tests. Maintenant, j'imprime la page que je souhaite. Le point expliqué à la page 349 au point 13.15.3 est assez déboussolant : on ne peut imprimer que la page active... Il faudrait changer de page active quand on passe de l'impression d'une page à l'autre (entre les deux "ranges" de la fonction 322 de la page 349 par exemple).

Je me demande ce qui se passe si j'arrive à sélectionner les deux premières pages. En effet, si je sélectionne les deux première page, par défaut, ça m'imprime bien ce que je veux. Sinon, ça n'imprime que la page active.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 08 juil. 2020 06:10, modifié 3 fois.
Raison : Ajout de la coche verte
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
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: [Calc] Imprimer deux pages

Message par Dude »

Salut,
Feuille_Chronique.ods
Le fichier d'exemple plein de tests de macro
Franchement, comment penses-tu être aidé avec ce type d'exemple ?
Le fichier est sans doute très clair... pour toi.

Donc, merci de fournir un document exhaustif et limité à ta seule problématique.
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

Re: [Calc] Imprimer deux pages

Message par troumad »

Alors voici un fichier minimaliste.
Il y a juste 3 pages avec les zones d'impressions définies pour n'imprimer que les 2 premières pages si on demande de tout imprimer.

Mon souhait est d'imprimer les deux premières pages en recto-verso automatiquement en appuyant sur un bouton. Comme je suis parti dans plein de direction pour faire les tests et que rien n'a été concluant, je ne rajoute pas de macro dans mon fichier. je dirais même qu'au point où j'en suis, je dirais que c'est impossible ou il me manque une information quelque part. Cette information devrait exister car il est possible de faire ce que je souhaite en passant par la boite de dialogue d'impression.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
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: [Calc] Imprimer deux pages

Message par Dude »

troumad a écrit :Il y a juste 3 pages avec les zones d'impressions
Non, il s'agit de 3 feuilles.
Ce qui n'est pas la même chose puisque une feuille peut être imprimée sur plusieurs pages.
troumad a écrit :Cette information devrait exister car il est possible de faire ce que je souhaite en passant par la boite de dialogue d'impression.
Et bien sûr, ajouter une copie écran de ce fameux dialogue.
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

Re: [Calc] Imprimer deux pages

Message par troumad »

Voici la boite de dialogue d'impression, je dois aller dans "plus d'options" demander d'imprimer toutes les feuilles et en recto-verso sur le bord long.

Sans avoir empêché par le jeu des zones d'impression l'impression sur la page 3, je dois sélectionner "Pages : 1-2" à la place de "Toutes les pages".
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
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: [Calc] Imprimer deux pages

Message par Dude »

troumad a écrit :je dois sélectionner "Pages : 1-2" à la place de "Toutes les pages".

Code : Tout sélectionner

Sub Main   
   Dim param(2) As New com.sun.star.beans.PropertyValue
   oDoc = ThisComponent

   param(0).Name = "Pages"
   param(0).Value = "1-2"
   param(1).Name = "CopyCount"
   param(1).Value = 1
   param(2).Name = "PaperOrientation"
   param(2).Value = 0                           

   oDoc.Print(param())
End sub
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

Re: [Calc] Imprimer deux pages

Message par troumad »

Merci

Ceci fait parti des tests que j'ai faits, sûrement le premier. Ça n'imprime que la page active. Et pire encore si tu changes la page active juste après le "oDoc.Print(param())", ça imprime la page nouvellement active. Voici ce que j'aimerai imprimer après avoir cliqué sur le bouton en PJ.
Certes, comme tu l'as fait remarquer, je mélange assidument les termes pages et feuilles, mais la copie d'écran montre bien que je souhaitais les feuilles 1 et 2.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
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: [Calc] Imprimer deux pages

Message par Dude »

Sous OpenOffice 4.1.7, ce code fonctionne comme attendu.
J'imprime uniquement les feuilles 1 à 2.
no_problemo.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

Re: [Calc] Imprimer deux pages

Message par troumad »

Je vais essayer de trouver un openoffice pour mon PC, je vais faire le test avec mon gros fichier et sûrement faire une remonté vers LibreOffice. Parce que si c'est ça qui suffit... J'aurais passé beaucoup de temps à trouver autre chose.
Je reviens te dire ce que ça donne dès que j'ai fait le test.

Merci encore.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

Re: [Calc] Imprimer deux pages

Message par troumad »

Il y a une différence de fonctionnement entre ApacheOpenOffice et LibreOffice. Mais, là, je dois être dans le domaine du bug... Parce que chez moi, ça ne marche pas comme chez toi.

Sous AOO, chaque fois que j'exécute le code, je n'ai QUE la première feuille lorsque j'exécute ton code.
Sous LibO, chaque fois que j'exécute le code, j'imprime la feuille active (une page vierge si je suis sur la 3e feuille).
La modération vous a écrit: Merci de ne pas poster plusieurs messages à la suite. Vous disposez d'un bouton ÉDITER en haut à droite de chaque message et d'un autre bouton ajout si vous désirez ajouter un complément lorsqu'il n'y a pas de réponse.

Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
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: [Calc] Imprimer deux pages

Message par Dude »

troumad a écrit :Sous AOO, chaque fois que j'exécute le code, je n'ai QUE la première feuille lorsque j'exécute ton code.
Comment a été installé AOO ?
As-tu suivi le tuto ?

Et profites-en pour corriger ton titre qui ne reflète absolument pas le problème exposé.
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

Re: [Calc] Imprimer deux feuilles

Message par troumad »

Bonjour

Si la documentation de l'installation est ici : https://wiki.openoffice.org/wiki/FR/FAQ/Generale/006 , j'ai le système rpm, donc, je n'ai pas de doc.
J'ai utilisé une méthode que j'utilise depuis plusieurs années avec les installations pour test. C'est à dire que je décompresse le fichier, je vais dans le répertoire où se trouvent les rpm puis je fais un : "urpmi *.rpm"
Ce n'est pas une méthode générique pour les utilisateurs de rpm, mais la méthode de ceux qui utilisent urpmi (il y a aussi dnf, yum... pour la gestion des rpm). S'il le faut, je peux écrire ma méthode d'installation pour les rpm ou je peux essayer de traduire la partie rpm de cette page : https://wiki.openoffice.org/wiki/Docume ... n_Linux%3F . C'est la méthode que j'utilise en gros.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
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: [Calc] Imprimer deux feuilles

Message par Dude »

L'impression dans Calc dépend du dialogue Outils > Options :
Capture.PNG
Sous AOO, un paramètre est par défaut coché sur "Imprimer uniquement les feuilles sélectionnées".

Donc, il faut agir sur cette option via le service com.sun.star.sheet.GlobalSheetSettings.

Code : Tout sélectionner

Sub Main  
	Dim param(2) As New com.sun.star.beans.PropertyValue
	oDoc = ThisComponent
	
	param(0).Name = "Pages"
	param(0).Value = "1-2"
	param(1).Name = "CopyCount"
	param(1).Value = 1
	param(2).Name = "PaperOrientation"
	param(2).Value = 0                           

	oGSS = createUnoService("com.sun.star.sheet.GlobalSheetSettings")
	oGSS.PrintAllSheets = True
	oDoc.Print(param())
	oGSS.PrintAllSheets = False
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

Re: [Calc] Imprimer deux feuilles

Message par troumad »

Merci !

C'est ce qu'il me manquait...
Pour ne pas modifier le paramétrage, il n'est pas mieux de rajouter cette variable mem comme ceci :

Code : Tout sélectionner

   oGSS = createUnoService("com.sun.star.sheet.GlobalSheetSettings")
   mem=oGSS.PrintAllSheets
   oGSS.PrintAllSheets = True
   oDoc.print(printoptions())
   oGSS.PrintAllSheets = mem
Comme ça, on remet l'option à son état d'origine.

Et pourquoi il n'est pas utile de faire un dim oGSS avant ?
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)