IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Pourquoi la même procédure ne produit pas le même résultat selon le document ?


Sujet :

OpenOffice & LibreOffice

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut Pourquoi la même procédure ne produit pas le même résultat selon le document ?
    Bonjour,

    je teste les styles de ligne, j'ai trouvé un site sympa avec des exemples qui vont bien, seulement voilà, quand je suis en mode exemple-test-debug tout va bien, et quand je copie-colle le même code vers un autre document ça ne va plus du tout !

    Démonstration, au niveau du style, pas de la couleur (une histoire avec le VBASupport dont j'ai déjà parlé et je n'ai pas inclus le code qui gère ça pour faire un copier/coller à 100% identique) :
    - en haut le résultat du code exécuté dans le document de "prod" ;
    - en bas l'exécution du même code dans un document de test :
    Nom : bug_dash.png
Affichages : 191
Taille : 40,5 Ko

    Moi y en a perdre mon latin, moi y en a plus savoir quoi et où chercher...

    Et moi être très fatigué de tout ça parce que ça fait des heures que je suis là-dessus !

    Ah, le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    option explicit
     
    const ZERO = 0
     
    Sub oPositionShape( oShape as Object, Left as Integer, Top as Integer, Length as Integer, Height as Integer )
    'http://openoffice3.web.fc2.com/OOoBasic_General4.html#OOoGSSP00c2
    '     oShape.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
         oShape.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE
    'msgbox Left & "--" & Top & "--" & Length & "--" & Height
     
         Dim oPos as new com.sun.star.awt.Point
         oPos.X = Left
         oPos.Y = Top
         oShape.setPosition( oPos )
         Erase oPos
     
         Dim oSize as new com.sun.star.awt.Size
         oSize.Width  = Length
         oSize.Height = Height
         oShape.setSize( oSize )
         Erase oSize
    End Sub
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub oAddLineShape
    	Dim oLine as Object
    	Dim i as Long
    	dim oDwImpPage as object
    		oDwImpPage = ThisComponent.getDrawPage()
    		for i = 0 to 10
    			oLine = ThisComponent.createInstance("com.sun.star.drawing.LineShape")
    			oLine.LineColor = RGB(0, 255-20*i,  20*i)
    			oLine.LineWidth = 75
    '			oPositionShape( oLine, 1000, 1000 + i * 1000, 5000, ZERO) ' horizontal OK
    '			oPositionShape( oLine, ZERO, i * 1000, 5000, ZERO) ' horizontal OK démarre à 0,0 et descend, impec !
    '			oPositionShape( oLine, 1000 + i * 1000, ZERO+i*1000, ZERO, 5000) ' vertical OK !
    			oPositionShape( oLine, 1000 + i * 1000, 1000, ZERO, 5000) ' vertical OK !
    			oLine.Name = "oline_" & i
    			oDwImpPage.add(oLine)
    			Select case i
    				case 0
    'tous les case x commençaient par ces deux lignes commentées (et ce case 0 n'a rien d'autre)				
    '					oLine.LineStartName = ""
    '					oLine.LineEndName = ""
    				case 1
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "Ultrafine Dashed"
    				case 2
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "Fine Dashed"
    				case 3
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "Fine Dotted"
    				case 4
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "Line with Fine Dots"
    				case 5
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "Fine Dashed (var)"
    				case 6
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "3 Dashes 3 Dots (var)"
    				case 7
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "Ultrafine Dotted (var)"
    				case 8
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "Line Style 9"
    				case 9
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "2 Dots 1 Dash"
    				case 10
    					oLine.LineStyle = com.sun.star.drawing.LineStyle.DASH
    					oLine.LineDashName = "Dashed (var)"
    			End Select
    		next i 
    End Sub
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Bonsoir,

    ce problème n'ayant pas l'air de passionner les foules, je continue en solitaire et j'ai découvert autre chose : j'arrive, dans un autre bout de code, à faire afficher des dashes_lines mais on dirait que l'implémentation a un souci, comme si deux lignes avaient été inversées quelque part (ce qui me fait supposer qu'il y a plusieurs sous-routines pour faire la même chose, sous-routines quelque part dans l'immonde foutoir de com.sun.star... [immonde foutoir car pour s'y retrouver là-dedans, une chatte n'y retrouverait pas ses petits, comme on dit]).

    Démonstration avec une petite image, où l'on voit à gauche les dashes_lines affichées, et à droite ce que j'ai demandé : on voit bien qu'il y a une inversion entre Fine et UltraFine. Comment cela est-il possible ?
    Nom : 4_dashes.png
Affichages : 165
Taille : 48,6 Ko

    Le (bout de) code concerné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
          oDoc.add(oDraw) ' oDraw c'est thisComponent.createInstance("com.sun.star.drawing.TextShape")
          ' ce qui suit DOIT être après le .add
          with oDraw
               .SetString(txt) 
               .LineStyle = 2 ' NONE SOLID DASH
    		if .LineStyle = 2 then
    		    .LineDashName = "Ultrafine Dashed" '- ?
    '		    .LineDashName = "Fine Dashed" '- ?
    '		    .LineDashName = "Fine Dotted" 'ok - 3
    '		    .LineDashName = "Line with Fine Dots" 'ok - 4
    		end if
    	  .CharFontName = "DejaVu Sans"
              .CharColor = &h102090   
              .CharHeight = 24
           end with
    Les numéros au bout des lignes sont censés correspondre à l'énumération du code que j'ai posté précédemment, et où on voit bien sur la bonne image des lignes verticales que l'UltraFine est bien UltraFine.

    Il doit y avoir de ces sacs de nœuds quand on appuie sur F5, je vous raconte pas...

    [EDIT]
    J'ai fait une autre image du fonctionnement du code du post précédent, avec les lignes en mode horizontal, et j'ai adapté les vues de manière à bien mettre les choses en face, le code et les lignes dessinées.
    Je vous laisse méditer là-dessus, en comparant avec l'image plus haut ; les constantes sont les mêmes, alors si quelqu'un comprend pourquoi les résultats ne le sont pas, il est le bienvenu.
    Nom : 11_lignes_horizontales_OK.jpg
Affichages : 172
Taille : 133,9 Ko
    [/EDIT]
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Salut,

    ça avance ! Ce problème est lié au document (source : un document Word en provenance d'un imprimeur, utilisé pour faire la mise en page de la couverture d'un livre) !

    Comment je m'en suis rendu compte ? Je suis parti d'un document vierge de chez vierge, auquel j'ai juste rajouté un module (test_addlines) ne contenant que le code d'affichage des lignes, le code d'une procédure pour positionner les lignes et le code de la procédure de lancement : tout est parfait (oui, j'ai changé l'orientation des lignes par rapport au premier post).
    Nom : test_addlines_OK.png
Affichages : 170
Taille : 27,4 Ko

    Ensuite j'ai créé des copies du document d'origine, et step by step je les ai dépouillées jusqu'à ce qu'il ne lui reste plus rien, et à chaque fois je rajoutais le module créé précédemment, et ça foirait toujours...
    Nom : test_addlines_KC.png
Affichages : 168
Taille : 38,7 Ko

    Sur l'image on voit encore le nom de la section qui embarquait les macros d'origine (Couverture_JPS), mais elle a bien été vidée puis supprimée.
    J'ai même fouillé dans Fichier / Propriétés / Propriétés personnalisées, où j'ai trouvé qu'il y traînait encore des propriétés du document d'origine (des variables, genre "Nom Hauteurs Type Texte Valeur 200", rien d'important mais quand même, question sécurité c'est moyen...)
    Le fait de les virer a fait que l'affichage de l'alerte de sécurité à propos de la présence de macros au lancement du document a disparu (présente jusqu'à présent), mais ça ne règle pas le problème pour autant.

    J'ai carrément dupliqué ce document censé être vide vers un autre avec un nouveau nom, le bug est toujours là !
    Il doit y avoir des trucs planqués dans des fichiers cachés de paramètres de je ne sais trop quoi, je suis en train de me dire que j'irai plus vite à démarrer d'un document vierge et lui ajouter les macros et boutons du document moisi...

    À suivre...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Ce soir je suis parti d'un document vierge auquel j'ai ajouté les macros de l'imprimeur, ma macro de test des bordures, j'ai rajouté par copier-coller les 6 boutons nécessaires au fonctionnement du bazar, j'ai testé les bordures et, miracle !, tout est parfait !


    Ce problème était donc bien lié au document ! C'est terrible de vivre des trucs comme ça, et d'y passer tout ce temps, tout ça pour rien, au final...

    Reste à voir pourquoi/comment les bordures sont parfois inversées par rapport à ce qui est demandé par le code (post d'hier à 19 h 30)...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Reste à voir pourquoi/comment les bordures sont parfois inversées par rapport à ce qui est demandé par le code (post d'hier à 19 h 30)...
    Hé bien c'est le mystère le plus complet :

    Nom : le_même_code.png
Affichages : 159
Taille : 17,9 Ko

    Vous voyez ici le résultat de l'exécution d'exactement le même code dans deux documents différents ; je vous laisse méditer sur la 3e ligne en partant du haut...

    Ce qui veut dire, au final, que le code n'est pas seul responsable du rendu : il doit y avoir tout un tas d'autres trucs qui interfèrent (lesquels ? On ne sait pas mais on l'a bien vu hier avec la démonstration du document venant de chez l'imprimeur), au bout du compte ces choses sont de moins en moins fiables...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/12/2012, 13h14
  2. Réponses: 8
    Dernier message: 23/06/2009, 20h31
  3. Réponses: 1
    Dernier message: 10/03/2009, 22h54
  4. Pas le même monde entre un dev Action Script et les autres, pourquoi ?
    Par berceker united dans le forum ActionScript 3
    Réponses: 8
    Dernier message: 20/07/2008, 00h21
  5. Réponses: 12
    Dernier message: 03/03/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo