Re: [fr-users] Changement parametres d'exportation ou macro dans Draw

2016-12-05 Par sujet Agnès Simonet

Merci pour cette version considérablement enrichie.
Pour les autres formats, la difficulté c'est d'obtenir des infos sur les 
paramètres d'export. En regardant la fenêtre qui s'affiche quand on fait 
Fichier>Exporter pour un format donné on arrive à imaginer ce qui est 
possible. Reste à trouver la syntaxe.

Pour la différence entre "PixelWidth" et "LogicalWidth" j'ai trouvé ça :
"Each graphic filter is supporting a property sequence which is called 
"FilterData" therein you can set the size in pixel with the properties 
"PixelWidth" and "PixelHeight", the logical size (in 1/100mm) can be set 
with "LogicalWidth" and "LogicalHeight"."


Pour avoir la taille de la sélection on peut faire ceci :

'
'calcul des dimensions en mm*100
'où oObj = oDoc.currentController.selection 'collection de toutes les 
formes sélectionnées


Dim x0, y0, x1, y1 As Integer
Dim ObjetLargeur, ObjetHauteur As Integer

x0=oObj(0).Position.X
y0=oObj(0).Position.Y
x1=x0+oObj(0).Size.Width
y1=y0+oObj(0).Size.Height
For i=1 To (oObj.Count-1)
If (oObj(i).Position.Xx1) then 
x1=oObj(i).Position.X+oObj(i).Size.Width
		If ((oObj(i).Position.Y+oObj(i).Size.Height)>y1) then 
y1=oObj(i).Position.Y+oObj(i).Size.Height

Next i

ObjetLargeur=x1-x0
ObjetHauteur=y1-y0
'

Cordialement
Agnès S.

Le 04/12/2016 17:07, Pierre ROUZEAU a écrit :

Merci, c'est ce que je recherchais, mais le premier message n'est pas
arrivé dans ma boite mail.

J'ai modifié les macros pour :

- Exporter chaque page (dans le répertoire courant, avec le nom du
fichier source+le numéro de page)

- Exporter deux images a des définitions différentes pour chaque page

- Avoir en option un nom à la place du numéro de page, stocké dans un
tableau

Le nombre de pixels n'est pris en compte que s'il est entier, les
valeurs décimales ne marchent pas.

J'ai fait deux variantes

- Export2png qui exporte la totalité de chaque page avec une densité de
pixel définie (en dpi)

- ExportSelPng qui n'exporte que ce qui est visible (sélectionner tout),
avec une largeur d'image fixée en pixels

Pour la deuxième variante, on peut en option saisir des tableaux
définissant la largeur de chaque image. Si le tableau n'est pas rempli,
la largeur par défaut est utilisée.

J'ai essayé de faire une variante d'exportation en jpg, dans ce cas il
faut utiliser les variables LogicalHeight et LogicalWidth avec un
coefficient, mais pour une raison inconnue, Je ne peut pas avoir
d'images de plus de 497 pixels de large.

Salutations, Pierre

REM  *  BASIC  *

Sub Export2png 'Exporte la pleine page sur une densité de pixels
REM Filter dependent filter properties
Dim aFilterData (4) As New com.sun.star.beans.PropertyValue
Dim sFileUrl As String
Dim oDoc AS Object
Dim oDrawPage As Object
Dim curFile, aFile, aPage as string
Dim defdpi as integer
Dim cfRed as double
Dim wd, ht as long
'Ce qui suit est un exemple pour nomme les pages (au lieu de p1, p2, etc.)
pageName = array ("Nom_Page_1","Nom_Page_2")

defdpi= 160 ' densité de pixel en dpi export pour la grande image (.p.png)
cfRed = 0.32 'Coefficient de réduction pour l'image réduite (.s.png)

oDoc = thisComponent
curFile = ThisComponent.getURL()
curFile = Left(curFile, Len(curFile)-4) 'Supprime l'extension de fichier
(.odg)

For i = 0 to oDoc.getDrawPages().Count-1  'Balaye toutes les pages
 oDrawPage = oDoc.getDrawPages().getByIndex(i)
 oDoc.CurrentController.setCurrentPage(oDrawPage)
 xObj = oDoc.currentController.currentPage
 ' PARAMETRES D'EXPORTATION
 aFilterData(0).Name = "PixelWidth"
 aFilterData(0).Value = Int(oDrawPage.Width*(defdpi/2540))
 aFilterData(1).Name = "PixelHeight"
 aFilterData(1).Value = Int(oDrawPage.Height*(defdpi/2540))
 ' compression
 aFilterData(2).Name ="Compression"
 aFilterData(2).Value = 9 'de 0 à 9
 ' entrelacement
 aFilterData(3).Name ="Interlaced"
 aFilterData(3).Value = 0
 ' transparence
 aFilterData(4).Name = "Translucent"
 aFilterData(4).Value = false

 aPage = "_p"+ (i+1)
 on error Resume Next
aPage = "_"+pageName(i)
aFilterData(0).Value = arrWidthp(i)
 on error Goto 0
 sFileUrl =  curFile + aPage + ".p.png"
 ExportPng( xObj, sFileUrl, aFilterData() )
 Wait 500
 aFilterData(0).Value = Int(aFilterData(0).Value * cfRed)
 aFilterData(1).Value = Int(aFilterData(1).Value * cfRed)
 on error Resume Next
aFilterData(0).Value = arrWidths(i)
 on error Goto 0
 sFileUrl =  curFile + aPage + ".s.png"
 ExportPng( xObj, sFileUrl, aFilterData() )
 Wait 500
Next i

End Sub


Sub ExportSelPng 'Exporte la selection complete de chaque page sur une
largeur fixée
REM Filter dependent filter properties

Re: [fr-users] Changement parametres d'exportation ou macro dans Draw

2016-12-04 Par sujet Pierre ROUZEAU
Bonsoir, J'ai fait une version (Draw) pour l'exportation jpeg 
(uniquement pour la sélection)


la clef est :

* La valeur LogicalWidth doit être égale à la valeur PixelWidth

* Le MediaType doit être "image/jpeg" et non "image/jpg"

Sub ExportSelJpg
REM Filter dependent filter properties
Dim aFilterData (10) As New com.sun.star.beans.PropertyValue
Dim sFileUrl As String
Dim oDoc AS Object
Dim oDrawPage As Object
Dim curFile, aFile, aPage, aExtp as string
Dim defdpi as integer
Dim cfRed#

aEXtp=".p" 'extension pour image principale
aEXts=".s"

'Nomme les pages, pour remplacer le numéro de page - ce qui suit est un 
exemple

pageName = array ("sens","pose","tapees")
'largeurs par défaut
widthp = 1536 ' Largeur par défaut de la grande image - la hauteur 
s'ajuste automatiquement

widths = 576  ' Largeur par défaut de la petite image
'Tableaux des largeurs si non constantes
arrWidths = array (1536,1200)
arrWidths = array (640,576,512)

oDoc = thisComponent
curFile = ThisComponent.getURL()
curFile = Left(curFile, Len(curFile)-4) 'Supprime l'extension de fichier 
(.odg)


For i = 0 to oDoc.getDrawPages().Count-1  'Balaye toutes les pages

oDrawPage = oDoc.getDrawPages().getByIndex(i)
oDoc.CurrentController.setCurrentPage(oDrawPage)

' PARAMETRES D'EXPORTATION
aFilterData(0).Name = "PixelWidth"
aFilterData(0).Value = widthp

aFilterData(8).Name ="LogicalWidth"

aFilterData(10).Name ="Quality"
aFilterData(10).Value = 85
'Selectionne tous les objets
fDoc   = oDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(fDoc, ".uno:SelectAll", "", 0, Array())

xObj = oDoc.currentController.currentPage
xView = oDoc.currentController
xSelection = xView.selection
If isEmpty (xSelection) Then
xObj = xView.currentPage
Else
xObj = xSelection
End If
on error Resume Next
   aPage = "_"+pageName(i)
   aFilterData(0).Value = arrWidthp(i)
   on error Goto 0
aFilterData(8).Value = aFilterData(0).Value
sFileUrl =  curFile + aPage + aExtp + ".jpg"
ExportJpg( xObj, sFileUrl, aFilterData() )
Wait 500
aFilterData(0).Value = widths
on error Resume Next
   aFilterData(0).Value = arrWidths(i)
   on error Goto 0
   aFilterData(8).Value = aFilterData(0).Value
 sFileUrl =  curFile + aPage + aExts + ".jpg"
ExportJpg( xObj, sFileUrl, aFilterData() )
Wait 500
Next i
oDrawPage = oDoc.getDrawPages().getByIndex(0)
oDoc.CurrentController.setCurrentPage(oDrawPage) 'revient en page 1

End Sub

Sub ExportJpg (xObject, sFileUrl As String, aFilterData)
Dim xExporter
xExporter = createUnoService( "com.sun.star.drawing.GraphicExportFilter" )
xExporter.SetSourceDocument(xObject)
Dim aArgs (2) As New com.sun.star.beans.PropertyValue
Dim aURL As New com.sun.star.util.URL
aURL.complete = sFileUrl
aArgs(0).Name = "MediaType"
aArgs(0).Value = "image/jpeg" 'Et non "image/jpg" !
aArgs(1).Name = "URL"
aArgs(1).Value = aURL
aArgs(2).Name = "FilterData"
aArgs(2).Value = aFilterData
xExporter.filter (aArgs())
End Sub

Salutations, Pierre

Le 04/12/2016 à 17:07, Pierre ROUZEAU a écrit :
Merci, c'est ce que je recherchais, mais le premier message n'est pas 
arrivé dans ma boite mail.


J'ai modifié les macros pour :

- Exporter chaque page (dans le répertoire courant, avec le nom du 
fichier source+le numéro de page)


- Exporter deux images a des définitions différentes pour chaque page

- Avoir en option un nom à la place du numéro de page, stocké dans un 
tableau


Le nombre de pixels n'est pris en compte que s'il est entier, les 
valeurs décimales ne marchent pas.


J'ai fait deux variantes

- Export2png qui exporte la totalité de chaque page avec une densité 
de pixel définie (en dpi)


- ExportSelPng qui n'exporte que ce qui est visible (sélectionner 
tout), avec une largeur d'image fixée en pixels


Pour la deuxième variante, on peut en option saisir des tableaux 
définissant la largeur de chaque image. Si le tableau n'est pas 
rempli, la largeur par défaut est utilisée.


J'ai essayé de faire une variante d'exportation en jpg, dans ce cas il 
faut utiliser les variables LogicalHeight et LogicalWidth avec un 
coefficient, mais pour une raison inconnue, Je ne peut pas avoir 
d'images de plus de 497 pixels de large.


Salutations, Pierre

REM  *  BASIC  *

Sub Export2png 'Exporte la pleine page sur une densité de pixels
REM Filter dependent filter properties
Dim aFilterData (4) As New com.sun.star.beans.PropertyValue
Dim sFileUrl As String
Dim oDoc AS Object
Dim oDrawPage As Object
Dim curFile, aFile, aPage as string
Dim defdpi as integer
Dim cfRed as double
Dim wd, ht as long
'Ce qui suit est un exemple pour nomme les pages (au lieu de p1, p2, 
etc.)

pageName = array ("Nom_Page_1","Nom_Page_2")

defdpi= 160 ' densité de pixel en dpi export pour la grande image 
(.p.png)

cfRed = 0.32 'Coefficient de réduction pour l'image 

Re: [fr-users] Changement parametres d'exportation ou macro dans Draw

2016-12-04 Par sujet Pierre ROUZEAU
Merci, c'est ce que je recherchais, mais le premier message n'est pas 
arrivé dans ma boite mail.


J'ai modifié les macros pour :

- Exporter chaque page (dans le répertoire courant, avec le nom du 
fichier source+le numéro de page)


- Exporter deux images a des définitions différentes pour chaque page

- Avoir en option un nom à la place du numéro de page, stocké dans un 
tableau


Le nombre de pixels n'est pris en compte que s'il est entier, les 
valeurs décimales ne marchent pas.


J'ai fait deux variantes

- Export2png qui exporte la totalité de chaque page avec une densité de 
pixel définie (en dpi)


- ExportSelPng qui n'exporte que ce qui est visible (sélectionner tout), 
avec une largeur d'image fixée en pixels


Pour la deuxième variante, on peut en option saisir des tableaux 
définissant la largeur de chaque image. Si le tableau n'est pas rempli, 
la largeur par défaut est utilisée.


J'ai essayé de faire une variante d'exportation en jpg, dans ce cas il 
faut utiliser les variables LogicalHeight et LogicalWidth avec un 
coefficient, mais pour une raison inconnue, Je ne peut pas avoir 
d'images de plus de 497 pixels de large.


Salutations, Pierre

REM  *  BASIC  *

Sub Export2png 'Exporte la pleine page sur une densité de pixels
REM Filter dependent filter properties
Dim aFilterData (4) As New com.sun.star.beans.PropertyValue
Dim sFileUrl As String
Dim oDoc AS Object
Dim oDrawPage As Object
Dim curFile, aFile, aPage as string
Dim defdpi as integer
Dim cfRed as double
Dim wd, ht as long
'Ce qui suit est un exemple pour nomme les pages (au lieu de p1, p2, etc.)
pageName = array ("Nom_Page_1","Nom_Page_2")

defdpi= 160 ' densité de pixel en dpi export pour la grande image (.p.png)
cfRed = 0.32 'Coefficient de réduction pour l'image réduite (.s.png)

oDoc = thisComponent
curFile = ThisComponent.getURL()
curFile = Left(curFile, Len(curFile)-4) 'Supprime l'extension de fichier 
(.odg)


For i = 0 to oDoc.getDrawPages().Count-1  'Balaye toutes les pages
oDrawPage = oDoc.getDrawPages().getByIndex(i)
oDoc.CurrentController.setCurrentPage(oDrawPage)
xObj = oDoc.currentController.currentPage
' PARAMETRES D'EXPORTATION
aFilterData(0).Name = "PixelWidth"
aFilterData(0).Value = Int(oDrawPage.Width*(defdpi/2540))
aFilterData(1).Name = "PixelHeight"
aFilterData(1).Value = Int(oDrawPage.Height*(defdpi/2540))
' compression
aFilterData(2).Name ="Compression"
aFilterData(2).Value = 9 'de 0 à 9
' entrelacement
aFilterData(3).Name ="Interlaced"
aFilterData(3).Value = 0
' transparence
aFilterData(4).Name = "Translucent"
aFilterData(4).Value = false

aPage = "_p"+ (i+1)
on error Resume Next
   aPage = "_"+pageName(i)
   aFilterData(0).Value = arrWidthp(i)
on error Goto 0
sFileUrl =  curFile + aPage + ".p.png"
ExportPng( xObj, sFileUrl, aFilterData() )
Wait 500
aFilterData(0).Value = Int(aFilterData(0).Value * cfRed)
aFilterData(1).Value = Int(aFilterData(1).Value * cfRed)
on error Resume Next
   aFilterData(0).Value = arrWidths(i)
on error Goto 0
sFileUrl =  curFile + aPage + ".s.png"
ExportPng( xObj, sFileUrl, aFilterData() )
Wait 500
Next i

End Sub


Sub ExportSelPng 'Exporte la selection complete de chaque page sur une 
largeur fixée

REM Filter dependent filter properties
Dim aFilterData (8) As New com.sun.star.beans.PropertyValue
Dim sFileUrl As String
Dim oDoc, fDoc, dispatcher AS Object
Dim oDrawPage As Object
Dim curFile, aFile, aPage as string
Dim defdpi, par as integer
Dim cfRed as double
Dim wd, ht as long
'Nomme les pages, pour remplacer le numéro de page - ce qui suit est un 
exemple
pageName = array 
("sens","pose","tapees","accouplees","battement","volets_pliants","montages_speciaux","types_courants","autres_types","symboles","symboles2","details","loqueteau")

'largeurs par défaut
widthp = 1536 ' Largeur par défaut de la grande image - la hauteur 
s'ajuste automatiquement

widths = 576  ' Largeur par défaut de la petite image
'Tableaux des largeurs si non constantes
arrWidths = array 
(1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,800)

arrWidths = array (640,576,512,512,576,512,512,576,576,512,512,640,172)

oDoc = ThisComponent
curFile = ThisComponent.getURL()
curFile = Left(curFile, Len(curFile)-4) 'Supprime l'extension de fichier 
(.odg)


For i = 0 to oDoc.getDrawPages().Count-1  'Balaye toutes les pages
oDrawPage = oDoc.getDrawPages().getByIndex(i)
oDoc.CurrentController.setCurrentPage(oDrawPage)
' PARAMETRES D'EXPORTATION
aFilterData(0).Name = "PixelWidth"
aFilterData(0).Value = widthp
'aFilterData(1).Name = "PixelHeight"
'aFilterData(1).Value =
' compression
aFilterData(2).Name ="Compression"
aFilterData(2).Value = 9 'de 0 à 9
' entrelacement
aFilterData(3).Name ="Interlaced"
aFilterData(3).Value = 0
' transparence
aFilterData(4).Name = "Translucent"

Re: [fr-users] Changement parametres d'exportation ou macro dans Draw

2016-12-01 Par sujet Agnès Simonet

Bonjour,

Le 30/11/2016 21:37, Pierre ROUZEAU a écrit :


Il n'y a pas d'espoir du coté des macros ? Sans enregistreur, comment
connaitre la syntaxe ?



Si, mais il faut lire les réponses à la question posée ;-)
http://listarchives.libreoffice.org/fr/users/msg28946.html

Cordialement
Agnès S.

--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


Re: [fr-users] Changement parametres d'exportation ou macro dans Draw

2016-11-30 Par sujet Philippe CLÉMENT



Le 30/11/2016 à 21:37, Pierre ROUZEAU a écrit :
Bonsoir, cela ne résout que le problème du format. Pour les batch de 
conversion d'image, J'utilise plutôt IrfanView mais la taille des 
fichiers générée est excessive pour les fichiers PNG, aussi Je ferais 
peut-être un essai.


L'un des plus gros problèmes, c'est la définition de l'image, car un 
fichier de type Draw doit être exporté à la définition native, car une 
conversion de taille fait exploser la taille du fichier à cause du 
lissage des bords et en plus baisse la qualité. Typiquement, si je 
divise le nombre de pixels par 3 ou 4, Je me retrouve avec un fichier 
trois fois plus gros que l'original alors que si j'exporte directement 
à la résolution réduite souhaitée, la taille du fichier est réduite en 
conséquence. Globalement, ça fait une différence de taille de fichier 
qui varie de cinq à dix fois, ce que Je ne peux pas négliger pour une 
publication Internet. Du coup, parfois je préfère utiliser le jpeg, ce 
qui est très peu optimal pour un fichier de dessin vectoriel, mais qui 
se comporte mieux en redimensionnement.


Il n'y a pas d'espoir du coté des macros ? Sans enregistreur, comment 
connaitre la syntaxe ?


Salutations


Le 29/11/2016 à 23:41, bernard schoenacker a écrit :

On Tue, 29 Nov 2016 23:14:07 +0100
Pierre ROUZEAU  wrote:


Bonjour,
Je fais pas mal d'exportation au format PNG depuis draw mais c'est
assez long:
*Draw ne se souvient pas des derniers paramètres utilisés et on doit
resaisir à chaque fois:
- L'extension par défaut de l'exportation est gif et Je n'ai pas
trouvé comment la changer
- Il faut décocher la transparence pour que le fichier exporté soit
lisible
- Quand on change la définition, la taille de la feuille est
modifiée, ce qui fait que la taille de l'image ne change pas, il faut
resaisir la largeur de la feuille pour que le changement soit de
définition soit effectivement pris en compte (pour moi c'est un bug)
- Éventuellement, je changerais bien le taux de compression, mais Je
ne le fais jamais, ça fait une commande de plus et de toutes façons,
le taux de compression natif LO n'est pas très bon

Je ferais bien une macro, ce qui me permettrais de faire des
exportations automatiques en plusieurs définitions, mais
l'enregistreur de macros n'apparait pas dans le menu macro de draw
(je l'ai bien sélectionné dans les options avancées) - il s'affiche
dans writer et calc - Quelqu'un aurait-il une piste pour la syntaxe
d'exportation draw dans une macro ?

salutations

bonjour,

 je vous conseille de passer par le shell et d'employer gif2png

 http://gnuwin32.sourceforge.net/packages/pngutils.htm

 ou d'employer imagemagick qui est également adapté au travail
 par batch ...

 voici comment je compte faire sous linux
 (à adapter pour powershell) :

  for img in $(tree |awk '/gif/ {print$2}'|xargs) ; do gif2png $img 
;done



autrement, je peut prêter un accès sur un serveur à l'aide de
mstsc et d'un compte ftp ou directement via ssh
(mobaxterm ou putty)

slt
bernard






--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


Re: [fr-users] Changement parametres d'exportation ou macro dans Draw

2016-11-30 Par sujet Pierre ROUZEAU
Bonsoir, cela ne résout que le problème du format. Pour les batch de 
conversion d'image, J'utilise plutôt IrfanView mais la taille des 
fichiers générée est excessive pour les fichiers PNG, aussi Je ferais 
peut-être un essai.


L'un des plus gros problèmes, c'est la définition de l'image, car un 
fichier de type Draw doit être exporté à la définition native, car une 
conversion de taille fait exploser la taille du fichier à cause du 
lissage des bords et en plus baisse la qualité. Typiquement, si je 
divise le nombre de pixels par 3 ou 4, Je me retrouve avec un fichier 
trois fois plus gros que l'original alors que si j'exporte directement à 
la résolution réduite souhaitée, la taille du fichier est réduite en 
conséquence. Globalement, ça fait une différence de taille de fichier 
qui varie de cinq à dix fois, ce que Je ne peux pas négliger pour une 
publication Internet. Du coup, parfois je préfère utiliser le jpeg, ce 
qui est très peu optimal pour un fichier de dessin vectoriel, mais qui 
se comporte mieux en redimensionnement.


Il n'y a pas d'espoir du coté des macros ? Sans enregistreur, comment 
connaitre la syntaxe ?


Salutations


Le 29/11/2016 à 23:41, bernard schoenacker a écrit :

On Tue, 29 Nov 2016 23:14:07 +0100
Pierre ROUZEAU  wrote:


Bonjour,
Je fais pas mal d'exportation au format PNG depuis draw mais c'est
assez long:
*Draw ne se souvient pas des derniers paramètres utilisés et on doit
resaisir à chaque fois:
- L'extension par défaut de l'exportation est gif et Je n'ai pas
trouvé comment la changer
- Il faut décocher la transparence pour que le fichier exporté soit
lisible
- Quand on change la définition, la taille de la feuille est
modifiée, ce qui fait que la taille de l'image ne change pas, il faut
resaisir la largeur de la feuille pour que le changement soit de
définition soit effectivement pris en compte (pour moi c'est un bug)
- Éventuellement, je changerais bien le taux de compression, mais Je
ne le fais jamais, ça fait une commande de plus et de toutes façons,
le taux de compression natif LO n'est pas très bon

Je ferais bien une macro, ce qui me permettrais de faire des
exportations automatiques en plusieurs définitions, mais
l'enregistreur de macros n'apparait pas dans le menu macro de draw
(je l'ai bien sélectionné dans les options avancées) - il s'affiche
dans writer et calc - Quelqu'un aurait-il une piste pour la syntaxe
d'exportation draw dans une macro ?

salutations

bonjour,

 je vous conseille de passer par le shell et d'employer gif2png

 http://gnuwin32.sourceforge.net/packages/pngutils.htm

 ou d'employer imagemagick qui est également adapté au travail
 par batch ...

 voici comment je compte faire sous linux
 (à adapter pour powershell) :

  for img in $(tree |awk '/gif/ {print$2}'|xargs) ; do gif2png $img ;done


autrement, je peut prêter un accès sur un serveur à l'aide de
mstsc et d'un compte ftp ou directement via ssh
(mobaxterm ou putty)



slt
bernard



--

---
Pierre Rouzeau - Proud indigenous of old Europe
www.rouzeau.net 
---



---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel 
antivirus Avast.
https://www.avast.com/antivirus

--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


Re: [fr-users] Changement parametres d'exportation ou macro dans Draw

2016-11-30 Par sujet Agnès Simonet

Bonjour,

Du temps où j'écrivais des macros, j'en avais faite une en m'inspirant 
d'une macro trouvée sur internet et du livre de Bernard Marcilly et 
Laurent Godart.

Je viens de la tester, elle fonctionne encore.
Comme elle était restée à l'état d'essai, le nom du fichier d'export et 
la dpi sont inscrits en dur dans la macro et sont donc à modifier à la main.


Cordialement
Agnès S.

REM  *  BASIC  *

Sub Export2png
REM Filter dependent filter properties
Dim aFilterData (8) As New com.sun.star.beans.PropertyValue
Dim sFileUrl As String
Dim oDoc AS Object
Dim oDrawPage As Object

oDoc = thisComponent
oDrawPage = oDoc.getDrawPages().getByIndex(0)

' NOM DU FICHIER D'EXPORT
' pour windows : file:///C:/temp/image.png
' pour linux : "file:///home/moi/image.png
sFileUrl = "file:///home/agnes/image.png"


' PARAMETRES D'EXPORTATION
' 72 dpi
' 'conversion => mm => inches => pixels (72 dpi)
aFilterData(0).Name = "PixelWidth"
aFilterData(0).Value =  oDrawPage.Width*(72/2540)
aFilterData(1).Name = "PixelHeight"
aFilterData(1).Value =  oDrawPage.Height*(72/2540)

' compression
aFilterData(2).Name  ="Compression"
aFilterData(2).Value = 0 'de 0 à 9
' entrelacement
aFilterData(3).Name  ="Interlaced"
aFilterData(4).Value = 0
' transparence
aFilterData(5).Name = "Translucent"
aFilterData(6).Value = false
' resolution, for use when loading in another image application
' ???
aFilterData(7).Name = "Resolution"
aFilterData(7).Value = 600

' pour bmp ?
'aFilterData(8).Name ="LogicalWidth"
'aFilterData(8).Value = 1704
'aFilterData(9).Name ="LogicalHeight"
'aFilterData(9).Value = 2272

'  pour jpg ?
'aFilterData(10).Name ="Quality"
'aFilterData(10).Value = 100

'inutile pour png ?
'aFilterData(11).Name = "ColorMode"
'aFilterData(11).Value = 0
'aFilterData(12).Name = "ExportMode"
'aFilterData(12).Value = 1

' PAGE OU SELECTION
' si sélection, ce doit être un groupe
xDoc = ThisComponent
xView = xDoc.currentController
xSelection = xView.selection
If isEmpty( xSelection ) Then
xObj = xView.currentPage
Else
xObj = xSelection
End If
ExportPng( xObj, sFileUrl, aFilterData() )
End Sub

Sub ExportPng( xObject, sFileUrl As String, aFilterData )
Dim xExporter
xExporter = createUnoService( "com.sun.star.drawing.GraphicExportFilter" )
xExporter.SetSourceDocument( xObject )
Dim aArgs (2) As New com.sun.star.beans.PropertyValue
Dim aURL As New com.sun.star.util.URL
aURL.complete = sFileUrl
aArgs(0).Name = "MediaType"
aArgs(0).Value = "image/png"
aArgs(1).Name = "URL"
aArgs(1).Value = aURL
aArgs(2).Name = "FilterData"
aArgs(2).Value = aFilterData
xExporter.filter( aArgs() )
End Sub

Le 29/11/2016 23:14, Pierre ROUZEAU a écrit :

Bonjour,
Je fais pas mal d'exportation au format PNG depuis draw mais c'est assez
long:
*Draw ne se souvient pas des derniers paramètres utilisés et on doit
resaisir à chaque fois:
- L'extension par défaut de l'exportation est gif et Je n'ai pas trouvé
comment la changer
- Il faut décocher la transparence pour que le fichier exporté soit lisible
- Quand on change la définition, la taille de la feuille est modifiée,
ce qui fait que la taille de l'image ne change pas, il faut resaisir la
largeur de la feuille pour que le changement soit de définition soit
effectivement pris en compte (pour moi c'est un bug)
- Éventuellement, je changerais bien le taux de compression, mais Je ne
le fais jamais, ça fait une commande de plus et de toutes façons, le
taux de compression natif LO n'est pas très bon

Je ferais bien une macro, ce qui me permettrais de faire des
exportations automatiques en plusieurs définitions, mais l'enregistreur
de macros n'apparait pas dans le menu macro de draw (je l'ai bien
sélectionné dans les options avancées) - il s'affiche dans writer et calc -
Quelqu'un aurait-il une piste pour la syntaxe d'exportation draw dans
une macro ?

salutations



---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus




--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


Re: [fr-users] Changement parametres d'exportation ou macro dans Draw

2016-11-29 Par sujet bernard schoenacker
On Tue, 29 Nov 2016 23:14:07 +0100
Pierre ROUZEAU  wrote:

> Bonjour,
> Je fais pas mal d'exportation au format PNG depuis draw mais c'est
> assez long:
> *Draw ne se souvient pas des derniers paramètres utilisés et on doit 
> resaisir à chaque fois:
> - L'extension par défaut de l'exportation est gif et Je n'ai pas
> trouvé comment la changer
> - Il faut décocher la transparence pour que le fichier exporté soit
> lisible
> - Quand on change la définition, la taille de la feuille est
> modifiée, ce qui fait que la taille de l'image ne change pas, il faut
> resaisir la largeur de la feuille pour que le changement soit de
> définition soit effectivement pris en compte (pour moi c'est un bug)
> - Éventuellement, je changerais bien le taux de compression, mais Je
> ne le fais jamais, ça fait une commande de plus et de toutes façons,
> le taux de compression natif LO n'est pas très bon
> 
> Je ferais bien une macro, ce qui me permettrais de faire des 
> exportations automatiques en plusieurs définitions, mais
> l'enregistreur de macros n'apparait pas dans le menu macro de draw
> (je l'ai bien sélectionné dans les options avancées) - il s'affiche
> dans writer et calc - Quelqu'un aurait-il une piste pour la syntaxe
> d'exportation draw dans une macro ?
> 
> salutations

bonjour,

je vous conseille de passer par le shell et d'employer gif2png

http://gnuwin32.sourceforge.net/packages/pngutils.htm

ou d'employer imagemagick qui est également adapté au travail
par batch ...

voici comment je compte faire sous linux 
(à adapter pour powershell) :

 for img in $(tree |awk '/gif/ {print$2}'|xargs) ; do gif2png $img ;done


   autrement, je peut prêter un accès sur un serveur à l'aide de
   mstsc et d'un compte ftp ou directement via ssh
   (mobaxterm ou putty)
   

   slt
   bernard

-- 
bernard schoenacker 

-- 
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


[fr-users] Changement parametres d'exportation ou macro dans Draw

2016-11-29 Par sujet Pierre ROUZEAU

Bonjour,
Je fais pas mal d'exportation au format PNG depuis draw mais c'est assez 
long:
*Draw ne se souvient pas des derniers paramètres utilisés et on doit 
resaisir à chaque fois:
- L'extension par défaut de l'exportation est gif et Je n'ai pas trouvé 
comment la changer

- Il faut décocher la transparence pour que le fichier exporté soit lisible
- Quand on change la définition, la taille de la feuille est modifiée, 
ce qui fait que la taille de l'image ne change pas, il faut resaisir la 
largeur de la feuille pour que le changement soit de définition soit 
effectivement pris en compte (pour moi c'est un bug)
- Éventuellement, je changerais bien le taux de compression, mais Je ne 
le fais jamais, ça fait une commande de plus et de toutes façons, le 
taux de compression natif LO n'est pas très bon


Je ferais bien une macro, ce qui me permettrais de faire des 
exportations automatiques en plusieurs définitions, mais l'enregistreur 
de macros n'apparait pas dans le menu macro de draw (je l'ai bien 
sélectionné dans les options avancées) - il s'affiche dans writer et calc -
Quelqu'un aurait-il une piste pour la syntaxe d'exportation draw dans 
une macro ?


salutations



---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel 
antivirus Avast.
https://www.avast.com/antivirus


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés